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.


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 :)


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.


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.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.