Menschen schreiben Quellcode
Versionskontrolle wird verwendet, um Änderungen im Quellcode aufzuzeichnen
tools verarbeiten Quellcode und erzeugen maschinenlesbares Zeug (exec, libs, GUI-Code, etc.)
hin und wieder möchte ich eine Kopie der Werkzeuge -Ausgabe speichern (z. B. ausführbare Datei der Beta-Version für ARM speichern). Ich kann die tools -Ausgabe manuell speichern, indem ich ihr einen Namen gebe, der den Punkt im Revisionskontrollverlauf widerspiegelt (z. B. den Tag-Namen verwenden). das scheint peinlich und fehleranfällig zu sein.
Ich möchte Ihre Einsicht in zwei Dinge:
Welche Vor- / Nachteile hat die Verwendung der Revisionskontrolle, um die vom Werkzeug erzeugte Ausgabe an bestimmten Positionen im Revisionsverlaufsdiagramm zu speichern? Welche Nicht-RCS-Tools verwenden Sie als Alternative?
in mercurial, git, was ist der beste Weg, Tool-generierte Ausgabe in bestimmten Revisionen und nicht anderen
Ich glaube, dass Binärdateien nicht zusammen mit ihrem Quellcode in der Versionskontrolle gespeichert werden sollten.
Nachteile:
svn update
aktualisiert den Zeitstempel Ihrer Binaries und verwechselt Ihre Build-Tools, die fälschlicherweise denken, dass die Binaries neuer sind als Ihr Quellcode. Im Allgemeinen sollten Sie meiner Meinung nach vermeiden, etwas zu begehen, das auf deterministische Weise automatisch von anderen versionierten Ressourcen generiert wird. Keine Redundanz - & gt; keine Möglichkeit für Inkonsistenzen.
Verwenden Sie stattdessen einen Continuous Integration Server, um die Commits automatisch neu zu erstellen (und die Tests auszuführen). Lassen Sie diesen Build-Server die Binärdateien irgendwo (außerhalb von SVN) veröffentlichen, falls erforderlich, wie einen freigegebenen Ordner im Netzwerk.
Ich würde empfehlen, keine Binärdateien mit DVCS zu mischen (wie git und Mercurial). Der Hauptgrund dafür ist: Alle nicht zusammenführbaren Dateien sind ein Problem für DVCS. DVCS setzt grundsätzlich auf qualitativ hochwertige Zusammenführungen von Dateien, damit das DVCS-Konzept funktioniert (siehe diese Diskussion über Binärdateien in Git ).
Ich stimme zu, dass Binärdateien gespeichert werden sollten. Sie sollten jedoch wahrscheinlich an einem anderen Ort als Ihrem Versionskontrollsystem gespeichert werden. Vielleicht ein Server mit kontrolliertem Schreibzugriff. Vielleicht ein getrenntes zentralisiertes VCS-Repository, z. B. Subversion, wenn Sie den gesamten Verlauf beibehalten möchten.
Um zu vermeiden, dass eine solche Trennung "peinlich und fehleranfällig" ist, wie Sie sagen, versuchen Sie, sie so weit wie möglich zu automatisieren. Erstellen Sie eine automatisierte Build-Prozedur, die sicherstellt, dass die Quelle versioniert / markiert ist, eine vollständige Erstellung durchführt und die Ausgabe (korrekt benannt, versioniert, markiert usw.) in den angegebenen Speicher legt.
Tags und Links git mercurial version-control