svn diff — This displays the differences between two revisions or paths.
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]
Display the differences between two paths. You can use svn diff in the following ways:
Use just svn diff to display local modifications in a working copy.
Display the changes made to
                TARGETs as they are seen in
                REV between two revisions.
                TARGETs may be all working copy
                paths or all URLs.  If
                TARGETs are working copy paths,
                N defaults to
                BASE and M
                to the working copy; if TARGETs
                are URLs,
                N must be specified and
                M defaults to
                HEAD.  The -c M option
                is equivalent to -r N:M where N =
                M-1.  Using -c -M does the
                reverse: -r M:N where N =
                M-1.
Display the differences between
                OLD-TGT as it was seen in
                OLDREV and
                NEW-TGT as it was seen in
                NEWREV.
                PATHs, if given, are relative
                to OLD-TGT and
                NEW-TGT and restrict the output
                to differences for those paths.
                OLD-TGT and
                NEW-TGT may be working copy
                paths or URL[@REV].
                NEW-TGT defaults to
                OLD-TGT if not specified.
                -r N
                makes OLDREV default to
                N; -r N:M
                makes OLDREV default to
                N and
                NEWREV default to
                M.
svn diff OLD-URL[@OLDREV]
            NEW-URL[@NEWREV] is shorthand for svn
            diff --old=OLD-URL[@OLDREV]
            --new=NEW-URL[@NEWREV].
svn diff -r N:M URL is shorthand
            for svn diff -r N:M --old=URL
            --new=URL.
svn diff [-r N[:M]] URL1[@N]
            URL2[@M] is shorthand for svn diff [-r
            N[:M]] --old=URL1 --new=URL2.
If TARGET is a URL, then
            revs N and M can be given either via the
            --revision option or by using the
            “@” notation as described earlier.
If TARGET is a working copy
            path, the default behavior (when no
            --revision option is provided) is to
            display the differences between the base and working
            copies of TARGET.  If a
            --revision option is specified in this
            scenario, though, it means:
--revision N:MThe server compares
                  TARGET@N
                  and
                  TARGET@M.
--revision NThe client compares
                  TARGET@N
                  against the working copy.
If the alternate syntax is used, the server compares
            URL1 and
            URL2 at revisions
            N and
            M, respectively.  If either
            N or
            M is omitted, a value of
            HEAD is assumed.
By default, svn diff ignores the
            ancestry of files and merely compares the contents of the
            two files being compared.  If you use
            --notice-ancestry, the ancestry of the
            paths in question will be taken into consideration when
            comparing revisions (i.e., if you run svn
            diff on two files with identical contents but
            different ancestry, you will see the entire contents of
            the file as having been removed and added again).
For obtaining differences against anything but
            BASE revision in your working copy
--change (-c) ARG --changelist ARG --depth ARG --diff-cmd CMD --extensions (-x) "ARGS" --force --new ARG --no-diff-deleted --notice-ancestry --old ARG --revision (-r) ARG --summarize --xml
Compare BASE and your working copy
            (one of the most popular uses of svn
            diff):
$ svn diff COMMITTERS Index: COMMITTERS =================================================================== --- COMMITTERS (revision 4404) +++ COMMITTERS (working copy)
See what changed in the file
            COMMITTERS revision 9115:
$ svn diff -c 9115 COMMITTERS Index: COMMITTERS =================================================================== --- COMMITTERS (revision 3900) +++ COMMITTERS (working copy)
See how your working copy's modifications compare against an older revision:
$ svn diff -r 3900 COMMITTERS Index: COMMITTERS =================================================================== --- COMMITTERS (revision 3900) +++ COMMITTERS (working copy)
Compare revision 3000 to revision 3500 using “@” 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)
…
Compare revision 3000 to revision 3500 using range notation (pass only the one URL in this case):
$ svn diff -r 3000:3500 http://svn.collab.net/repos/svn/trunk/COMMITTERS Index: COMMITTERS =================================================================== --- COMMITTERS (revision 3000) +++ COMMITTERS (revision 3500)
Compare revision 3000 to revision 3500 of all the files in
            trunk using range notation:
$ svn diff -r 3000:3500 http://svn.collab.net/repos/svn/trunk
          Compare revision 3000 to revision 3500 of only three
            files in trunk using range
            notation:
$ svn diff -r 3000:3500 --old http://svn.collab.net/repos/svn/trunk \
           COMMITTERS README HACKING
          If you have a working copy, you can obtain the differences without typing in the long URLs:
$ svn diff -r 3000:3500 COMMITTERS Index: COMMITTERS =================================================================== --- COMMITTERS (revision 3000) +++ COMMITTERS (revision 3500)
Use --diff-cmd
            CMD -x to
            pass arguments directly to the external diff
            program:
$ svn diff --diff-cmd /usr/bin/diff -x "-i -b" COMMITTERS Index: COMMITTERS =================================================================== 0a1,2 > This is a test >
Lastly, you can use the --xml option
            along with the --summarize option to view
            XML describing the changes that occurred between
            revisions, but not the contents of the diff itself:
$ 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>