it-swarm.com.de

Verwenden von TortoiseSVN Wie füge ich Änderungen vom Stamm in einen Zweig und umgekehrt zusammen?

Ich habe viel über das Verzweigen/Zusammenführen mit Subversion 1.5 mit dem ausgezeichneten und kostenlosen Versionskontrollsystem mit Subversion gelesen. Ich denke, ich verstehe, wie ich mit dem Subversion-Befehlszeilen-Client die am häufigsten benötigten Aktionen ausführen kann.

Zweig mit Änderungen aus der Leitung aktualisieren

Führen Sie im Arbeitsverzeichnis der Zweigstelle Folgendes aus: 

svn merge http://svn.myurl.com/proj/trunk

Zweig in Trunk 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 man diese Operationen am besten mit TortoiseSVN durchführt. Der neue Dialog bietet drei verschiedene Optionen im Hauptmenü. 

  1. Verschiedene Revisionen zusammenführen
  2. Wiedereingliederung eines Zweiges
  3. Füge zwei verschiedene Bäume zusammen

Soweit ich wissen 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 einer Verzweigung 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:

  1. Wie verwende ich TortoiseSVN 1.5, um Änderungen vom Stamm zu einem Zweig zusammenzuführen?
  2. Wie verwende ich TortoiseSVN 1.5, um den Zweig mit und ohne Wiedereingliederungsmethode mit dem Stamm zusammenzuführen?
  3. Welche der oben genannten Optionen sollte ich jeweils verwenden und warum?

EDIT

Durch "Testlauf" habe ich herausgefunden, dass die Subversion der Kommandozeile funktioniert

svn merge http://svn.myurl.com/proj/trunk

ist analog zu Option 1 (Zusammenfügen eines Revisionsbereichs) in TortoiseSVN, solange der Revisionsbereich leer bleibt.

128
Ryan Taylor

Das Verhalten hängt davon ab, welche Version Ihr Repository hat. Subversion 1.5 erlaubt 4 Arten der Zusammenführung:

  1. merge sourceURL1 [@N] sourceURL2 [@M] [WCPATH]
  2. merge sourceWCPATH1 @ N sourceWCPATH2 @ M [WCPATH]
  3. merge [-c M [ N ...] | -r N: M ...] SOURCE [@REV] [WCPATH]
  4. merge --reintegrate SOURCE [@REV] [WCPATH]

Subversion vor 1.5 erlaubte nur die ersten beiden Formate.

Technisch können Sie alle Zusammenführungen mit den ersten beiden Methoden durchführen, aber die letzten beiden ermöglichen die Zusammenführungsverfolgung von Subversion 1.5.

Die Optionen von TortoiseSVN führen eine Bereichs- oder Revisionszuordnung zu Methode 3 zusammen, wenn Ihr Repository 1,5 oder älter ist, oder zu Methode 1, wenn Ihr Repository älter ist.

Wenn Sie Features in einen Release-/Wartungszweig überführen, sollten Sie den Befehl 'Bereich der Revisionen zusammenführen' verwenden. 

Nur wenn Sie alle Features eines Zweigs wieder mit einem übergeordneten Zweig (üblicherweise Trunk) zusammenführen möchten, sollten Sie "Wiedereingliederung eines Zweigs" verwenden.

Und der letzte Befehl - zwei verschiedene Bäume zusammenführen - ist nur nützlich, wenn Sie das normale Verzweigungsverhalten verlassen möchten. (Z. B. Vergleichen verschiedener Versionen und Zusammenführen des Unterschieds mit einem weiteren Zweig)

28
Bert Huijben

Ich konnte den anderen Antworten nicht richtig folgen. 

Sie können dies tun, entweder trunk -> branch oder branch -> trunk. Ich löse trunk -> branch dort immer zuerst alle Konflikte und füge dann branch -> trunk zusammen.

Trunk in einen Zweig/Tag zusammenführen

  1. den Zweig/Tag auschecken
  2. Klicken Sie mit der rechten Maustaste auf die Wurzel des Zweigs | Schildkröte SVN | Zusammenführen ...
  3. Zusammenführungstyp: Zusammenführen mehrerer Revisionen | Weiter klicken'enter image description here
  4. Revisionsbereich zusammenführen: Wählen Sie die URL des Trunk-Verzeichnisses aus, das Sie in den Zweig/das Tag kopiert haben. Geben Sie die Revisionen ein, die zusammengeführt werden sollen, oder lassen Sie das Feld leer, um alle Revisionen zusammenzuführen Weiter klicken'enter image description here
  5. Optionen zusammenführen: Ich habe diese nur als Standardeinstellung | gelassen Klicken Sie auf "Zusammenführen" enter image description here
  6. Dadurch werden die Revisionen in den ausgecheckten Zweig/Tag eingefügt
  7. Übernehmen Sie anschließend die zusammengeführten Änderungen für den Zweig/das Tag
242
icc97

Sie sollten "einen Revisionsbereich zusammenführen" verwenden.

Um Änderungen vom Stamm zu einem Zweig zusammenzuführen, wählen Sie in der Zweigarbeitskopie "Bereich der Revisionen zusammenführen" und geben Sie die Stamm-URL sowie die Start- und Endrevisionen für die Zusammenführung ein.

Dasselbe gilt in umgekehrter Weise, um einen Ast im Stamm zusammenzuführen.

Informationen zum --reintegrate-Flag finden Sie im Handbuch hier: http://tortoisesvn.net/docs/release/TortoiseSVN_de/tsvn-dug-merge.html#tsvn-dug-merge-reintegrate

11
Davide Gualano

Schauen Sie sich die Datei svnmerge.py an. Es ist Befehlszeile, kann nicht von TortoiseSVN aufgerufen werden, aber es ist mächtiger. Aus der FAQ :

Traditionelle Subversion lässt Sie Änderungen zusammenführen, aber nicht "Erinnern" Sie sich an das, was Sie bereits zusammengeführt haben . Es bietet auch keine bequeme So können Sie ein Änderungsset von .__ ausschließen. verschmolzen svnmerge.py automatisiert einige der die Arbeit und vereinfacht es. Svnmerge erstellt auch eine Commit-Nachricht mit der Protokollnachrichten von allen Dingen verschmolzen.

1
Liudvikas Bukys

Klicken Sie mit der rechten Maustaste auf den Ordner und wählen Sie TortoiseSVN -> Merge All aus

0
Denis