Was ist der einfachste Weg, um mit TortoiseSVN zu verzweigen und zusammenzuführen?

Antworten:

185

Angenommen, Ihr Arbeitsverzeichnis funktioniert über den Trunk:

Klicken Sie mit der rechten Maustaste auf den "Stammarbeitsordner" (dieser Begriff bezieht sich immer auf Windows Explorer) und svn updateaktualisieren Sie Ihren Arbeitsordner auf den neuesten Trunk.

Stellen Sie sicher, dass das, was Sie haben, stabil ist.

Klicken Sie mit der rechten Maustaste auf den Stammarbeitsordner, und svn commitstellen Sie sicher, dass alle lokalen Änderungen am Trunk übernommen werden.

Klicken Sie mit der rechten Maustaste auf den Stammarbeitsordner und fahren Sie fort svn repo-browser.

Wenn Sie noch keinen Zweigordner im Repository haben: Klicken Sie mit der rechten Maustaste auf den Ordner direkt über dem Stammordner, und erstellen Sie "Ordner" und erstellen Sie einen Zweigordner (z. B. wenn Ihr Stamm ist http://myserver/svn/MyRepository/MyProj/Trunk, erstellen Sie http://myserver/svn/MyRepository/MyProj/Branches).

Klicken Sie mit der rechten Maustaste auf den Trunk-Ordner und geben Sie Copy To:den neuen Ordnernamen für Ihren Zweig ein. Zum Beispiel : http://myserver/svn/MyRepository/MyProj/Branches/MyNewBranch. (Machen Sie sich keine Sorgen, dass dies viel Speicherplatz verschwendet. Dies wird als "billige Kopie" bezeichnet. Der Inhalt von Dateien wird nur kopiert, wenn sie sich ändern.)

Schließen Sie den Repo-Browser.

Klicken Sie mit der rechten Maustaste auf das Stammverzeichnis Ihres Arbeitsordners, und führen Sie Folgendes aus: svn switchWählen Sie den Ordnernamen Ihres neuen Zweigs aus (z. B. http://myserver/svn/MyRepository/MyProj/Branches/MyNewBranch). Belassen Sie alles andere auf der Standardeinstellung.

Arbeiten Sie jetzt an Ihrer Niederlassung. Wenn Sie zu Meilensteinen gelangen, klicken Sie mit der rechten Maustaste auf den Stammarbeitsordner und führen Sie svn commiteinen Commit für Ihren Zweig durch. (Dies wird im Kofferraum nicht gesehen).

Wenn andere an demselben Zweig arbeiten, tun Sie dies regelmäßig über svn updateden Stammarbeitsordner. Dies wird von der Verzweigung aktualisiert. (Es werden KEINE Updates vom Trunk erhalten.)

Unabhängig davon, ob andere an demselben Zweig arbeiten oder nicht, sollten Sie regelmäßig Änderungen aus dem Trunk zusammenführen, um sicherzustellen, dass Ihr Zweig später nicht zu schwer zu integrieren ist. So führen Sie die regelmäßige Zusammenführung durch: Klicken Sie mit der rechten Maustaste auf das Stammverzeichnis des Arbeitsordners und führen Sie die Schritte aus svn merge. Wählen Sie "Revisionsbereich zusammenführen". Wählen Sie unter "URL zum Zusammenführen" den Trunk aus (z. B. http://myserver/svn/MyRepository/MyProj/Trunk). Lassen Sie den Revisionsbereich leer und lassen Sie alles andere in Ruhe. Weiter klicken. Lassen Sie alles in Ruhe und klicken Sie auf Zusammenführen . Stellen Sie sicher, dass alles noch funktioniert ... beheben Sie es, wenn nicht. Wenn Sie zufrieden sind, führen Sie eine regelmäßige svn updateAktualisierung aus dem Arbeitsstammordner durch , um eine Aktualisierung aus dem Zweig durchzuführen (dies ist auch dann erforderlich, wenn Sie der einzige sind, der an dem Zweig arbeitet, um SVN zu erfüllen). Dann machsvn commitum die zusammengeführten Trunk-Änderungen in den Zweig zu übernehmen. Sie können diesen Schritt regelmäßig so oft wiederholen, wie Sie möchten.

Sobald Ihre Niederlassung zur Integration bereit ist, führen Sie den obigen Schritt ein letztes Mal aus und führen Sie Ihre letzten Tests durch. Führen Sie ein endgültiges Commit für die Zweigstelle durch.

Klicken Sie mit der rechten Maustaste auf Ihren Stammarbeitsordner und führen Sie einen weiteren aus svn switch. Wechseln Sie diesmal zum Trunk (z. B. http://myserver/svn/MyRepository/MyProj/Trunk). Dies hat zur Folge, dass alle Arbeiten, die Sie in Ihrer Branche ausgeführt haben, im Wesentlichen "rückgängig gemacht" werden. Machen Sie sich jedoch keine Sorgen ... Sie erhalten Ihre Arbeit zurück. (Es werden auch viele Aktualisierungen von Dateien gemeldet, die Sie in Ihrem Zweig nicht geändert haben, aber dies sind nur Änderungen der "SVN-Eigenschaft" ... machen Sie sich darüber keine Sorgen.)

Klicken Sie mit der rechten Maustaste auf Ihren Arbeitsordner und tun Sie es svn merge. Wählen Sie dieses Mal "Zweig neu integrieren". Geben Sie für die URL Ihren Zweig ein (z. B. http://myserver/svn/MyRepository/MyProj/Branches/MyNewBranch). Lassen Sie den Rest in Ruhe und klicken Sie auf Weiter. Lassen Sie alles in Ruhe und klicken Sie auf Zusammenführen . Sie haben jetzt alle Arbeiten, die Sie in Ihrer Filiale ausgeführt haben, sowie aktuelle Arbeiten aus dem Kofferraum.

Machen Sie einen letzten Test. Alles sollte funktionieren, da dies derselbe Satz von Dateien sein sollte, den Sie bei Ihrem letzten Test in der Branche hatten. Klicken Sie mit der rechten Maustaste auf Ihren Stammarbeitsordner und führen Sie eine aus svn commit. Übernehmen Sie alles, auch Dateien, an denen Sie in Ihrem Zweig nicht gearbeitet haben (sie haben nur Änderungen an den "SVN-Eigenschaften", aber das Festschreiben hilft SVN dabei, alle Revisionen im Auge zu behalten).

Der Trunk hat jetzt alle Ihre Zweigarbeiten sowie alle Arbeiten, die im Trunk ausgeführt wurden, während Sie an Ihrem Zweig gearbeitet haben, und alles funktioniert. Darüber hinaus verfügt SVN über den vollständigen Verlauf aller Dateien, auch der Revisionen, die während der Arbeit an Ihrem Zweig eingecheckt wurden.

Optional: Gehen Sie in den Repo-Browser, klicken Sie mit der rechten Maustaste auf Ihren Zweigordner (zum Beispiel http://myserver/svn/MyRepository/MyProj/Branches/MyNewBranch) und führen Sie "Löschen" aus. Dies hat keine Auswirkungen auf den Trunk und Sie benötigen den Zweig nicht mehr. (Auch wenn Sie wirklich paranoid sind, machen Sie sich keine Sorgen, denn Sie können Ihren gelöschten Zweig jederzeit vom Repo-Browser zurückerhalten, wenn Sie es wirklich brauchen.)

Bitte zögern Sie nicht zu kommentieren!

JoelFan
quelle
7
725 Wörter ist einfach?
RedFilter
37
Ich sagte "am einfachsten" nicht "einfach" :)
JoelFan
1
Vielen Dank! Du warst der erste, der sich bei mir bedankte (obwohl es Upvotes und Favoriten gab :)
JoelFan
1
Soweit ich weiß, funktioniert die Zusammenführung nicht mehr als einmal in demselben Zweig.
JoelFan
1
Dies ist wirklich sehr nützlich
Avil