[svnbook commit] r3491 - * trunk/src/de/book/ch07-customizing-svn.xml

codesite-noreply at google.com codesite-noreply at google.com
Fri Apr 17 15:45:41 CDT 2009


Author: jmfelderhoff at gmx.eu
Date: Fri Apr 17 13:39:05 2009
New Revision: 3491

Modified:
    trunk/src/de/book/ch07-customizing-svn.xml

Log:
* trunk/src/de/book/ch07-customizing-svn.xml
   - Fixes ticket #242 (cf. http://www.svnbook.de/report/6).


Modified: trunk/src/de/book/ch07-customizing-svn.xml
==============================================================================
--- trunk/src/de/book/ch07-customizing-svn.xml	(original)
+++ trunk/src/de/book/ch07-customizing-svn.xml	Fri Apr 17 13:39:05 2009
@@ -2150,31 +2150,34 @@
  -->
      <para>Subversion 1.5 führt die interaktive Auflösung von
        Konflikten ein (in <xref linkend="svn.tour.cycle.resolve" />
-      beschrieben), und eine der den Benutzern angebotene Option ist
-      die Fähigkeit, ein Zusammenführungsprogramm eines Drittanbieters
-      zu starten. Wenn dieses Vorgehen gewählt wird, ermittelt
-      Subversion über die Laufzeitoption
-      <literal>merge-tool-cmd</literal> den Namen eines externen
-      Zusammenführungsprogramms und startet dies mit den
-      entsprechenden Eingabedateien, sofern eins gefunden wird. Dies
-      ist in vielerlei Hinsicht ein Unterschied zum konfigurierbaren
-      Dreiwege-Vergleichsprogramm. Erstens wird das Vergleichsprogramm
-      stets verwendet, um Dreiwege-Vergleiche vorzunehmen, wohingegen
-      das Zusammenführungsprogramm nur dann angewendet wird, falls das
-      Dreiwege-Vergleichsprogramm einen Konflikt entdeckt hat.
-      Zweitens ist die Schnittstelle sehr viel sauberer – Ihr
-      konfiguriertes Zusammenführungsprogramm braucht nur vier
-      Pfadangaben als Kommandozeilenparameter zu akzeptieren: die
-      Basisdatei, die <quote>fremde</quote> Datei (die die Änderungen
-      aus dem Repository enthält), die <quote>eigene</quote> Datei
-      (die lokale Änderungen enthält) und den Pfad der Datei, in der
-      der endgültige Inhalt nach Konfliktauflösung gespeichert werden
-      soll.</para>
+      beschrieben), und eine den Benutzern angebotene Option ist die
+      Fähigkeit, ein Zusammenführungsprogramm eines Drittanbieters zu
+      starten. Wenn dieses Vorgehen gewählt wird, ermittelt Subversion
+      über die Laufzeitoption <literal>merge-tool-cmd</literal> den
+      Namen eines externen Zusammenführungsprogramms und startet dies
+      mit den entsprechenden Eingabedateien, sofern es gefunden wird.
+      Dies ist in vielerlei Hinsicht ein Unterschied zum
+      konfigurierbaren Dreiwege-Vergleichsprogramm. Erstens wird das
+      Vergleichsprogramm stets verwendet, um Dreiwege-Vergleiche
+      vorzunehmen, wohingegen das Zusammenführungsprogramm nur dann
+      angewendet wird, falls das Dreiwege-Vergleichsprogramm einen
+      Konflikt entdeckt hat.  Zweitens ist die Schnittstelle sehr viel
+      sauberer – Ihr konfiguriertes Zusammenführungsprogramm
+      braucht nur vier Pfadangaben als Kommandozeilenparameter zu
+      akzeptieren: die Basisdatei, die <quote>fremde</quote> Datei
+      (die die Änderungen aus dem Repository enthält), die
+      <quote>eigene</quote> Datei (die lokale Änderungen enthält) und
+      den Pfad der Datei, in der der endgültige Inhalt nach
+      Konfliktauflösung gespeichert werden soll.</para>

      <!-- ===============================================================  
-->
      <sect2 id="svn.advanced.externaldifftools.diff">
+<!--
        <title>External diff</title>
+-->
+      <title>Externes diff</title>

+<!--
        <para>Subversion calls external diff programs with parameters
          suitable for the GNU diff utility, and expects only that the
          external program will return with a successful error code.  For
@@ -2195,14 +2198,47 @@
              differences were found, and 2 means trouble.</quote></para>
          </footnote>
        </para>
