Frage

Ich habe eine Art Broschüre Website-Templates entwickelt, die ich die meisten meiner Kunden-Websites auf der Basis. Die Vorlage und abgeleitete Seiten werden in einer Subversion-Repository gespeichert. Bleeding edge (aber stabiler) -Code lebt in /trunk; und jede Website verfügt über eine eigene Niederlassung, Anpassung zu erleichtern. Jetzt, wo ich eine 2.0-Release naht, ich glaube, ich brauche mich mit Tags zu kommen.

Wie ich es, bedeutende Veröffentlichungen verstehen sollten markiert werden. Ein Tag ist nur ein Zeiger auf eine bestimmte Revision, und sollte nie, immer geändert werden. Also nehme ich habe einen Tag für die Version 2.0 von meiner Vorlage, und schon gibt es neuen Code in dem Kofferraum. Wenn ich einen neuen Zweig basiert auf 2.0-Code erstellt werden soll, wie gehe ich davon?

Sie verzweigen ich weg /tags/2.0? Das kann nicht richtig sein. Wo würde ich meine Änderungen zu übernehmen? Ich muss bewusst meine Niederlassung Vorfahren umgehen. Muß ich nachschlagen manuell die Stamm Revision, die /tags/2.0 entspricht, und dann diese Revision in der Stamm abzweigen? Das scheint ... umständlich. Ich glaube, bis vor kurzem hätte Subversion nicht einmal diese Informationen speichern!

Natürlich fehlt mir etwas Grundsätzliches. Ein kurzer Überblick, wie Tags sind wirklich verwendet (im Gegensatz zu was sie ist ) wäre hilfreich. Danke.

Edit: Wo ich sagte: "abzweigen /tags/2.0", ich wollte sagen, "check out /tags/2.0". Aber dieser Fehler war auch die Antwort auf meine Frage. Aus irgendeinem Grund hatte ich nie daran gedacht, Kopieren einen Tag. Dumm, nicht wahr? Aber in meinem Kopf, Tags waren "final".

Und übrigens, ich völlig, dass die Tags sind nur eine Konvention. Es war die Konvention selbst, dass ich über war verwirrt, nicht die zugrunde liegende Implementierung.

War es hilfreich?

Lösung

Ich setze bleeding edge (aber stabil) in / trunk. Wenn Funktionen für eine Freigabe abgeschlossen sind, ich kopiere / Stamm /branches/Foobar-1.2.3.X. Ich kopiere sofort /branches/Foobar-1.2.3.X zu /tags/Foobar-1.2.3.0 (dies macht diffs einfacher später, kann ich diff /branches/Foobar-1.2.3.X zu /tags/Foobar-1.2. 3.0 und sieht, was in meinem Zweig geändert hat, da durch die Zeit / Stamm ist wahrscheinlich anders zu sein). Endentwicklung Erlös zu den Funktionen in /branches/Foobar-1.2.3.X, und als ich Mitteilungen machen kopiere ich zu /tags/Foobar-1.2.3.1, /tags/Foobar-1.2.3.2 usw. Mein Build-System ist entworfen, um nur Code zu ziehen von / tags / Foobar -. ????

Dies funktioniert für "besondere" Zweige, auch: /branches/Foobar-WhizzBangFeature-1.2.X

Andere Tipps

Erstellen Sie immer Äste vom Stamm, es sei denn, Sie von einem Punkt in der Vergangenheit (Vergangenheit Tag, Zweig oder alten Stamm Revision) verzweigen möchten.
Auch kann man nicht einfach alles auf einen Tag begehen; zumindest schützt Sie der TortoiseSVN-Client mit einer Nachricht.

Ja, machen Sie einen Zweig mit svn copy in /branch Ordner Repository für die Version, die Sie verzweigen möchten.

Zum Beispiel:

/branch
/tags
  /1.0
  /2.0
/trunk

Dann für einen Zweig auf 2.0:

/branch
  /something2.0
/tags
  /1.0
  /2.0
/trunk

Sie machen eine Kopie Ihrer Tag-Verzeichnis unter / branches ( ‚svn copy‘) senden (oder wo auch immer Sie speichern Ihre Filialen), möglicherweise 2.0-Hotfix oder etwas ähnliches als Zweignamen (die sich von Tag-Namen) verwenden.

Es ist so einfach, wie es nur geht. SVN nicht wirklich Tags und Zweige hat, nur Verzeichnisse und Dateien. Es ist alles Sache Ihrer Politik.

Möglicherweise vielleicht eine natürliche Art und Weise würde die Schaffung 2.0 Zweig erste, den Code in der Branche zu stabilisieren und dann einen Tag aus der Branche zu schaffen.

Ich werde Sie davon ausgehen, werden mit Tortoise SVN. Angenommen, Sie die folgende Situation haben:

/trunk
/braches
   /branch1
   /branch2
/tags
   /1.0
   /2.0

Dann alles, was Sie tun müssen, ist:

  • Öffnen Sie die Schildkröte Repo-Browser
  • an die Wurzel gehen und Dinge erweitern, damit Sie sehen, was Sie tun
  • wählen Sie den Ordner /tag/2.0
  • Strg-Ziehen kopieren Sie sie in die / branches FOLDE
  • Benennen Sie den neuen Ordner (oder nicht)

Und das ist es. Sie dann zu prüfen, /branches/tag/2.0 neded (oder was auch immer Sie es genannt), daran zu arbeiten.

Was Sie tun müssen, immer von SVN wird denken, wie einfach ein Dateisystem zu sein. Die Namen und die Bedeutungen Sie die Dinge in diesem Dateisystem geben, sind bis zu Ihnen. Die Tatsache, dass man nicht „Tags“, zum Beispiel bearbeiten, ist nur eine Konvention - die zugrunde liegende Dateisystem sich nicht, wenn Sie sie bearbeiten oder nicht.

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