svn diff — Display the differences between two paths.
diff [-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. The three different ways you can use svn diff are:
svn diff [-r N[:M]] [--old OLD-TGT] [--new
            NEW-TGT] [PATH...] displays the differences
            between OLD-TGT and
            NEW-TGT.  If
            PATHs are given, they are
            treated as relative to OLD-TGT
            and NEW-TGT and the output is
            restricted to differences in only those paths.
            OLD-TGT and
            NEW-TGT may be working copy
            paths or
            URL[@REV].
            OLD-TGT defaults to the current
            working directory and NEW-TGT
            defaults to OLD-TGT.
            N defaults to
            BASE or, if
            OLD-TGT is a URL, to
            HEAD.  M
            defaults to the current working version or, if
            NEW-TGT is a URL, to
            HEAD.  svn diff -r N
            sets the revision of OLD-TGT to
            N, svn diff -r
            N:M also sets the revision of
            NEW-TGT to
            M.
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 or by using
            “@” notation as described earlier.
If TARGET is a working copy
            path, then the --revision switch
            means:
--revision N:MThe server compares
                  TARGET@N
                  and
                  TARGET@M.
--revision NThe client compares
                  TARGET@N
                  against working copy.
--revision)The client compares base and working copies of
                  TARGET.
If the alternate syntax is used, the server compares
            URL1 and
            URL2 at revisions
            N and
            M respectively.  If either
            N or
            M are 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 (that is, 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
--revision (-r) REV --old OLD-TARGET --new NEW-TARGET --extensions (-x) "ARGS" --non-recursive (-N) --diff-cmd CMD --notice-ancestry --username USER --password PASS --no-auth-cache --non-interactive --no-diff-deleted --config-dir DIR
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 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 (you only pass 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 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 >