[svnbook commit] r3341 - trunk/src/de/book

jmfelderhoff noreply at red-bean.com
Fri Oct 31 00:21:40 CDT 2008


Author: jmfelderhoff
Date: Fri Oct 31 00:21:40 2008
New Revision: 3341

Log:
* trunk/src/de/book/ch04-branching-and-merging.xml
  - Task #159 (cf. http://www.svnbook.de/report/6).


Modified:
   trunk/src/de/book/ch04-branching-and-merging.xml

Modified: trunk/src/de/book/ch04-branching-and-merging.xml
==============================================================================
--- trunk/src/de/book/ch04-branching-and-merging.xml	(original)
+++ trunk/src/de/book/ch04-branching-and-merging.xml	Fri Oct 31 00:21:40 2008
@@ -2891,15 +2891,27 @@
 
     <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
     <sect2 id="svn.branchmerge.advanced.mergeconflicts">
+<!--
       <title>More on Merge Conflicts</title>
+-->
+      <title>Mehr über Konflikte beim Zusammenführen</title>
 
+<!--
       <para>Just like the <command>svn update</command> command,
         <command>svn merge</command> applies changes to your working
         copy.  And therefore it's also capable of creating
         conflicts.  The conflicts produced by <command>svn
           merge</command>, however, are sometimes different, and this
         section explains those differences.</para>
+-->
+      <para>Wie der Befehl <command>svn update</command> wendet auch 
+        <command>svn merge</command> Änderungen auf Ihre Arbeitskopie
+        an.  Und deshalb kann er auch Konflikte erzeugen. Die von
+        <command>svn merge</command> hervorgerufenen Konflikte sind
+        jedoch manchmal anders geartet, und dieser Abschnitt erklärt
+        diese Unterschiede.</para>
 
+<!--
       <para>To begin with, assume that your working copy has no
         local edits.  When you <command>svn update</command> to a
         particular revision, the changes sent by the server will
@@ -2910,7 +2922,20 @@
         comparison is exactly equal to what you already have, the
         delta is guaranteed to correctly convert your working copy
         into the right hand tree.</para>
+-->
+      <para>Zunächst gehen wir davon aus, dass Ihre Arbeitskopie keine
+        lokalen Änderungen enthält. Wenn Sie mit <command>svn
+          update</command> auf eine bestimmte Revision aktualisieren,
+        werden die vom Server gesendeten Änderungen immer
+        <quote>sauber</quote> auf Ihre Arbeitskopie angewendet. Der
+        Server erzeugt das Delta, indem er zwei Bäume vergleicht: eine
+        virtuelle Momentaufnahme Ihrer Arbeitskopie und der
+        Revisionsbaum, an dem Sie interessiert sind. Da die linke
+        Seite des Vergleichs völlig gleich zu dem ist, was Sie bereits
+        haben, wird das Delta garantiert Ihre Arbeitskopie korrekt in
+        den rechten Baum überführen.</para>
 
+<!--
       <para>But <command>svn merge</command> has no such guarantees
         and can be much more chaotic: the advanced user can ask the
         server to compare <emphasis>any</emphasis> two trees at all,
@@ -2924,6 +2949,23 @@
         <quote>failed hunks,</quote> <command>svn merge</command> will
         similarly complain about <quote>skipped
         targets</quote>:</para>
+-->
+      <para><command>svn merge</command> jedoch kann das nicht
+        gewährleisten und kann viel chaotischer sein: Der
+        fortgeschrittene Benutzer kann den Server auffordern,
+        <emphasis>irgendwelche</emphasis> zwei Bäume miteinander zu
+        vergleichen, sogar solche, die nicht mit der Arbeitskopie in
+        Beziehung stehen! Das bedeutet, dass ein hohes Potenzial für
+        menschliche Fehler besteht. Benutzer werden manchmal die
+        falschen zwei Bäume miteinander vergleichen, so dass ein Delta
+        erzeugt wird, das sich nicht sauber anwenden lässt.
+        <command>svn merge</command> wird sein Bestes geben, um soviel
+        wie möglich vom Delta anzuwenden, doch bei einigen Teilen kann
+        das unmöglich sein. So wie der Unix-Befehl
+        <command>patch</command> sich manchmal über <quote>failed
+          hunks</quote> beschwert, wird sich <command>svn
+          merge</command> ähnlich über <quote>skipped
+        targets</quote> beschweren:</para>
 
       <screen>
 $ svn merge -r 1288:1351 http://svn.example.com/repos/branch
@@ -2938,6 +2980,7 @@
         (h) help for more options:
 </screen>
 
