Diff for single revision or revision range (patch)

Fredrik Lundh fredrik at pythonware.com
Tue Apr 19 23:20:08 BST 2005

Harri Salokorpi wrote:

> I changed the semantics of -r REV, because I think it really should show the 
> changes in specific revision instead of cumulative changes from that revision 
> to current. I followed the principle of least surprise (at least I think 
> so :)

svn and cvs users might disagree.

as a reference, here's the SVN help page:

diff (di): Display the differences between two paths.
usage: 1. diff [-r N[:M]] [--old OLD-TGT] [--new NEW-TGT] [PATH...]
       2. diff -r N:M URL
       3. diff [-r N[:M]] URL1[@N] URL2[@M]

  1. Display the differences between OLD-TGT and NEW-TGT.  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].

     OLD-TGT defaults to the path '.' and NEW-TGT defaults to OLD-TGT.
     N defaults to BASE or, if OLD-TGT is an URL, to HEAD.
     M defaults to the current working version or, if NEW-TGT is an URL,
     to HEAD.

     '-r N' sets the revision of OLD-TGT to N, '-r N:M' also sets the
     revision of NEW-TGT to M.

  2. Shorthand for 'svn diff -r N:M --old=URL --new=URL'.

  3. Shorthand for 'svn diff [-r N[:M]] --old=URL1 --new=URL2'

  Use just 'svn diff' to display local modifications in a working copy

Valid options:
  -r [--revision] arg      : ARG (some commands also take ARG1:ARG2 range)
                             A revision argument can be one of:
                                NUMBER       revision number
                                "{" DATE "}" revision at start of the date
                                "HEAD"       latest in repository
                                "BASE"       base rev of item's working copy
                                "COMMITTED"  last commit at or before BASE
                                "PREV"       revision just before COMMITTED
  --old arg                : use ARG as the older target
  --new arg                : use ARG as the newer target
  -x [--extensions] arg    : pass ARG as bundled options to GNU diff
  -N [--non-recursive]     : operate on single directory only
  --diff-cmd arg           : use ARG as diff command
  --no-diff-deleted        : do not print differences for deleted files
  --notice-ancestry        : notice ancestry when calculating differences
  --username arg           : specify a username ARG
  --password arg           : specify a password ARG
  --no-auth-cache          : do not cache authentication tokens
  --non-interactive        : do no interactive prompting
  --config-dir arg         : read user configuration files from directory ARG

More information about the bazaar mailing list