Dieser Text befindet sich gegenwärtig in Bearbeitung, unterliegt ständigen Änderungen und kann dadurch nicht stets akkurat irgendeine freigegebene Version der Software Apache™ Subversion® beschreiben. Das Speichern dieser Seite als Lesezeichen oder andere auf diese Seite zu verweisen, ist keine so gute Idee. Besuchen Sie http://www.svnbook.com/, um stabile Versionen dieses Buchs zu erhalten.
svn diff (di) — Anzeige der Unterschiede zwischen zwei Revisionen oder Pfaden.
          diff [-c M | -r N[:M]] [TARGET[@REV]...]
        
          diff [-r N[:M]] --old=OLD-TGT[@OLDREV] [--new=NEW-TGT[@NEWREV]] [PATH...]
        
          diff OLD-URL[@OLDREV] NEW-URL[@NEWREV]
        
Anzeige der Unterschiede zwischen zwei Pfaden. Sie können svn diff wie folgt verwenden:
Verwenden Sie nur svn diff, um lokale Änderungen in einer Arbeitskopie anzuzeigen.
Anzeige der Änderungen an
            TARGETs in
            REV zwischen zwei
            Revisionen. Alle TARGETs
            können entweder nur Pfade in der Arbeitskopie oder nur
            URLs sein. Falls
            TARGETs Pfade in der
            Arbeitskopie sind, ist der Standardwert von
            N BASE
            und M die Arbeitskopie;
            falls TARGETs
            URLs sind, muss
            N angegeben werden, und der
            Standardwert von M ist
            HEAD. Die Option -c
            M ist äquivalent zu -r
            N:M,  wobei N = M-1. Die
            Verwendung von -c -M bewirkt den
            umgekehrten Fall: -r M:N,  wobei
            N = M-1.
Anzeige der Unterschiede zwischen
            OLD-TGT in
            OLDREV und
            NEW-TGT in
            NEWREV.  Sind
            PATHs angegeben, sind sie
            relativ zu OLD-TGT und
            NEW-TGT, und die Ausgabe
            wird auf Unterschiede für diese Pfade beschränkt.
            OLD-TGT und
            NEW-TGT können Pfade in der
            Arbeitskopie sein oder
            URL[@REV].  Der
            Standardwert von NEW-TGT
            ist OLD-TGT, falls nicht
            angegeben. -r N setzt den
            Standardwert von OLDREV auf
            N; -r N:M setzt
            den Standardwert von OLDREV
            auf N und
            NEWREV auf
            M.
svn diff OLD-URL[@OLDREV]
        NEW-URL[@NEWREV] ist die Kurzform für
        svn diff --old=OLD-URL[@OLDREV]
        --new=NEW-URL[@NEWREV].
svn diff -r N:M URL ist die
        Kurzform für svn diff -r N:M --old=URL
        --new=URL.
svn diff [-r N[:M]] URL1[@N]
        URL2[@M] ist die Kurzform für svn
        diff [-r N[:M]] --old=URL1 --new=URL2.
Falls TARGET ein URL ist,
        können die Revisionen N und
        M entweder mir der Option
        --revision (-r) oder in
        der Notation „@“ angegeben werden, wie vorher
        beschrieben.
Falls es sich bei TARGET um
        einen Pfad in der Arbeitskopie handelt, besteht das
        Standardverhalten (sofern die Option
        --revision (-r) nicht
        angegeben wird) darin, die Unterschiede zwischen der
        Basisversion und der Arbeitskopie von
        TARGET auszugeben. Wird in
        diesem Fall jedoch die Option --revision
        (-r) angegeben, bedeutet das:
      
--revision N:M
              
            Der Server vergleicht TARGET@N
              und TARGET@M.
--revision N
              
            Der Client vergleicht
              TARGET@N
              mit der Arbeitskopie.
Wird die alternative Syntax verwendet, vergleicht der
        Server URL1 und
        URL2 in Revision
        N bzw.
        M. Wird entweder
        N oder
        M ausgelassen, wird der Wert
        HEAD angenommen.
