Was bedeuten "branch", "tag" und "trunk" in Subversion-Repositories?

Ich habe diese Worte schon oft in Diskussionen über Subversion (und wohl auch allgemein über Repositories) gesehen. Ich habe SVN für meine Projekte in den letzten Jahren verwendet, aber ich habe nie das komplette Konzept dieser Verzeichnisse verstanden.

Was bedeuten sie?

In SVN sind ein Tag und ein Zweig sehr ähnlich.

Tag = ein definierter Abschnitt in der Zeit, normalerweise für Veröffentlichungen verwendet

Zweig = ebenfalls eine definierte Zeitspanne, in der die Entwicklung fortgesetzt werden kann, normalerweise für Hauptversionen wie 1.0, 1.5, 2.0, usw., bei der Veröffentlichung wird dann der Zweig markiert. Dies ermöglicht es Ihnen, eine Produktionsversion weiterhin zu unterstützen, während Sie mit den Änderungen im Stamm fortfahren.

Trunk = Arbeitsbereich für die Entwicklung, hier sollte die gesamte Entwicklung stattfinden, und dann werden die Änderungen aus den Zweigversionen wieder zusammengeführt.

Kommentare (0)

Sie haben nicht wirklich eine formale Bedeutung. Ein Ordner ist ein Ordner für SVN. Sie sind ein allgemein akzeptierter Weg, um Ihr Projekt zu organisieren.

  • Der Stamm (trunk) ist der Ort, an dem Sie Ihre Hauptentwicklungslinie aufbewahren. Der Zweig-Ordner ist der Ort, an dem Sie, nun ja, Zweige erstellen können, was in einem kurzen Beitrag schwer zu erklären ist.

  • Ein Zweig ist eine Kopie einer Teilmenge Ihres Projekts, an der Sie getrennt vom Stamm arbeiten. Vielleicht ist es für Experimente, die nirgends hinführen, oder vielleicht ist es für die nächste Version, die Sie später wieder in den Stamm einfließen lassen, wenn sie stabil wird.

  • Und der Tags-Ordner ist für die Erstellung von getaggten Kopien Ihres Repositorys, üblicherweise bei Release-Checkpoints.

Aber wie ich schon sagte, für SVN ist ein Ordner ein Ordner. Zweig", "Stamm" und Tag sind nur eine Konvention.

Ich verwende das Wort "Kopie" sehr großzügig. SVN macht eigentlich keine vollständigen Kopien von Dingen im Repository.

Kommentare (0)

Das trunk-Verzeichnis ist das Verzeichnis, mit dem Sie wahrscheinlich am meisten vertraut sind, da es die neuesten Änderungen enthält. Ihre Haupt-Codebasis sollte sich im trunk-Verzeichnis befinden.

Das branches-Verzeichnis ist für Ihre Zweige gedacht, was auch immer das sein mag.

Das tags-Verzeichnis ist im Wesentlichen dafür da, um bestimmte Dateien mit Tags zu versehen. Sie tun dies für Dinge wie Releases, wo Sie wollen, dass "1.0" diese Dateien in diesen Revisionen und "1.1" diese Dateien in diesen Revisionen sind. Normalerweise ändern Sie Tags nicht mehr, wenn sie einmal erstellt wurden. Für weitere Informationen über Tags, siehe Kapitel 4. Verzweigen und Zusammenführen (in Versionskontrolle mit Subversion).

Kommentare (0)