hg diff - diff repository (or selected files)
Contents
Description
Show differences between revisions for the specified files.
Differences between files are shown using the unified diff format.
Note hgdiff 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. To diff against the
conflict regions, you can use --configdiff.merge=yes.
By default, the working directory files are compared to its first parent. To see the differences from
another revision, use --from. To see the difference to another revision, use --to. For example, hgdiff--from.^ will show the differences from the working copy's grandparent to the working copy, hgdiff--to. will show the diff from the working copy to its parent (i.e. the reverse of the default), and hgdiff--from1.0--to1.2 will show the diff between those two revisions.
Alternatively you can specify -c/--change with a revision to see the changes in that changeset relative
to its first parent (i.e. hgdiff-c42 is equivalent to hgdiff--from42^--to42)
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 hghelpdiffs.
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 --from 1.0 --to 1.2 lib/
• get change stats relative to the last change on some date:
hg diff --stat --from "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 --from 9353^ --to 9353 # same using revset syntax
hg diff --from 9353^2 --to 9353 # compare against the second parent
Returns 0 on success.
Name
hg diff - diff repository (or selected files)
Options
-r,--rev<REV[+]>
revision (DEPRECATED)
--from<REV1>
revision to diff from
--to<REV2>
revision to diff to
-c,--change<REV>
change made by revision
-a,--text
treat all files as text
-g,--git
use git extended diff format (DEFAULT: diff.git)
--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 (DEFAULT: diff.showfunc)
--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
[+] marked option can be specified multiple times
HG(DIFF)
Synopsis
hg diff [OPTION]... ([-c REV] | [--from REV1] [--to REV2]) [FILE]...
