In addition to the old cmd.foo, opts.foo hgrc entries, allow a more simple
alias = command [opts]... form. For example:
[extdiff]
cdiff = colordiff -uprN
Extdiff was always making a temporary directory and copying files even when not required. This change makes extdiff avoid the copy when diffing a single file that lives in the wc. This lets external diff tools edit the working copy file directly. It also lets other extensions resuse the functions in extdiff and get in-place diffs.
Made the status info only display in verbose mode since most hg commands aren't so chatty. This also makes it cleaner for other extensions to call extdiff.
- files that comes from a different branch are marked as modified
but aren't present in the original manifest
- add a testcase for extdiff and for regular diff
* Capitalize the first letter of all sentences
* Add an example for GNU diff(1) 'context diff' mode.
* Explain the requirement for separate cmd.xxx and opts.xxx
options in .hgrc, which hopefully will guard against users
trying to add:
[extdiff]
# Add a new Mercurial command called `cdiff', which calls
# GNU diff(1) in 'context diff' mode.
cmd.cdiff = diff -Nprc5
which fails for recent crew builds with:
$ hg cdiff .
making snapshot of 1 files from rev 07dc4a569f4e
making snapshot of 1 files from working dir
diff -Nprc5: not found
The correct way to do this is by separating the cmd.cdiff and
opts.cdiff parts like this:
[extdiff]
# Add a new Mercurial command called `cdiff', which calls
# GNU diff(1) in 'context diff' mode.
cmd.cdiff = diff
opts.cdiff = -Nprc5
so add it as a new example and explicitly describe it in the
extdiff comments.