Diese Dokumentation wurde zur Beschreibung der Serie 1.6.x von Subversion erstellt. Falls Sie eine unterschiedliche Version von Subversion einsetzen, sei Ihnen dringend angeraten, bei http://www.svnbook.com/ vorbeizuschauen und stattdessen die zu Ihrer Version von Subversion passende Version dieser Dokumentation heranzzuiehen.
svn merge — Anwenden der Unterschiede zweier Quellen auf einen Pfad der Arbeitskopie.
svn merge sourceURL1[@N] sourceURL2[@M] [WCPATH]
svn merge sourceWCPATH1@N sourceWCPATH2@M [WCPATH]
svn merge [[-c M]... | [-r N:M]...] [SOURCE[@REV] [WCPATH]]
In der ersten Form werden für die Quell-URLs die
Revisionen N
und
M
angegeben. Dabei handelt es
sich um die zu vergleichenden Quelltexte. Wenn sie nicht
angegeben werden, haben die Revisionen den Standardwert
HEAD
.
In der zweiten Form bestimmen die URLs, die den Arbeitskopiepfaden der Quellen entsprechen, die zu vergleichenden Quelltexte. Die Revisionen müssen angegeben werden.
In der dritten Form kann
SOURCE
entweder ein URL oder
ein Arbeitskopiepfad (wobei der entsprechende URL
verwendet wird) sein. Falls nicht angegeben, wird für
SOURCE
dasselbe wie für
WCPATH
angenommen.
SOURCE
in Revision
REV
wird verglichen, wie sie
zwischen den Revisionen N
und
M
für jeden angegebenen
Revisionsbereich existiert hat. Falls
REV
nicht angegeben ist, wird
HEAD
angenommen.
-c M
ist äquivalent zu -r
<M-1>:M
, und -c -M
macht das Umgekehrte: -r M:<M-1>
.
Falls keine Revisionsbereiche angegeben werden, ist der
Standardbereich 1:HEAD
. Mehrere
Instanzen von -c
und/oder
-r
können angegeben werden, und das
Mischen von Vorwärts- und Rückwärtsbereichen ist erlaubt
– die Bereiche werden intern auf die
Minimalrepräsentation gestaucht bevor die Zusammenführung
beginnt (was eine Nulloperation ergeben kann).
WCPATH
ist der Pfad der
Arbeitskopie, auf den die Änderungen angewendet werden.
Wird WCPATH
ausgelassen, wird
der Wert „.
“ angenommen,
es sei denn, die Quellen haben identische Basisnamen, die
auf eine Datei innerhalb von
„.
“ passen. In diesem
Fall werden die Änderungen auf diese Datei angewendet.
Subversion zeichnet intern Metadaten über die Zusammenführung nur auf, falls die beiden Quellen abstammungsmäßig in Beziehung stehen – falls die erste Quelle ein Vorgänger der zweiten ist oder umgekehrt. Bei Verwendung der dritten Form ist das gewährleistet. Anders als svn diff berücksichtigt der Zusammenführungsbefehl die Herkunft einer Datei beim Zusammenführen. Dies ist sehr wichtig, falls Sie Änderungen von einem Zweig auf einen anderen übertragen und eine Datei auf einem Zweig umbenannt haben, jedoch nicht auf dem anderen.
--accept ACTION --change (-c) REV --depth ARG --diff3-cmd CMD --dry-run --extensions (-x) ARG --force --ignore-ancestry --quiet (-q) --record-only --reintegrate --revision (-r) REV
Zurückführen eines Zweigs auf den Stamm (unter der Annahme, dass Sie eine aktuelle Arbeitskopie des Stamms haben):
$ svn merge --reintegrate \ http://svn.example.com/repos/calc/branches/my-calc-branch --- Zusammenführen der Unterschiede zwischen Projektarchiv-URLs in ».«: U button.c U integer.c U Makefile U . $ # bauen, testen, verifizieren, ... $ svn commit -m "Merge my-calc-branch back into trunk!" Sende . Sende button.c Sende integer.c Sende Makefile Übertrage Daten .. Revision 391 übertragen.
Zum Zusammenführen von Änderungen in eine einzelne Datei:
$ cd myproj $ svn merge -r 30:31 thhgttg.txt U thhgttg.txt