hg-diff - Man Page

diff repository (or selected files)

Synopsis

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

Description

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.  To diff against the conflict regions, you can use --config diff.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, hg diff --from .^ will show the differences from the working copy's grandparent to the working copy, hg diff --to . will show the diff from the working copy to its parent (i.e. the reverse of the default), and hg diff --from 1.0 --to 1.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. hg diff -c 42 is equivalent to hg diff --from 42^ --to 42)

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.

Examples:

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