Standardmäßig ignoriert svn diff
        die Herkunft von Dateien und vergleicht lediglich den
        Inhalt der beiden Dateien. Falls Sie
        --notice-ancestry verwenden, wird die
        Herkunft der Pfade beim Vergleich der Revisionen
        berücksichtigt (d.h., falls Sie svn
        diff auf zwei Dateien gleichen Inhalts jedoch
        unterschiedlicher Herkunft anwenden, wird es dargestellt,
        als sei der gesamte Inhalt entfernt und wieder hinzugefügt
        worden).
--change(-c)ARG--changelist(--cl)ARG--depthARG--diff-cmdCMD--extensions(-x)ARG--force--git--ignore-properties--internal-diff--newARG--no-diff-added--no-diff-deleted--notice-ancestry--oldARG--patch-compatible--properties-only--revision(-r)REV--show-copies-as-adds--summarize--xml
Vergleich von BASE und Ihrer
        Arbeitskopie (eine der beliebtesten Anwendungen von
        svn diff):
$ svn diff COMMITTERS Index: COMMITTERS =================================================================== --- COMMITTERS (Revision 4404) +++ COMMITTERS (Arbeitskopie) …
Betrachten der Änderungen in der Datei
        COMMITTERS, Revision 9115:
$ svn diff -c 9115 COMMITTERS Index: COMMITTERS =================================================================== --- COMMITTERS (Revision 3900) +++ COMMITTERS (Arbeitskopie) …
Die Änderungen in der Arbeitskopie mit einer älteren Revision vergleichen:
$ svn diff -r 3900 COMMITTERS Index: COMMITTERS =================================================================== --- COMMITTERS (Revision 3900) +++ COMMITTERS (Arbeitskopie) …
Vergleich von Revision 3000 mit Revision 3500 unter Verwendung der „@“-Syntax:
$ svn diff http://svn.collab.net/repos/svn/trunk/COMMITTERS@3000 \
       http://svn.collab.net/repos/svn/trunk/COMMITTERS@3500
Index: COMMITTERS
=================================================================== 
--- COMMITTERS	(Revision 3000)
+++ COMMITTERS	(Revision 3500)
…
        Vergleich von Revision 3000 mit Revision 3500 unter Verwendung der Bereichsschreibweise (in diesem Fall wird nur ein URL angegeben):
$ svn diff -r 3000:3500 http://svn.collab.net/repos/svn/trunk/COMMITTERS Index: COMMITTERS =================================================================== --- COMMITTERS (Revision 3000) +++ COMMITTERS (Revision 3500) …
Vergleich der Revision 3000 mit Revision 3500 aller
        Dateien in trunk unter Verwendung der
        Bereichsschreibweise:
$ svn diff -r 3000:3500 http://svn.collab.net/repos/svn/trunk
Vergleich der Revision 3000 mit Revision 3500 von nur
        drei Dateien in trunk unter
        Verwendung der Bereichsschreibweise:
$ svn diff -r 3000:3500 --old http://svn.collab.net/repos/svn/trunk \
       COMMITTERS README HACKING
        Falls Sie eine Arbeitskopie haben, können Sie die Unterschiede ermitteln, ohne die langen URLs einzugeben:
$ svn diff -r 3000:3500 COMMITTERS Index: COMMITTERS =================================================================== --- COMMITTERS (Revision 3000) +++ COMMITTERS (Revision 3500) …
Verwendung von --diff-cmd
        CMD --extensions
        (-x), um Argumente direkt an das externe
        diff-Programm zu übergeben:
$ svn diff --diff-cmd /usr/bin/diff -x "-i -b" COMMITTERS Index: COMMITTERS =================================================================== 0a1,2 > This is a test > $
Schließlich können Sie die Option
        --xml  zusammen mit der Option
        --summarize verwenden, um die Änderungen
        zwischen den Revisionen, nicht jedoch den Inhalt des
        eigentlichen Diffs, in XML anzusehen:
$ svn diff --summarize --xml http://svn.red-bean.com/repos/test@r2 \
           http://svn.red-bean.com/repos/test
<?xml version="1.0"?>
<diff>
<paths>
<path
   props="none"
   kind="file"
   item="modified">http://svn.red-bean.com/repos/test/sandwich.txt</path>
<path
   props="none"
   kind="file"
   item="deleted">http://svn.red-bean.com/repos/test/burrito.txt</path>
<path
   props="none"
   kind="dir"
   item="added">http://svn.red-bean.com/repos/test/snacks</path>
</paths>
</diff>