comparison hgext/extdiff.py @ 9059:269764ecffe2

extdiff: wrapped docstrings at 78 characters
author Martin Geisler <mg@lazybytes.net>
date Tue, 07 Jul 2009 23:54:42 +0200
parents 77324df822e2
children 38d29d3bf190
comparison
equal deleted inserted replaced
9058:b10cee4bd2c1 9059:269764ecffe2
5 # This software may be used and distributed according to the terms of the 5 # This software may be used and distributed according to the terms of the
6 # GNU General Public License version 2, incorporated herein by reference. 6 # GNU General Public License version 2, incorporated herein by reference.
7 7
8 '''command to allow external programs to compare revisions 8 '''command to allow external programs to compare revisions
9 9
10 The `extdiff' Mercurial extension allows you to use external programs 10 The `extdiff' Mercurial extension allows you to use external programs to
11 to compare revisions, or revision with working directory. The external diff 11 compare revisions, or revision with working directory. The external diff
12 programs are called with a configurable set of options and two 12 programs are called with a configurable set of options and two non-option
13 non-option arguments: paths to directories containing snapshots of 13 arguments: paths to directories containing snapshots of files to compare.
14 files to compare. 14
15 15 The `extdiff' extension also allows to configure new diff commands, so you do
16 The `extdiff' extension also allows to configure new diff commands, so 16 not need to type "hg extdiff -p kdiff3" always.
17 you do not need to type "hg extdiff -p kdiff3" always.
18 17
19 [extdiff] 18 [extdiff]
20 # add new command that runs GNU diff(1) in 'context diff' mode 19 # add new command that runs GNU diff(1) in 'context diff' mode
21 cdiff = gdiff -Nprc5 20 cdiff = gdiff -Nprc5
22 ## or the old way: 21 ## or the old way:
27 vdiff = kdiff3 26 vdiff = kdiff3
28 27
29 # add new command called meld, runs meld (no need to name twice) 28 # add new command called meld, runs meld (no need to name twice)
30 meld = 29 meld =
31 30
32 # add new command called vimdiff, runs gvimdiff with DirDiff plugin 31 # add new command called vimdiff, runs gvimdiff with DirDiff plugin (see
33 # (see http://www.vim.org/scripts/script.php?script_id=102) 32 # http://www.vim.org/scripts/script.php?script_id=102) Non English user, be
34 # Non English user, be sure to put "let g:DirDiffDynamicDiffText = 1" in 33 # sure to put "let g:DirDiffDynamicDiffText = 1" in your .vimrc
35 # your .vimrc
36 vimdiff = gvim -f '+next' '+execute "DirDiff" argv(0) argv(1)' 34 vimdiff = gvim -f '+next' '+execute "DirDiff" argv(0) argv(1)'
37 35
38 You can use -I/-X and list of file or directory names like normal "hg 36 You can use -I/-X and list of file or directory names like normal "hg diff"
39 diff" command. The `extdiff' extension makes snapshots of only needed 37 command. The `extdiff' extension makes snapshots of only needed files, so
40 files, so running the external diff program will actually be pretty 38 running the external diff program will actually be pretty fast (at least
41 fast (at least faster than having to compare the entire tree). 39 faster than having to compare the entire tree).
42 ''' 40 '''
43 41
44 from mercurial.i18n import _ 42 from mercurial.i18n import _
45 from mercurial.node import short 43 from mercurial.node import short
46 from mercurial import cmdutil, util, commands 44 from mercurial import cmdutil, util, commands
157 shutil.rmtree(tmproot) 155 shutil.rmtree(tmproot)
158 156
159 def extdiff(ui, repo, *pats, **opts): 157 def extdiff(ui, repo, *pats, **opts):
160 '''use external program to diff repository (or selected files) 158 '''use external program to diff repository (or selected files)
161 159
162 Show differences between revisions for the specified files, using 160 Show differences between revisions for the specified files, using an
163 an external program. The default program used is diff, with 161 external program. The default program used is diff, with default options
164 default options "-Npru". 162 "-Npru".
165 163
166 To select a different program, use the -p/--program option. The 164 To select a different program, use the -p/--program option. The program
167 program will be passed the names of two directories to compare. To 165 will be passed the names of two directories to compare. To pass additional
168 pass additional options to the program, use -o/--option. These 166 options to the program, use -o/--option. These will be passed before the
169 will be passed before the names of the directories to compare. 167 names of the directories to compare.
170 168
171 When two revision arguments are given, then changes are shown 169 When two revision arguments are given, then changes are shown between
172 between those revisions. If only one revision is specified then 170 those revisions. If only one revision is specified then that revision is
173 that revision is compared to the working directory, and, when no 171 compared to the working directory, and, when no revisions are specified,
174 revisions are specified, the working directory files are compared 172 the working directory files are compared to its parent.
175 to its parent.''' 173 '''
176 program = opts['program'] or 'diff' 174 program = opts['program'] or 'diff'
177 if opts['program']: 175 if opts['program']:
178 option = opts['option'] 176 option = opts['option']
179 else: 177 else:
180 option = opts['option'] or ['-Npru'] 178 option = opts['option'] or ['-Npru']