Führen Sie zwei Zweigrevisionen mit Subversion zusammen

95

Ich möchte alle Änderungen, die zwischen Version 10 und der HEAD-Version auf http: // url-of-branch-a stattgefunden haben, zusammenführen und auf http: // url-of-branch-b anwenden .

Etwas wie...

svn merge -r 10:HEAD http://url-of-branch-a 

Ist das möglich? Wenn ja, wie lautet die Syntax?

Ich führe den SVN-Client über die Unix-Befehlszeile aus. Die SVN-Client-Version ist 1.4

EDIT: Ja, meine spezifische Lösung war ...

  1. Wechseln Sie in das Verzeichnis meiner Arbeitskopie, die die Änderungen erhalten soll (Zweig b).
  2. svn merge -r 10: HEAD http: // url-of-branch-a

Dadurch werden die Änderungen von 'Zweig-a' zu 'Zweig-b' zusammengeführt.

user62732
quelle
4
Sie müssen auch wissen, wann der Zweig genommen wurde. Sie können dies in Ihrer Zweigstelle tun (svn log --stop-on-copy.), Um die Revisionsnummer abzurufen, von der Sie verzweigt haben.
JMC
@jmc Sie brauchen dies nicht mehr seit dem Jahr 2008, als SVN 1.5 veröffentlicht wurde, AFAIR
bahrep

Antworten:

55

Checkout-URL A. Verwenden Sie SVN Merge, um URL B mit Ihrer Arbeitskopie von A zusammenzuführen. Commit A.

Oder natürlich umgekehrt :)

Billy ONeal
quelle
127

Der Prozess ist wie folgt:

  1. Erstellen Sie eine Arbeitskopie von Zweig B ( svn checkout http://branch-b)
  2. Änderungen aus Zweig A in Arbeitskopie von B ( svn merge -r 10:HEAD http://branch-a .) zusammenführen
  3. Übernehmen Sie (nach dem Lösen von Konflikten) die Arbeitskopie B in Zweig b ( svn commit)

Überprüfen Sie die Manpage (Hilfedatei) auf die Semantik der SVN-Zusammenführung. Es zeigt Ihnen, dass svn merge die Ergebnisse immer in eine Arbeitskopie kopiert.

Überprüfen Sie das SVNBook für alle Details.

Jamie Hale
quelle
Könnten Sie auch eine Idee geben, wie es mit dem SVN-Plugin in Eclipse geht?
Snehal Masne
Dies funktioniert für mich: SVN Merge --force --allow-Mixed-Revisionen -r 10: HEAD Branch-a
Minh Nguyen
2
Warum geben wir Revision 10 für HEAD an? Warum sollten zwei Revisionsendpunkte anstelle von nur einer Revision als Snapshot verwendet werden? Auf welchen Zweig bezieht sich "10 to HEAD"?
Ahnbizcad
2

Meistens verwirrend, mergewenn wir versuchen, in svn repo zu tun, können wir nicht direkt mit svn repo zusammenführen, wir können wie folgt mit der Arbeitskopie des lokalen Computers zusammenführen:

  • Diese Arbeitskopie sollte destination URLzusammengeführt sein (dh Checkout-Ziel).

  • Arbeitskopie mit source URLZusammenführung zusammenführen.

  • commit zum Ziel.

Best Practice : Zusammenführen, Zusammenführen.

Premraj
quelle