Differences between revisions 1 and 5 (spanning 4 versions)
Revision 1 as of 2007-01-07 17:06:21
Size: 1795
Editor: TKSoh
Comment: create wiki page based on header comment in crew rev dfe87137ed14
Revision 5 as of 2007-01-18 01:30:17
Size: 2030
Comment: Use more uniform naming scheme for extensions
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
## page was renamed from UsingExtdiff
== Extdiff extension ==
'''This extension is currently being distributed along with Mercurial.'''

''Author: Vadim Gelfer''

=== Overview ===
Line 2: Line 9:
to compare revisions, or revision with working dir.  The external diff
programs are called with a configurable set of options and two
non-option argu
ments: paths to directories containing snapshots of
files to compare.
to compare revisions, or revision with working dir.
The external diff programs are called with a configurable set of options and two
non-option arguments: paths to directories containing snapshots of files to compare.
Line 7: Line 13:
=== Configuration ===
Line 47: Line 54:

----
CategoryExtension

Extdiff extension

This extension is currently being distributed along with Mercurial.

Author: Vadim Gelfer

Overview

The extdiff Mercurial extension allows you to use external programs to compare revisions, or revision with working dir. The external diff programs are called with a configurable set of options and two non-option arguments: paths to directories containing snapshots of files to compare.

Configuration

To enable this extension:

  [extensions]
  hgext.extdiff =

The extdiff extension also allows to configure new diff commands, so you do not need to type hg extdiff -p kdiff3 always.

  [extdiff]
  # add new command that runs GNU diff(1) in 'context diff' mode
  cmd.cdiff = gdiff
  opts.cdiff = -Nprc5

  # add new command called vdiff, runs kdiff3
  cmd.vdiff = kdiff3

  # add new command called meld, runs meld (no need to name twice)
  cmd.meld =

  # add new command called vimdiff, runs gvimdiff with DirDiff plugin
  #(see http://www.vim.org/scripts/script.php?script_id=102)
  # Non english user, be sure to put "let g:DirDiffDynamicDiffText = 1" in
  # your .vimrc
  cmd.vimdiff = gvim
  opts.vimdiff = -f '+next' '+execute "DirDiff" argv(0) argv(1)'

Each custom diff commands can have two parts: a 'cmd' and an 'opts' part. The cmd.xxx option defines the name of an executable program that will be run, and opts.xxx defines a set of command-line options which will be inserted to the command between the program name and the files/directories to diff (i.e. the cdiff example above).

You can use -I/-X options and list of file or directory names like normal hg diff command. The extdiff extension makes snapshots of only needed files, so running the external diff program will actually be pretty fast (at least faster than having to compare the entire tree).


CategoryExtension

ExtdiffExtension (last edited 2020-01-23 22:11:51 by JonathanPlona)