[svnbook] r4746 committed - Translation: Keeping a Branch in Sync
svnbook at googlecode.com
svnbook at googlecode.com
Mon Apr 14 15:18:42 CDT 2014
Revision: 4746
Author: jmfelderhoff at gmx.eu
Date: Mon Apr 14 20:18:31 2014 UTC
Log: Translation: Keeping a Branch in Sync
http://code.google.com/p/svnbook/source/detail?r=4746
Modified:
/branches/1.7/de/book/ch04-branching-and-merging.xml
=======================================
--- /branches/1.7/de/book/ch04-branching-and-merging.xml Thu Mar 27
21:44:06 2014 UTC
+++ /branches/1.7/de/book/ch04-branching-and-merging.xml Mon Apr 14
20:18:31 2014 UTC
@@ -1740,7 +1740,11 @@
übergeben.</para>
<sidebar id="svn.branchemerge.basicmerging.stayinsync.subtree">
+<!--
<title>Subtree Merges and Subtree Mergeinfo</title>
+-->
+ <title>Zusammenführen von Teilbäumen und Informationen
darüber</title>
+<!--
<para>
<indexterm>
<primary>subtree merge</primary>
@@ -1764,25 +1768,55 @@
to get a full accounting. Fortunately Subversion does this
for you and rarely will you need to concern yourself with
it. A brief example will help explain:</para>
+-->
+ <para>
+ <indexterm>
+ <primary>Zusammenführen von Teilbäumen</primary>
+ </indexterm>
+ <indexterm>
+ <primary>Informationen über das Zusammenführen von
Teilbäumen</primary>
+ </indexterm>
+ In den meisten Beispielen dieses Kapitels ist das Ziel einer
+ Zusammenführung das Wurzelverzeichnis eines Zweigs (siehe
+ <xref linkend="svn.branchmerge.whatis"/>). Obwohl es sich
+ dabei um eine empfohlene Vorgehensweise handelt, kann es
+ vorkommen, dass Sie gelegentlich eine Zusammenführung direkt
+ in irgendein Kindverzeichnis der Wurzel des Zweigs vornehmen
+ müssen. Diese Art der Zusammenführung wird
+ <firstterm>Teilbaum-Zusammenführung</firstterm> genannt, und
+ die aufgezeichneten Informationen dazu
+ <firstterm>Teilbaum-Zusammenführungs-Information</firstterm>.
+ Es gibt weder Besonderheiten beim Zusammenführen von
+ Teilbäumen noch bei den Informationen dazu. Es gibt hierbei
+ tatsächlich nur einen wichtigen Punkt bei diesen Konzepten
+ zu beachten: die vollständigen Aufzeichnungen über
+ Zusammenführungen auf einen Zweig müssen nicht
+ notwendigerweise in den Informationen der Wurzel des Zweigs
+ vorliegen. Für eine vollständige Übersicht müssen Sie alle
+ Zusammenführungs-Informationen der Teilbäume untersuchen.
+ Glücklicherweise erledigt das Subversion für Sie, so dass
+ Sie sich in den seltensten Fällen selbst darum kümmern
+ müssen. Ein kurzes Beispiel hilft bei der Erklärung:</para>
+<!--
<informalexample>
<screen>
# We need to merge r958 from trunk to branches/proj-X/doc/INSTALL,
# but that revision also affects main.c, which we don't want to merge:
-$ svn log --verbose --quiet -r 958 ^/
-------------------------------------------------------------------------
+$ svn log - -verbose - -quiet -r 958 ^/
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
r958 | bruce | 2011-10-20 13:28:11 -0400 (Thu, 20 Oct 2011)
Changed paths:
M /trunk/doc/INSTALL
M /trunk/src/main.c
-------------------------------------------------------------------------
+- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# No problem, we'll do a subtree merge targeting the INSTALL file
# directly, but first take a note of what mergeinfo exists on the
# root of the branch:
$ cd branches/proj-X
-$ svn propget svn:mergeinfo --recursive
+$ svn propget svn:mergeinfo - -recursive
Properties on '.':
svn:mergeinfo
/trunk:651-652
@@ -1790,13 +1824,13 @@
# Now we perform the subtree merge, note that merge source
# and target both point to INSTALL:
$ svn merge ^/trunk/doc/INSTALL doc/INSTALL -c 958
---- Merging r958 into 'doc/INSTALL':
+- - Merging r958 into 'doc/INSTALL':
U doc/INSTALL
---- Recording mergeinfo for merge of r958 into 'doc/INSTALL':
+- - Recording mergeinfo for merge of r958 into 'doc/INSTALL':
G doc/INSTALL
# Once the merge is complete there is now subtree mergeinfo on INSTALL:
-$ svn propget svn:mergeinfo --recursive
+$ svn propget svn:mergeinfo - -recursive
Properties on '.':
svn:mergeinfo
/trunk:651-652
@@ -1809,9 +1843,68 @@
# branch, Subversion notices the subtree mergeinfo on INSTALL and doesn't
# try to merge any changes to it, only the changes to main.c are merged:
$ svn merge ^/subversion/trunk . -c 958
---- Merging r958 into '.':
+- - Merging r958 into '.':
U src/main.c
---- Recording mergeinfo for merge of r958 into '.':
+- - Recording mergeinfo for merge of r958 into '.':
+ U .
+- - Eliding mergeinfo from 'doc/INSTALL':
+ U doc/INSTALL
+</screen>
+ </informalexample>
+-->
+ <informalexample>
+ <screen>
+# Wir müssen r958 von trunk und branches/proj-X/doc/INSTALL
+# zusammenführen, doch beeinflusst diese Revision auch main.c, das
+# wir jedoch nicht zusammenführen wollen:
+$ svn log --verbose --quiet -r 958 ^/
+------------------------------------------------------------------------
+r958 | bruce | 2011-10-20 13:28:11 -0400 (Do, 20 Okt 2011)
+Geänderte Pfade:
+ M /trunk/doc/INSTALL
+ M /trunk/src/main.c
+------------------------------------------------------------------------
+
+# Kein Problem. Wir führen einen Teilbaum direkt auf der Datei INSTALL
+# zusammen, doch merken uns zunächst, welche
+# Zusammenführungs-Informationen für die Wurzel des Zweigs vorhanden
+# ist:
+$ cd branches/proj-X
+
+$ svn propget svn:mergeinfo --recursive
+Eigenschaften zu ».«:
+ svn:mergeinfo
+ /trunk:651-652
+
+# Nun führen wir den Teilbaum zusammen; beachten Sie, dass sowohl
+# Quelle als auch Ziel auf INSTALL zeigen:
+$ svn merge ^/trunk/doc/INSTALL doc/INSTALL -c 958
+-- Zusammenführen von r958 in »doc/INSTALL«:
+U doc/INSTALL
+-- Aufzeichnung der Informationen für Zusammenführung von r958 in
»doc/INSTALL«:
+ G doc/INSTALL
+
+# Sobald die Zusammenführung abgeschlossen ist, gibt es Informationen
+# zur Zusammenführung an INSTALL:
+$ svn propget svn:mergeinfo --recursive
+Eigenschaften zu ».«:
+ svn:mergeinfo
+ /trunk:651-652
+Eigenschaften zu »doc/INSTALL«:
+ svn:mergeinfo
+ /trunk/doc/INSTALL:651-652,958
+
+# Was, wenn wir und dann entscheiden, alles von r958 haben zu wollen?
+# Ganz einfach, alles, was wir tun müssen, ist, die Zusammenführung
+# dieser Revision zu wiederholen, diesen mal allerdings auf der Wurzel
+# des Zweigs. Subversion erkennt die Information zur Zusammenführung
+# des Teilbaums an INSTALL und versucht nicht, irgendwelche Änderungen
+# hineinzubringen, sondern es führt nur die Änderungen an main.c
+# zusammen:
+$ svn merge ^/subversion/trunk . -c 958
+-- Zusammenführen von r958 in ».«:
+U src/main.c
+-- Aufzeichnung der Informationen für Zusammenführung von r958 in ».«:
U .
--- Eliding mergeinfo from 'doc/INSTALL':
U doc/INSTALL
@@ -1819,9 +1912,13 @@
</informalexample>
<indexterm>
+<!--
<primary>mergeinfo elision</primary>
+-->
+ <primary>Auslassung von Zusammenführungs-Informationen</primary>
</indexterm>
+<!--
<para>You might be wondering why <filename>INSTALL</filename>
in the above example has mergeinfo for r651-652, when we
only merged r958. This is due to mergeinfo inheritance,
@@ -1832,10 +1929,26 @@
<quote>elided</quote>. This is called
<firstterm>mergeinfo elision</firstterm> and it occurs
whenever Subversion detects redundant subtree mergeinfo.</para>
+-->
+ <para>Sie haben sich vielleicht gefragt, warum im obigen
+ Beispiel <filename>INSTALL</filename> Informationen zur
+ Zusammenführung für r651-652 besitzt, wenn wir nur r958
+ zusammengeführt haben. Das liegt an der Vererbung der
+ Information zur Zusammenführung, die wir in
+ <xref
linkend="svn.branchmerge.basicmerging.mergeinfo.inheritance"
+ /> behandeln. Beachten Sie weiterhin, dass die Information
+ zur Teilbaum-Zusammenführung von
+ <filename>doc/INSTALL</filename> entfernt, oder
+ <quote>ausgelassen</quote> wurde. Das nennt sich
+ <firstterm>Auslassung von
+ Zusammenführungs-Informationen</firstterm> und passiert
+ immer dann, wenn Subversion redundante Informationen über
+ Teilbaum-Zusammenführungen entdeckt.</para>
</sidebar>
<tip>
+<!--
<para>Prior to Subversion 1.7, merges unconditionally updated
<emphasis>all</emphasis> of the subtree mergeinfo under the
target to describe the merge. For users with a lot of subtree
@@ -1853,6 +1966,29 @@
target; the merge target's mergeinfo is always updated to
describe the merge, even if the applied difference made no
changes.</para>
+-->
+ <para>vor Subversion 1.7 haben Zusammenführungen bedingungslos
+ <emphasis>die gesamten</emphasis> Informationen über
+ Teilbaum-Zusammenführungen unter dem Ziel aktualisiert, um
+ die Zusammenführung zu beschreiben. Für Anwender mit vielen
+ Informationen zu Teilbaum-Zusammenführungen bedeutete das,
+ dass auch relativ <quote>einfache</quote> Zusammenführungen
+ (z.B. bei der ein Diff auf eine einzige Datei angewendet
+ wurde) Änderungen der Zusammenführungs-Informationen in
+ jedem Teilbaum nach sich zog, selbst bei denen, die keine
+ Eltern des betroffenen Pfades waren. Dies führte zu einiger
+ Verwirrung und Frustration. Subversion 1.7 geht dieses
+ Problem an, indem es nur die Informationen an den Teilbäumen
+ aktualisiert, die Eltern der von der Zusammenführung
+ betroffenen Pfade sind (d.h., durch die Anwendung der
+ Differenz geänderte, hinzugefügte oder gelöschte Pfade,
+ siehe
+ <xref linkend="svn.branchmerge.advanced.advancedsyntax"/>).
+ Die einzige Ausnahme von diesem Verhalten betrifft das
+ eigentlilche Ziel der Zusammenführung; dessen Informationen
+ werden stets aktualisiert, um die Zusammenführung zu
+ beschreiben, auch wenn die angewandte Differenz keine
+ Änderung nach sich zog.</para>
</tip>
</sect2>
More information about the svnbook-dev
mailing list