hg annotate

show changeset information by line for each file



hg annotate [-r REV] [-f] [-a] [-u] [-d] [-n] [-c] [-l] FILE...


List changes in files, showing the revision id responsible for each line.

This command is useful for discovering when a change was made and by whom.

If you include --file, --user, or --date, the revision number is suppressed unless you also include --number.

Without the -a/--text option, annotate will avoid processing files it detects as binary. With -a, annotate will annotate the file anyway, although the results will probably be neither useful nor desirable.


The following keywords are supported in addition to the common template keywords and functions. See also hg help templates.

lines:List of lines with annotation data.
path:String. Repository-absolute path of the specified file.

And each entry of {lines} provides the following sub-keywords in addition to {date}, {node}, {rev}, {user}, etc.

line:String. Line content.
lineno:Integer. Line number at that revision.
path:String. Repository-absolute path of the file at that revision.

See hg help templates.operators for the list expansion syntax.

Returns 0 on success.


-r, --rev <REV>
 annotate the specified revision
--follow follow copies/renames and list the filename (DEPRECATED)
--no-follow don't follow copies and renames
-a, --text treat all files as text
-u, --user list the author (long with -v)
-f, --file list the filename
-d, --date list the date (short with -q)
-n, --number list the revision number (default)
-c, --changeset
 list the changeset
-l, --line-number
 show line number at the first appearance
--skip <REV[+]>
 revision to not display (EXPERIMENTAL)
-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
-I, --include <PATTERN[+]>
 include names matching the given patterns
-X, --exclude <PATTERN[+]>
 exclude names matching the given patterns
-T, --template <TEMPLATE>
 display with template

[+] marked option can be specified multiple times