hg diff [OPTION]... ([-c REV] | [-r REV1 [-r REV2]]) [FILE]...

diff repository (or selected files)

    Show differences between revisions for the specified files.

    Differences between files are shown using the unified diff format.

    .. note::

       :hg:`diff` may generate unexpected results for merges, as it will
       default to comparing against the working directory's first
       parent changeset if no revisions are specified.

    When two revision arguments are given, then changes are shown
    between those revisions. If only one revision is specified then
    that revision is compared to the working directory, and, when no
    revisions are specified, the working directory files are compared
    to its first parent.

    Alternatively you can specify -c/--change with a revision to see
    the changes in that changeset relative to its first parent.

    Without the -a/--text option, diff will avoid generating diffs of
    files it detects as binary. With -a, diff will generate a diff
    anyway, probably with undesirable results.

    Use the -g/--git option to generate diffs in the git extended diff
    format. For more information, read :hg:`help diffs`.

    .. container:: verbose

      Examples:

      - compare a file in the current working directory to its parent::

          hg diff foo.c

      - compare two historical versions of a directory, with rename info::

          hg diff --git -r 1.0:1.2 lib/

      - get change stats relative to the last change on some date::

          hg diff --stat -r "date('may 2')"

      - diff all newly-added files that contain a keyword::

          hg diff "set:added() and grep(GNU)"

      - compare a revision and its parents::

          hg diff -c 9353         # compare against first parent
          hg diff -r 9353^:9353   # same using revset syntax
          hg diff -r 9353^2:9353  # compare against the second parent

    Returns 0 on success.
    

options ([+] can be repeated):

 == ===================== ===========================================
 -r --rev REV [+]         revision                                   
 -c --change REV          change made by revision                    
 -a --text                treat all files as text                    
 -g --git                 use git extended diff format               
    --binary              generate binary diffs in git mode (default)
    --nodates             omit dates from diff headers               
    --noprefix            omit a/ and b/ prefixes from filenames     
 -p --show-function       show which function each change is in      
    --reverse             produce a diff that undoes the changes     
 -w --ignore-all-space    ignore white space when comparing lines    
 -b --ignore-space-change ignore changes in the amount of white space
 -B --ignore-blank-lines  ignore changes whose lines are all blank   
 -Z --ignore-space-at-eol ignore changes in whitespace at EOL        
 -U --unified NUM         number of lines of context to show         
    --stat                output diffstat-style summary of changes   
    --root DIR            produce diffs relative to subdirectory     
 -I --include PATTERN [+] include names matching the given patterns  
 -X --exclude PATTERN [+] exclude names matching the given patterns  
 -S --subrepos            recurse into subrepositories               
 == ===================== ===========================================

global options ([+] can be repeated):

 == =================== ==================================================================
 -R --repository REPO   repository root directory or name of overlay bundle file          
    --cwd DIR           change working directory                                          
 -y --noninteractive    do not prompt, automatically pick the first choice for all prompts
 -q --quiet             suppress output                                                   
 -v --verbose           enable additional output                                          
    --color TYPE        when to colorize (boolean, always, auto, never, or debug)         
    --config CONFIG [+] set/override config option (use 'section.name=value')             
    --debug             enable debugging output                                           
    --debugger          start debugger                                                    
    --encoding ENCODE   set the charset encoding (default: ascii)                         
    --encodingmode MODE set the charset encoding mode (default: strict)                   
    --traceback         always print a traceback on exception                             
    --time              time how long the command takes                                   
    --profile           print command execution profile                                   
    --version           output version information and exit                               
 -h --help              display help and exit                                             
    --hidden            consider hidden changesets                                        
    --pager TYPE        when to paginate (boolean, always, auto, or never) (default: auto)
 == =================== ==================================================================