+<!--
       <para>In the previous example, it might be the case that
         <filename>baz.c</filename> exists in both snapshots of the
         branch being compared, and the resultant delta wants to
@@ -2947,11 +2990,28 @@
         likely comparing the wrong two trees; it's the classic
         sign of user error.  When this happens, it's easy to
         recursively revert all the changes created by the merge
-        (<userinput>svn revert . --recursive</userinput>), delete any
+        (<userinput>svn revert . - -recursive</userinput>), delete any
         unversioned files or directories left behind after the
         revert, and rerun <command>svn merge</command> with
         different arguments.</para>
+-->
+      <para>Im vorangegangenen Beispiel kann es der Fall gewesen sein,
+        dass <filename>baz.c</filename> in beiden Momentaufnahmen des
+        Zweiges vorkommt, die verglichen werden, und das resultierende
+        Delta den Inhalt der Datei verändern will, die in der
+        Arbeitskopie aber nicht vorhanden ist. Wie auch immer, die
+        <quote>skipped</quote>-Nachricht bedeutet, dass der Benutzer
+        höchstwahrscheinlich die falschen Bäume miteinander
+        vergleicht; es ist das klassiche Zeichen für einen
+        Anwenderfehler. Falls dies passiert, ist es einfach, alle
+        durch das Zusammenführen hervorgerufenen Änderungen rekursiv
+        rückgängig zu machen (<userinput>svn revert .
+          --recursive</userinput>), alle unversionierten Dateien oder
+        Verzeichnisse zu löschen, die nach dem Rückgängigmachen
+        zurückgeblieben sind, und <command>svn merge</command> noch
+        einmal mit unterschiedlichen Argumenten aufzurufen.</para>
 
+<!--
       <para>Also notice that the preceding example shows a conflict
         happening on <filename>glorb.h</filename>.  We already
         stated that the working copy has no local edits: how can a
@@ -2960,7 +3020,20 @@
         delta to the working copy, that delta may contain textual
         changes that don't cleanly apply to a working file, even if
         the file has no local modifications.</para>
+-->
+      <para>Beachten Sie auch, dass das vorangegangene Beispiel einen
+        Konflikt in <filename>glorb.h</filename> anzeigt. Wir
+        bemerkten bereits, dass die Arbeitskopie keine lokalen
+        Änderungen besitzt: Wie kann da ein Konflikt entstehen? Noch
+        einmal: Weil der Benutzer <command>svn merge</command> dazu
+        verwenden kann, ein altes Delta zu definieren und auf die
+        Arbeitskopie anzuwenden, kann es sein, dass dieses alte Delta
+        textuelle Änderungen enthält, die nicht sauber in eine
+        Arbeitsdatei eingearbeitet werden können, selbst dann nicht,
+        wenn die Datei keine lokalen Änderungen vorzuweisen
+        hat.</para>
 
+<!--
       <para>Another small difference between <command>svn
           update</command> and <command>svn merge</command> is the
         names of the full-text files created when a conflict
@@ -2979,6 +3052,27 @@
         distinguish between conflicts that happened as a result of an
         update and ones that happened as a result of a
         merge.</para>
+-->
+      <para>Ein weiterer kleiner Unterschied zwischen <command>svn
+          update</command> und <command>svn merge</command> sind die
+        Namen der erzeugten Textdateien, falls ein Konflikt entsteht.
+        In <xref linkend="svn.tour.cycle.resolve"/> sahen wir, dass
+        bei einer Aktualisierung die Dateien namens
+        <filename>filename.mine</filename>,
+        <filename>filename.rOLDREV</filename> und
+        <filename>filename.rNEWREV</filename> erzeugt werden. Falls
+        <command>svn merge</command> einen Konflikt hervorruft,
+        erstellt es jedoch drei Dateien namens
+        <filename>filename.working</filename>,
+        <filename>filename.left</filename> und
+        <filename>filename.right</filename>.  In diesem Fall
+        beschreiben die Begriffe  <quote>left</quote> (links) und
+        <quote>right</quote> (rechts) von welcher Seite des Vergleichs
+        zwischen den beiden Bäumen die Datei hergeleitet wurde. Auf
+        alle Fälle werden Ihnen diese unterschiedlichen Namen dabei
+        helfen, zwischen Konflikten zu unterscheiden, die durch eine
+        Aktualisierung entstanden, und solchen die durch eine
+        Zusammenführung hervorgerufen wurden .</para>
 
     </sect2>
 




More information about the svnbook-dev mailing list