Frage

Die Verwendung von Online-Schnittstellen zu einem Versionskontrollsystem ist eine gute Möglichkeit, einen veröffentlichten Speicherort für die neuesten Codeversionen zu haben.Ich habe hier zum Beispiel ein LaTeX-Paket (das immer dann für CTAN freigegeben wird, wenn überprüft wird, dass Änderungen tatsächlich funktionieren):

http://github.com/wspr/pstool/tree/master

Das Paket selbst wird von einer einzelnen Datei abgeleitet (in diesem Fall pstool.tex), die bei der Verarbeitung die Dokumentation, die Readme-Datei, die Installationsdatei und die eigentlichen Dateien erzeugt, aus denen das Paket besteht, wenn es von LaTeX verwendet wird.

Um Benutzern, die dieses Zeug herunterladen möchten, das Herunterladen zu erleichtern, füge ich alle oben genannten abgeleiteten Dateien sowie die Masterdatei pstool.tex in das Repository selbst ein.Das bedeutet, dass ich bei jedem Commit die doppelte Anzahl an Änderungen habe, da die Paketdatei pstool.sty eine generierte Teilmenge der Masterdatei ist.

Ist das eine Perversion der Versionskontrolle?


@Jon Limjap habe einen guten Punkt angesprochen:

Gibt es eine andere Möglichkeit für Sie, Ihre generierten Dateien an anderer Stelle zum Herunterladen zu veröffentlichen, anstatt sich darauf zu verlassen, dass Ihre Versionskontrolle Ihr Download-Server ist?

Das ist in diesem Fall wirklich der Knackpunkt.Ja, veröffentlichte Versionen des Pakets können anderswo bezogen werden.Daher ist es wirklich sinnvoller, nur die nicht generierten Dateien zu versionieren.

Andererseits, @MadirKommentar von:

Die Bequemlichkeit, die real und wiederholt ist, überwiegt die Kosten, die hinter den Kulissen getragen werden

ist auch insofern relevant, als ein Benutzer, wenn er einen Fehler findet und ich ihn sofort behebe, zum Repository gehen und sich die Datei holen kann, die er zum Weiterarbeiten benötigt, ohne irgendwelche „Installations“-Schritte ausführen zu müssen.

Und das ist meiner Meinung nach der wichtigere Anwendungsfall für meine speziellen Projekte.

War es hilfreich?

Lösung

Ich verwende Tortoise SVN für die ASP.NET-Entwicklung kleiner Systeme.Der meiste Code wird als ASPX interpretiert, es gibt jedoch etwa ein Dutzend binäre DLLs, die durch einen manuellen Kompilierungsschritt generiert werden.Obwohl es theoretisch nicht sehr sinnvoll ist, diesen Quellcode zu versionieren, ist es auf jeden Fall praktisch, sicherzustellen, dass er korrekt von der Entwicklungsumgebung auf das Produktionssystem gespiegelt wird (ein Klick).Auch im Katastrophenfall ist der Rollback zum vorherigen Schritt in SVN wieder mit einem Klick möglich.

Also habe ich in den sauren Apfel gebissen und sie in das SVN-Archiv aufgenommen – der Komfort, der real und wiederholt ist, überwiegt die Kosten, die hinter den Kulissen getragen werden.

Andere Tipps

Wir erstellen keine Versionen von Dateien, die mithilfe von im Repository selbst enthaltenen Skripts automatisch generiert werden können.Der Grund dafür ist, dass diese Dateien nach dem Auschecken mit einem einzigen Klick oder Befehl neu erstellt werden können.In unseren Projekten versuchen wir immer, dies so einfach wie möglich zu machen und so eine Versionierung dieser Dateien zu vermeiden.

Ich kann mir ein Szenario vorstellen, in dem dies nützlich sein könnte, wenn bestimmte Versionen eines Produkts für die Verwendung in einer Produktionsumgebung (oder einer Nicht-Entwicklungsumgebung) mit Tags versehen werden, in denen die zum Generieren der Ausgabe erforderlichen Tools möglicherweise nicht verfügbar sind.

Wir verwenden in unseren Build-Skripten auch Ziele, die Archive mit einer veröffentlichten Version unserer Produkte erstellen und hochladen können.Dies kann auf einen Produktionsserver oder einen HTTP-Server zum Herunterladen durch Benutzer Ihrer Produkte hochgeladen werden.

Nicht unbedingt, obwohl Best Practices für die Quellcodeverwaltung aus offensichtlichen Gründen empfehlen, generierte Dateien nicht einzubeziehen.

Gibt es eine andere Möglichkeit für Sie, Ihre generierten Dateien an anderer Stelle zum Herunterladen zu veröffentlichen, anstatt sich darauf zu verlassen, dass Ihre Versionskontrolle Ihr Download-Server ist?

Normalerweise sollten abgeleitete Dateien nicht in der Versionskontrolle gespeichert werden.In Ihrem Fall könnten Sie eine Freigabeprozedur erstellen, die einen Tarball erstellt, der die abgeleiteten Dateien enthält.

Wie Sie sagen, erhöht die Beibehaltung der Versionskontrolle für die abgeleiteten Dateien nur den Lärm, mit dem Sie zu kämpfen haben.

In einigen Fällen tun wir das, aber es handelt sich eher um einen Anwendungsfall vom Typ Systemadministrator, bei dem die generierten Dateien (z. B. aus einem Skript erstellte DNS-Zonendateien) ein intrinsisches Interesse an sich haben und die Revisionskontrolle ein eher linearer Prüfpfad ist Verzweigungs- und Tagging-Quellcodeverwaltung.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top