Ich habe mich über das Verzweigen / Zusammenführen mit Subversion 1.5 unter Verwendung des hervorragenden und kostenlosen Versionskontrollbuchs mit Subversion informiert. Ich glaube, ich verstehe, wie man den Subversion-Befehlszeilenclient verwendet, um die Aktionen auszuführen, die ich am häufigsten benötige:
Zweig mit Änderungen von Trunk aktualisieren
Führen Sie im Arbeitsverzeichnis des Zweigs Folgendes aus:
svn merge http://svn.myurl.com/proj/trunk
Zweig in Stamm zusammenführen
Führen Sie im Arbeitsverzeichnis des Trunks Folgendes aus:
svn merge - reintegrate http://svn.myurl.com/proj/branches/mybranch
Wir verwenden jedoch TortoiseSVN 1.5 als Schnittstelle zu Subversion. Ich würde gerne wissen, wie diese Operationen mit TortoiseSVN am besten durchgeführt werden können. Der neue Dialog bietet drei verschiedene Optionen im Hauptmenü.
- Führen Sie eine Reihe von Revisionen zusammen
- Integrieren Sie einen Zweig erneut
- Füge zwei verschiedene Bäume zusammen
Soweit ich das beurteilen kann, führt TortoiseSVN svn immer mit der folgenden Syntax aus.
svn merge [--dry-run] --force From_URL @ revN To_URL @ revM PATH
Darüber hinaus schlägt die Wiedereingliederung eines Zweigs häufig mit der Meldung fehl, dass einige Ziele nicht zusammengeführt wurden und daher nicht fortgesetzt werden können. Daher musste ich Option 3 verwenden.
Meine Fragen sind:
- Wie verwende ich TortoiseSVN 1.5, um Änderungen vom Stamm zu einem Zweig zusammenzuführen?
- Wie verwende ich TortoiseSVN 1.5, um den Zweig mit und ohne die Reintegrationsmethode mit dem Stamm zusammenzuführen?
- Welche der oben genannten Optionen sollte ich für jede verwenden und warum?
BEARBEITEN
Durch "Trockenlauf" -Tests habe ich festgestellt, dass die Befehlszeilen-Subversion-Operation
svn merge http://svn.myurl.com/proj/trunk
ist analog zu Option 1 (Zusammenführen eines Revisionsbereichs) in TortoiseSVN, solange ich den Revisionsbereich leer lasse.
quelle
Antworten:
Das Verhalten hängt davon ab, welche Version Ihr Repository hat. Subversion 1.5 erlaubt 4 Arten der Zusammenführung:
Subversion vor 1.5 erlaubte nur die ersten 2 Formate.
Technisch gesehen können Sie alle Zusammenführungen mit den ersten beiden Methoden durchführen, aber die letzten beiden aktivieren die Zusammenführungsverfolgung von Subversion 1.5.
Die Optionen von TortoiseSVN führen einen Bereich oder Revisionszuordnungen zu Methode 3 zusammen, wenn Ihr Repository 1,5+ ist, oder zu Methode 1, wenn Ihr Repository älter ist.
Wenn Sie Features zu einem Release- / Wartungszweig zusammenführen, sollten Sie den Befehl 'Eine Reihe von Revisionen zusammenführen' verwenden.
Nur wenn Sie alle Funktionen eines Zweigs wieder mit einem übergeordneten Zweig (normalerweise Trunk) zusammenführen möchten, sollten Sie die Verwendung von "Zweig wieder integrieren" prüfen.
Und der letzte Befehl - zwei verschiedene Bäume zusammenführen - ist nur dann nützlich, wenn Sie das normale Verzweigungsverhalten verlassen möchten. (ZB Vergleichen verschiedener Releases und anschließendes Zusammenführen des Unterschieds zu einem weiteren Zweig)
quelle
Ich konnte den anderen Antworten nicht richtig folgen, hier ist eher ein Dummies-Leitfaden ...
Sie können dies entweder so
trunk -> branch
oder so tunbranch -> trunk
. Ichtrunk -> branch
behebe dort immer zuerst Konflikte und füge sie dann zusammenbranch -> trunk
.Trunk in einen Zweig / Tag einbinden
quelle
trunk
undbranch
, stellen Sie sicher, dass Sie alle Änderungen vontrunk
bisbranch
so schnell wie möglich zusammenführen, um Konflikte so weit wie möglich zu vermeiden. Dies bedeutet , dass , wenn Sie verschmelzenbranch
zutrunk
sollte es keine Konflikte geben.Sie sollten "Revisionsbereich zusammenführen" verwenden.
Um Änderungen vom Trunk zu einem Zweig zusammenzuführen, wählen Sie in der Zweigarbeitskopie "Revisionsbereich zusammenführen" und geben Sie die Trunk-URL sowie die zusammenzuführenden Start- und Endrevisionen ein.
Das Gleiche gilt in umgekehrter Weise, um einen Zweig im Stamm zusammenzuführen.
Informationen zum Flag --reintegrate finden Sie im Handbuch hier: http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-merge.html#tsvn-dug-merge-reintegrate
quelle
Schauen Sie sich svnmerge.py an . Es ist eine Befehlszeile, kann von TortoiseSVN nicht aufgerufen werden, ist aber leistungsfähiger. Aus den FAQ :
quelle
Klicken Sie bei gedrückter Umschalttaste mit der rechten Maustaste auf den Ordner und wählen Sie TortoiseSVN -> Alle zusammenführen
quelle