Wir müssen die Build-Ausgabe unseres Projekts (in unserem Fall eine einzelne ausführbare Datei von ca. 1 MB Größe) auf kontrollierte Weise archivieren.
注 Die praktische Konsequenz daraus ist, dass ich für jede freigegebene Build-Ausgabe eine unveränderliche Kopie davon auf unbestimmte Zeit archivieren muss. (z.B. wenn wir von r993, r1014, r1205 und r1293 unseres Quellbaums bauen, muss ich für jeden eine Build-Ausgabe aufbewahren).
Für uns ist es selbstverständlich, Subversion dafür zu verwenden, da wir einen Server haben. Was unnatürlich ist, ist die Frage, wo wir die Build-Ausgabe ablegen.
-
Einen Bereich des Quellbaums überprüfen --> nicht gut, weil es Aktualisierungen/Zusammenführungen/etc. erschwert.
-
Erstellen eines speziellen Bereichs im Repository, der mit dem Quellbaum verbunden ist z.B.:
project-foo/ branches/ tags/ trunk/ build/ <-- released executables go here (along with metadata containing source references)
Wir brauchen eigentlich keine Zweige oder Tags für die ausführbare Ausgabe; ich brauche nur einen Ort, der ein unveränderlicher Schnappschuss ist, auf den ich verweisen kann (im Fall von SVN durch Pfad und Rev #)
-
Erstellen eines speziellen Bereichs im Repository, der lose mit dem Quellbaum verbunden ist z.B.:
project-foo/ branches/ tags/ trunk/ project-foo-build/ <-- released executables go into a subdir: branches/ tags/ trunk/
-
Verwenden Sie ein anderes Programm als SVN. ??? Was auch immer es ist, es muss die Ideen von
- unveränderbare Daten
- mit den Daten verbundene Metadaten
- mehrere Versionen derselben Sache (z. B. die ausführbare Datei für das Projekt foo)
Irgendwelche Vorschläge?
Ich tendiere zu Idee Nr. 2, wollte aber einen Schritt zurücktreten und ein besseres Gefühl für die verschiedenen Vor- und Nachteile bekommen.
*Wir müssen dies tun, weil wir die genau Build-Ausgabe, die unter bestimmten Umständen verwendet wurde. Dabei handelt es sich um eingebetteten Code, der in die Hardware geladen wird. Im Idealfall ist die Build-Ausgabe eine wiederholbare Funktion des Quellbaums, d. h. wenn Sie zweimal mit demselben Quellbaum bauen, wird die gleiche Ausgabe erzeugt. Leider besteht das Risiko, dass dies nicht der Fall ist, z. B. wenn Compiler oder andere Build-Tools aktualisiert werden.