+-->
+      <para>Subversion ruft externe diff-Programme mit Parametern auf,
+        die für GNU diff passen und erwartet lediglich, dass das
+        externe Programm mit einem Erfolg signalisierenden
+        Rückgabewert zurückkommt. Für die meisten alternativen
+        diff-Programme sind nur die Argumente an sechster und siebter
+        Stelle interessant – die Pfade der Dateien, die die
+        linke bzw. rechte Seite des Vergleichs repräsentieren.
+        Beachten Sie, dass Subversion das diff-Programm jeweils einmal
+        pro modifizierter Datei aufruft, die die Subversion-Operation
+        berührt, falls Ihr Programm also asynchron läuft (oder als
+        <quote>Hintergrundprozess</quote>), könnte es sein, dass
+        mehrere Instanzen gleichzeitig ausgeführt werden. Schließlich
+        erwartet Subversion, dass Ihr Programm den Rückgabewert 1
+        liefert, falls es Unterschiede entdeckt hat, oder 0, falls
+        nicht – jeder andere Rückgabewert wird als fataler
+        Fehler angesehen.
+        <footnote>
+          <para>Das Handbuch zu GNU diff beschreibt es so: <quote>Ein
+            Rückgabewert 0 bedeutet, dass keine Unterschiede gefunden
+            wurden, 1 bedeutet, dass einige Unterschiede gefunden
+            wurden und 2 bedeutet Ärger.</quote></para>
+        </footnote>
+      </para>
+<!--

        <para><xref linkend="svn.advanced.externaldifftools.diff.ex-1"/>
          and <xref linkend="svn.advanced.externaldifftools.diff.ex-2"/>
          are templates for external diff tool wrappers in the Python
          and Windows batch scripting languages, respectively.</para>
+-->
+
+      <para><xref linkend="svn.advanced.externaldifftools.diff.ex-1"/>
+        und <xref linkend="svn.advanced.externaldifftools.diff.ex-2"/>
+        sind <quote>Verpackungs</quote>-Vorlagen für externe
+        diff-Werkzeuge in den Skriptsprachen Python bzw.
+        Windows-Batch.</para>

        <example id="svn.advanced.externaldifftools.diff.ex-1">
          <title>diffwrap.py</title>
+<!--
          <programlisting>
  #!/usr/bin/env python
  import sys
@@ -2217,16 +2253,38 @@

  # Call the diff command (change the following line to make sense for
  # your diff program).
-cmd = [DIFF, '--left', LEFT, '--right', RIGHT]
+cmd = [DIFF, '- -left', LEFT, '- -right', RIGHT]
  os.execv(cmd[0], cmd)

  # Return an errorcode of 0 if no differences were detected, 1 if some were.
  # Any other errorcode will be treated as fatal.
  </programlisting>
+-->
+        <programlisting>
+#!/usr/bin/env python
+import sys
+import os
+
+# Geben Sie hier Ihr bevorzugtes diff-Programm an.
+DIFF = "/usr/local/bin/my-diff-tool"
+
+# Subversion liefert die benötigten Pfade als die letzten beiden Parameter.
+LEFT  = sys.argv[-2]
+RIGHT = sys.argv[-1]
+
+# Aufruf des diff-Befehls (ändern Sie die folgende Zeile passend für
+# Ihr diff-Programm).
+cmd = [DIFF, '--left', LEFT, '--right', RIGHT]
+os.execv(cmd[0], cmd)
+
+# Rückgabewert 0 falls keine Unterschiede, 1 falls doch.
+# Jeder andere Rückgabewert wird als fatal betrachtet.
+</programlisting>
        </example>

        <example id="svn.advanced.externaldifftools.diff.ex-2">
          <title>diffwrap.bat</title>
+<!--
          <programlisting>
  @ECHO OFF

@@ -2241,10 +2299,30 @@

  REM Call the diff command (change the following line to make sense for
  REM your diff program).
-%DIFF% --left %LEFT% --right %RIGHT%
+%DIFF% - -left %LEFT% - -right %RIGHT%

  REM Return an errorcode of 0 if no differences were detected, 1 if some  
were.
  REM Any other errorcode will be treated as fatal.
+</programlisting>
+-->
+        <programlisting>
+ at ECHO OFF
+
+REM  Geben Sie hier Ihr bevorzugtes diff-Programm an.
+SET DIFF="C:\Program Files\Funky Stuff\My Diff Tool.exe"
+
+REM Subversion liefert die benötigten Pfade als die letzten beiden  
Parameter.
+REM Das sind die Parameter 6 und 7 (außer Sie benutzen svn diff -x, dann
+REM ist alles möglich).
+SET LEFT=%6
+SET RIGHT=%7
+
+REM Aufruf des diff-Befehls (ändern Sie die folgende Zeile passend für
+REM Ihr diff-Programm).
+%DIFF% --left %LEFT% --right %RIGHT%
+
+REM Rückgabewert 0 falls keine Unterschiede, 1 falls doch.
+REM Jeder andere Rückgabewert wird als fatal betrachtet.
  </programlisting>
        </example>
      </sect2>


More information about the svnbook-dev mailing list