annotate mercurial/commands.py @ 13751:85d74f6babf6

patch: deprecate ui.patch / external patcher feature Why? - Mercurial internal patcher works correctly for regular patches and git patches, is much faster at least on Windows and is more extensible. - In theory, the external patcher can be used to handle exotic patch formats. I do not know any and have not heard about any such use in years. - Most patch programs cannot handle git format patches, which makes the API caller to decide either to ignore ui.patch by calling patch.internalpatch() directly, or take the risk of random failures with valid inputs. - One thing a patch program could do Mercurial patcher cannot is applying with --reverse. Apparently several shelve like extensions try to use that, including passing the "reverse" option to Mercurial patcher, which has been removed mid-2009. I never heard anybody complain about that, and would prefer reimplementing it anyway. And from the technical perspective: - The external patcher makes everything harder to maintain and implement. EOL normalization is not implemented, and I would bet file renames, if supported by the patcher, are not correctly recorded in the dirstate. - No tests. How? - Remove related documentation - Clearly mark patch.externalpatch() as private - Remove the debuginstall check. This deprecation request was actually triggered by this last point. debuginstall is the only piece of code patching without a repository. When migrating to an integrated patch() + updatedir() call, this was really a showstopper, all workarounds were either ugly or uselessly complicated to implement. If we do not support external patcher anymore, the debuginstall check is not useful anymore. - Remove patch.externalpatch() after 1.9 release.
author Patrick Mezard <pmezard@gmail.com>
date Thu, 24 Mar 2011 10:28:29 +0100
parents cede00420e1e
children 0f9282dc87f8
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
249
619e775aa7f9 import and startup cleanups
mpm@selenic.com
parents: 248
diff changeset
1 # commands.py - command processing for mercurial
619e775aa7f9 import and startup cleanups
mpm@selenic.com
parents: 248
diff changeset
2 #
4635
63b9d2deed48 Updated copyright notices and add "and others" to "hg version"
Thomas Arendsen Hein <thomas@intevation.de>
parents: 4614
diff changeset
3 # Copyright 2005-2007 Matt Mackall <mpm@selenic.com>
249
619e775aa7f9 import and startup cleanups
mpm@selenic.com
parents: 248
diff changeset
4 #
8225
46293a0c7e9f updated license to be explicit about GPL version 2
Martin Geisler <mg@lazybytes.net>
parents: 8210
diff changeset
5 # This software may be used and distributed according to the terms of the
10263
25e572394f5c Update license to GPLv2+
Matt Mackall <mpm@selenic.com>
parents: 10224
diff changeset
6 # GNU General Public License version 2 or any later version.
249
619e775aa7f9 import and startup cleanups
mpm@selenic.com
parents: 248
diff changeset
7
13723
e615765fdcc7 wireproto: add known([id]) function
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 13720
diff changeset
8 from node import hex, bin, nullid, nullrev, short
8109
496ae1ea4698 switch lock releasing in the core from gc to explicit
Ronny Pfannschmidt <Ronny.Pfannschmidt@gmx.de>
parents: 8088
diff changeset
9 from lock import release
7013
f56e788fa292 i18n: mark help strings for translation
Martin Geisler <mg@daimi.au.dk>
parents: 7012
diff changeset
10 from i18n import _, gettext
9678
e2b1de5fee04 remove unused imports
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 9675
diff changeset
11 import os, re, sys, difflib, time, tempfile
13366
c756e9166417 bookmarks: merge incoming/outgoing into core
Matt Mackall <mpm@selenic.com>
parents: 13344
diff changeset
12 import hg, util, revlog, extensions, copies, error, bookmarks
11301
3d0591a66118 move discovery methods from localrepo into new discovery module
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 11297
diff changeset
13 import patch, help, mdiff, url, encoding, templatekw, discovery
11004
7bb10d3dbcd6 hgweb: unify hgweb calls in serve
Matt Mackall <mpm@selenic.com>
parents: 11003
diff changeset
14 import archival, changegroup, cmdutil, sshserver, hbisect, hgweb, hgweb.server
10651
5f091fc1bab7 style: use consistent variable names (*mod) with imports which would shadow
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 10650
diff changeset
15 import merge as mergemod
13591
264f292a0c6f templatefilters: move doc from templates.txt to docstrings
Patrick Mezard <pmezard@gmail.com>
parents: 13585
diff changeset
16 import minirst, revset, templatefilters
11336
3dfbe26cfded debugdag and debugindexdag: emit changelog/revlog DAGs as concise text
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11331
diff changeset
17 import dagparser
2731
ad4155e757da Kill ui.setconfig_remoteopts
Matt Mackall <mpm@selenic.com>
parents: 2718
diff changeset
18
255
20a44c82795f hg help: use docstrings only
mpm@selenic.com
parents: 254
diff changeset
19 # Commands start here, listed alphabetically
209
63af1db35611 Beginning of new command parsing interface
mpm@selenic.com
parents:
diff changeset
20
724
1c0c413cccdd Get add and locate to use new repo and dirstate walk code.
Bryan O'Sullivan <bos@serpentine.com>
parents: 723
diff changeset
21 def add(ui, repo, *pats, **opts):
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
22 """add the specified files on the next commit
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
23
8004
d5b1b846f277 commands: word-wrap help texts at 70 characters
Martin Geisler <mg@daimi.au.dk>
parents: 7983
diff changeset
24 Schedule files to be version controlled and added to the
d5b1b846f277 commands: word-wrap help texts at 70 characters
Martin Geisler <mg@daimi.au.dk>
parents: 7983
diff changeset
25 repository.
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
26
3829
531c116b2028 Add doc notes about revert and hg status vs diff
Matt Mackall <mpm@selenic.com>
parents: 3822
diff changeset
27 The files will be added to the repository at the next commit. To
11193
687c7d395f20 Use our custom hg reStructuredText role some more
Martin Geisler <mg@aragost.com>
parents: 11185
diff changeset
28 undo an add before that, see :hg:`forget`.
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
29
7807
bd8f44638847 help: miscellaneous language fixes
timeless <timeless@gmail.com>
parents: 7765
diff changeset
30 If no names are given, add all files to the repository.
10446
a565a2445eb5 commands: add verbose example to help text for add
Martin Geisler <mg@lazybytes.net>
parents: 10445
diff changeset
31
a565a2445eb5 commands: add verbose example to help text for add
Martin Geisler <mg@lazybytes.net>
parents: 10445
diff changeset
32 .. container:: verbose
a565a2445eb5 commands: add verbose example to help text for add
Martin Geisler <mg@lazybytes.net>
parents: 10445
diff changeset
33
a565a2445eb5 commands: add verbose example to help text for add
Martin Geisler <mg@lazybytes.net>
parents: 10445
diff changeset
34 An example showing how new (unknown) files are added
10973
49a07f441496 Use hg role in help strings
Martin Geisler <mg@aragost.com>
parents: 10963
diff changeset
35 automatically by :hg:`add`::
10446
a565a2445eb5 commands: add verbose example to help text for add
Martin Geisler <mg@lazybytes.net>
parents: 10445
diff changeset
36
a565a2445eb5 commands: add verbose example to help text for add
Martin Geisler <mg@lazybytes.net>
parents: 10445
diff changeset
37 $ ls
a565a2445eb5 commands: add verbose example to help text for add
Martin Geisler <mg@lazybytes.net>
parents: 10445
diff changeset
38 foo.c
a565a2445eb5 commands: add verbose example to help text for add
Martin Geisler <mg@lazybytes.net>
parents: 10445
diff changeset
39 $ hg status
a565a2445eb5 commands: add verbose example to help text for add
Martin Geisler <mg@lazybytes.net>
parents: 10445
diff changeset
40 ? foo.c
a565a2445eb5 commands: add verbose example to help text for add
Martin Geisler <mg@lazybytes.net>
parents: 10445
diff changeset
41 $ hg add
a565a2445eb5 commands: add verbose example to help text for add
Martin Geisler <mg@lazybytes.net>
parents: 10445
diff changeset
42 adding foo.c
a565a2445eb5 commands: add verbose example to help text for add
Martin Geisler <mg@lazybytes.net>
parents: 10445
diff changeset
43 $ hg status
10448
6e5a47398fc5 commands: correct example in add help text
Martin Geisler <mg@lazybytes.net>
parents: 10446
diff changeset
44 A foo.c
11507
35e2d453cf0d commands: document return values of add and paths commands
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11488
diff changeset
45
35e2d453cf0d commands: document return values of add and paths commands
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11488
diff changeset
46 Returns 0 if all files are successfully added.
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
47 """
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
48
6579
0159b7a36184 walk: pass match object to cmdutil.walk
Matt Mackall <mpm@selenic.com>
parents: 6578
diff changeset
49 m = cmdutil.match(repo, pats, opts)
12270
166b9866580a add: recurse into subrepositories with --subrepos/-S flag
Martin Geisler <mg@lazybytes.net>
parents: 12269
diff changeset
50 rejected = cmdutil.add(ui, repo, m, opts.get('dry_run'),
166b9866580a add: recurse into subrepositories with --subrepos/-S flag
Martin Geisler <mg@lazybytes.net>
parents: 12269
diff changeset
51 opts.get('subrepos'), prefix="")
12269
877236cdd437 add: move main part to cmdutil to make it easier to reuse
Martin Geisler <mg@lazybytes.net>
parents: 12266
diff changeset
52 return rejected and 1 or 0
213
d2172916ef6c commands: migrate status and branch
mpm@selenic.com
parents: 212
diff changeset
53
766
b444a7e053f1 Get addremove to use new walk code.
Bryan O'Sullivan <bos@serpentine.com>
parents: 764
diff changeset
54 def addremove(ui, repo, *pats, **opts):
3181
3637d5d17cbc Documentation fixes for addremove.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 3172
diff changeset
55 """add all new files, delete all missing files
2181
690da72b0b16 deprecate addremove command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2179
diff changeset
56
8004
d5b1b846f277 commands: word-wrap help texts at 70 characters
Martin Geisler <mg@daimi.au.dk>
parents: 7983
diff changeset
57 Add all new files and remove all missing files from the
d5b1b846f277 commands: word-wrap help texts at 70 characters
Martin Geisler <mg@daimi.au.dk>
parents: 7983
diff changeset
58 repository.
d5b1b846f277 commands: word-wrap help texts at 70 characters
Martin Geisler <mg@daimi.au.dk>
parents: 7983
diff changeset
59
d5b1b846f277 commands: word-wrap help texts at 70 characters
Martin Geisler <mg@daimi.au.dk>
parents: 7983
diff changeset
60 New files are ignored if they match any of the patterns in
13344
6367459decf7 doc: Add back quotes around filenames
Javi Merino <cibervicho@gmail.com>
parents: 13343
diff changeset
61 ``.hgignore``. As with add, these changes take effect at the next
8004
d5b1b846f277 commands: word-wrap help texts at 70 characters
Martin Geisler <mg@daimi.au.dk>
parents: 7983
diff changeset
62 commit.
2958
ff3ea21a981a addremove: add -s/--similarity option
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2956
diff changeset
63
8033
aeb4a5c7a28e commands: consistently write switches as -a/--abc
Martin Geisler <mg@lazybytes.net>
parents: 8032
diff changeset
64 Use the -s/--similarity option to detect renamed files. With a
9249
16f4cfc69e4f commands: wrap docstrings at 70 characters
Martin Geisler <mg@lazybytes.net>
parents: 9219
diff changeset
65 parameter greater than 0, this compares every removed file with
16f4cfc69e4f commands: wrap docstrings at 70 characters
Martin Geisler <mg@lazybytes.net>
parents: 9219
diff changeset
66 every added file and records those similar enough as renames. This
16f4cfc69e4f commands: wrap docstrings at 70 characters
Martin Geisler <mg@lazybytes.net>
parents: 9219
diff changeset
67 option takes a percentage between 0 (disabled) and 100 (files must
16f4cfc69e4f commands: wrap docstrings at 70 characters
Martin Geisler <mg@lazybytes.net>
parents: 9219
diff changeset
68 be identical) as its parameter. Detecting renamed files this way
11518
8d827f4a23f1 commands: mention "hg status -C" in addremove help
Arnab Bose <hirak99@gmail.com>
parents: 11515
diff changeset
69 can be expensive. After using this option, :hg:`status -C` can be
8d827f4a23f1 commands: mention "hg status -C" in addremove help
Arnab Bose <hirak99@gmail.com>
parents: 11515
diff changeset
70 used to check which files were identified as moved or renamed.
11177
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
71
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
72 Returns 0 if all files are successfully added.
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
73 """
4966
8d982aef0be1 addremove: print meaningful error message if --similar not numeric
Bryan O'Sullivan <bos@serpentine.com>
parents: 4950
diff changeset
74 try:
11551
4484a7b661f2 commands: addremove does similarity 100 by default
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 11525
diff changeset
75 sim = float(opts.get('similarity') or 100)
4966
8d982aef0be1 addremove: print meaningful error message if --similar not numeric
Bryan O'Sullivan <bos@serpentine.com>
parents: 4950
diff changeset
76 except ValueError:
8d982aef0be1 addremove: print meaningful error message if --similar not numeric
Bryan O'Sullivan <bos@serpentine.com>
parents: 4950
diff changeset
77 raise util.Abort(_('similarity must be a number'))
2958
ff3ea21a981a addremove: add -s/--similarity option
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2956
diff changeset
78 if sim < 0 or sim > 100:
ff3ea21a981a addremove: add -s/--similarity option
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2956
diff changeset
79 raise util.Abort(_('similarity must be between 0 and 100'))
10282
08a0f04b56bd many, many trivial check-code fixups
Matt Mackall <mpm@selenic.com>
parents: 10270
diff changeset
80 return cmdutil.addremove(repo, pats, opts, similarity=sim / 100.0)
219
8ff4532376a4 hg checkout: refuse to checkout if there are outstanding changes
mpm@selenic.com
parents: 214
diff changeset
81
733
1966c553f652 Convert annotate over to walk interface.
Bryan O'Sullivan <bos@serpentine.com>
parents: 732
diff changeset
82 def annotate(ui, repo, *pats, **opts):
8779
708938509732 Improve English for help text of many core hg commands.
timeless <timeless@gmail.com>
parents: 8778
diff changeset
83 """show changeset information by line for each file
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
84
8004
d5b1b846f277 commands: word-wrap help texts at 70 characters
Martin Geisler <mg@daimi.au.dk>
parents: 7983
diff changeset
85 List changes in files, showing the revision id responsible for
d5b1b846f277 commands: word-wrap help texts at 70 characters
Martin Geisler <mg@daimi.au.dk>
parents: 7983
diff changeset
86 each line
d5b1b846f277 commands: word-wrap help texts at 70 characters
Martin Geisler <mg@daimi.au.dk>
parents: 7983
diff changeset
87
8779
708938509732 Improve English for help text of many core hg commands.
timeless <timeless@gmail.com>
parents: 8778
diff changeset
88 This command is useful for discovering when a change was made and
708938509732 Improve English for help text of many core hg commands.
timeless <timeless@gmail.com>
parents: 8778
diff changeset
89 by whom.
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
90
8033
aeb4a5c7a28e commands: consistently write switches as -a/--abc
Martin Geisler <mg@lazybytes.net>
parents: 8032
diff changeset
91 Without the -a/--text option, annotate will avoid processing files
8779
708938509732 Improve English for help text of many core hg commands.
timeless <timeless@gmail.com>
parents: 8778
diff changeset
92 it detects as binary. With -a, annotate will annotate the file
708938509732 Improve English for help text of many core hg commands.
timeless <timeless@gmail.com>
parents: 8778
diff changeset
93 anyway, although the results will probably be neither useful
708938509732 Improve English for help text of many core hg commands.
timeless <timeless@gmail.com>
parents: 8778
diff changeset
94 nor desirable.
11177
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
95
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
96 Returns 0 on success.
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
97 """
10579
f142fa3c0a8c Make annotate --follow an alias for -f/--file to behave like in older versions
Thomas Arendsen Hein <thomas@intevation.de>
parents: 10564
diff changeset
98 if opts.get('follow'):
f142fa3c0a8c Make annotate --follow an alias for -f/--file to behave like in older versions
Thomas Arendsen Hein <thomas@intevation.de>
parents: 10564
diff changeset
99 # --follow is deprecated and now just an alias for -f/--file
f142fa3c0a8c Make annotate --follow an alias for -f/--file to behave like in older versions
Thomas Arendsen Hein <thomas@intevation.de>
parents: 10564
diff changeset
100 # to mimic the behavior of Mercurial before version 1.5
f142fa3c0a8c Make annotate --follow an alias for -f/--file to behave like in older versions
Thomas Arendsen Hein <thomas@intevation.de>
parents: 10564
diff changeset
101 opts['file'] = 1
f142fa3c0a8c Make annotate --follow an alias for -f/--file to behave like in older versions
Thomas Arendsen Hein <thomas@intevation.de>
parents: 10564
diff changeset
102
6134
7b937b26adf7 Make annotae/grep print short dates with -q/--quiet.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 6133
diff changeset
103 datefunc = ui.quiet and util.shortdate or util.datestr
7b937b26adf7 Make annotae/grep print short dates with -q/--quiet.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 6133
diff changeset
104 getdate = util.cachefunc(lambda x: datefunc(x[0].date()))
1522
d07d729ce306 Added --date option to annotate.
lupus@debian.org
parents: 1519
diff changeset
105
744
3d88f6dd1ed4 Handle empty file list for annotate
mpm@selenic.com
parents: 743
diff changeset
106 if not pats:
8761
0289f384e1e5 Generally replace "file name" with "filename" in help and comments.
timeless <timeless@gmail.com>
parents: 8760
diff changeset
107 raise util.Abort(_('at least one filename or pattern is required'))
744
3d88f6dd1ed4 Handle empty file list for annotate
mpm@selenic.com
parents: 743
diff changeset
108
4857
2192001e4bb4 Add --line-number option to hg annotate (issue506)
Thomas Arendsen Hein <thomas@intevation.de>
parents: 4849
diff changeset
109 opmap = [('user', lambda x: ui.shortuser(x[0].user())),
2192001e4bb4 Add --line-number option to hg annotate (issue506)
Thomas Arendsen Hein <thomas@intevation.de>
parents: 4849
diff changeset
110 ('number', lambda x: str(x[0].rev())),
2192001e4bb4 Add --line-number option to hg annotate (issue506)
Thomas Arendsen Hein <thomas@intevation.de>
parents: 4849
diff changeset
111 ('changeset', lambda x: short(x[0].node())),
2192001e4bb4 Add --line-number option to hg annotate (issue506)
Thomas Arendsen Hein <thomas@intevation.de>
parents: 4849
diff changeset
112 ('date', getdate),
10369
98a0421b9e52 commands: annotate follows by default, separate -f/--file option
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 10365
diff changeset
113 ('file', lambda x: x[0].path()),
4857
2192001e4bb4 Add --line-number option to hg annotate (issue506)
Thomas Arendsen Hein <thomas@intevation.de>
parents: 4849
diff changeset
114 ]
2192001e4bb4 Add --line-number option to hg annotate (issue506)
Thomas Arendsen Hein <thomas@intevation.de>
parents: 4849
diff changeset
115
10282
08a0f04b56bd many, many trivial check-code fixups
Matt Mackall <mpm@selenic.com>
parents: 10270
diff changeset
116 if (not opts.get('user') and not opts.get('changeset')
10369
98a0421b9e52 commands: annotate follows by default, separate -f/--file option
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 10365
diff changeset
117 and not opts.get('date') and not opts.get('file')):
714
29fcd195e056 Some cleanups in commands.annotate().
Thomas Arendsen Hein <thomas@intevation.de>
parents: 712
diff changeset
118 opts['number'] = 1
209
63af1db35611 Beginning of new command parsing interface
mpm@selenic.com
parents:
diff changeset
119
4857
2192001e4bb4 Add --line-number option to hg annotate (issue506)
Thomas Arendsen Hein <thomas@intevation.de>
parents: 4849
diff changeset
120 linenumber = opts.get('line_number') is not None
10394
4612cded5176 fix coding style (reported by pylint)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 10390
diff changeset
121 if linenumber and (not opts.get('changeset')) and (not opts.get('number')):
4857
2192001e4bb4 Add --line-number option to hg annotate (issue506)
Thomas Arendsen Hein <thomas@intevation.de>
parents: 4849
diff changeset
122 raise util.Abort(_('at least one of -n/-c is required for -l'))
2192001e4bb4 Add --line-number option to hg annotate (issue506)
Thomas Arendsen Hein <thomas@intevation.de>
parents: 4849
diff changeset
123
2192001e4bb4 Add --line-number option to hg annotate (issue506)
Thomas Arendsen Hein <thomas@intevation.de>
parents: 4849
diff changeset
124 funcmap = [func for op, func in opmap if opts.get(op)]
2192001e4bb4 Add --line-number option to hg annotate (issue506)
Thomas Arendsen Hein <thomas@intevation.de>
parents: 4849
diff changeset
125 if linenumber:
2192001e4bb4 Add --line-number option to hg annotate (issue506)
Thomas Arendsen Hein <thomas@intevation.de>
parents: 4849
diff changeset
126 lastfunc = funcmap[-1]
2192001e4bb4 Add --line-number option to hg annotate (issue506)
Thomas Arendsen Hein <thomas@intevation.de>
parents: 4849
diff changeset
127 funcmap[-1] = lambda x: "%s:%s" % (lastfunc(x), x[1])
2192001e4bb4 Add --line-number option to hg annotate (issue506)
Thomas Arendsen Hein <thomas@intevation.de>
parents: 4849
diff changeset
128
13697
eaee75036725 annotate: catch nonexistent files using match.bad callback (issue1590)
Matt Mackall <mpm@selenic.com>
parents: 13694
diff changeset
129 def bad(x, y):
eaee75036725 annotate: catch nonexistent files using match.bad callback (issue1590)
Matt Mackall <mpm@selenic.com>
parents: 13694
diff changeset
130 raise util.Abort("%s: %s" % (x, y))
eaee75036725 annotate: catch nonexistent files using match.bad callback (issue1590)
Matt Mackall <mpm@selenic.com>
parents: 13694
diff changeset
131
12925
6eab8f0df2ca commands: add revset support to most commands
Matt Mackall <mpm@selenic.com>
parents: 12918
diff changeset
132 ctx = cmdutil.revsingle(repo, opts.get('rev'))
6579
0159b7a36184 walk: pass match object to cmdutil.walk
Matt Mackall <mpm@selenic.com>
parents: 6578
diff changeset
133 m = cmdutil.match(repo, pats, opts)
13697
eaee75036725 annotate: catch nonexistent files using match.bad callback (issue1590)
Matt Mackall <mpm@selenic.com>
parents: 13694
diff changeset
134 m.bad = bad
10369
98a0421b9e52 commands: annotate follows by default, separate -f/--file option
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 10365
diff changeset
135 follow = not opts.get('no_follow')
6764
8db64464d136 context: add walk method
Matt Mackall <mpm@selenic.com>
parents: 6762
diff changeset
136 for abs in ctx.walk(m):
8db64464d136 context: add walk method
Matt Mackall <mpm@selenic.com>
parents: 6762
diff changeset
137 fctx = ctx[abs]
7131
23bd7383891c commands: optional options where possible
Alexander Solovyov <piranha@piranha.org.ua>
parents: 7126
diff changeset
138 if not opts.get('text') and util.binary(fctx.data()):
6584
29c77e5dfb3c walk: remove rel and exact returns
Matt Mackall <mpm@selenic.com>
parents: 6583
diff changeset
139 ui.write(_("%s: binary file\n") % ((pats and m.rel(abs)) or abs))
1016
836667830fee Teach annotate about binary files
mpm@selenic.com
parents: 1015
diff changeset
140 continue
836667830fee Teach annotate about binary files
mpm@selenic.com
parents: 1015
diff changeset
141
10369
98a0421b9e52 commands: annotate follows by default, separate -f/--file option
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 10365
diff changeset
142 lines = fctx.annotate(follow=follow, linenumber=linenumber)
209
63af1db35611 Beginning of new command parsing interface
mpm@selenic.com
parents:
diff changeset
143 pieces = []
63af1db35611 Beginning of new command parsing interface
mpm@selenic.com
parents:
diff changeset
144
4857
2192001e4bb4 Add --line-number option to hg annotate (issue506)
Thomas Arendsen Hein <thomas@intevation.de>
parents: 4849
diff changeset
145 for f in funcmap:
2192001e4bb4 Add --line-number option to hg annotate (issue506)
Thomas Arendsen Hein <thomas@intevation.de>
parents: 4849
diff changeset
146 l = [f(n) for n, dummy in lines]
2192001e4bb4 Add --line-number option to hg annotate (issue506)
Thomas Arendsen Hein <thomas@intevation.de>
parents: 4849
diff changeset
147 if l:
11611
4f5a6df2af92 i18n: use encoding.colwidth() for correct column width
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11518
diff changeset
148 sized = [(x, encoding.colwidth(x)) for x in l]
4f5a6df2af92 i18n: use encoding.colwidth() for correct column width
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11518
diff changeset
149 ml = max([w for x, w in sized])
4f5a6df2af92 i18n: use encoding.colwidth() for correct column width
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11518
diff changeset
150 pieces.append(["%s%s" % (' ' * (ml - w), x) for x, w in sized])
209
63af1db35611 Beginning of new command parsing interface
mpm@selenic.com
parents:
diff changeset
151
771
0de223012086 Fixes for annotate
mpm@selenic.com
parents: 770
diff changeset
152 if pieces:
0de223012086 Fixes for annotate
mpm@selenic.com
parents: 770
diff changeset
153 for p, l in zip(zip(*pieces), lines):
0de223012086 Fixes for annotate
mpm@selenic.com
parents: 770
diff changeset
154 ui.write("%s: %s" % (" ".join(p), l[1]))
209
63af1db35611 Beginning of new command parsing interface
mpm@selenic.com
parents:
diff changeset
155
2112
2b03c6733efa add "archive" command, like "cvs export" only better.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2092
diff changeset
156 def archive(ui, repo, dest, **opts):
8779
708938509732 Improve English for help text of many core hg commands.
timeless <timeless@gmail.com>
parents: 8778
diff changeset
157 '''create an unversioned archive of a repository revision
2112
2b03c6733efa add "archive" command, like "cvs export" only better.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2092
diff changeset
158
2b03c6733efa add "archive" command, like "cvs export" only better.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2092
diff changeset
159 By default, the revision used is the parent of the working
8033
aeb4a5c7a28e commands: consistently write switches as -a/--abc
Martin Geisler <mg@lazybytes.net>
parents: 8032
diff changeset
160 directory; use -r/--rev to specify a different revision.
aeb4a5c7a28e commands: consistently write switches as -a/--abc
Martin Geisler <mg@lazybytes.net>
parents: 8032
diff changeset
161
10650
9ea7238ad935 archive: autodetect archive type by extension (issue2058)
David Wolever <david@wolever.net>
parents: 10649
diff changeset
162 The archive type is automatically detected based on file
9ea7238ad935 archive: autodetect archive type by extension (issue2058)
David Wolever <david@wolever.net>
parents: 10649
diff changeset
163 extension (or override using -t/--type).
9ea7238ad935 archive: autodetect archive type by extension (issue2058)
David Wolever <david@wolever.net>
parents: 10649
diff changeset
164
9ea7238ad935 archive: autodetect archive type by extension (issue2058)
David Wolever <david@wolever.net>
parents: 10649
diff changeset
165 Valid types are:
9892
4322e39bd525 commands: use field lists instead of literal blocks in docstrings
Martin Geisler <mg@lazybytes.net>
parents: 9891
diff changeset
166
4322e39bd525 commands: use field lists instead of literal blocks in docstrings
Martin Geisler <mg@lazybytes.net>
parents: 9891
diff changeset
167 :``files``: a directory full of files (default)
4322e39bd525 commands: use field lists instead of literal blocks in docstrings
Martin Geisler <mg@lazybytes.net>
parents: 9891
diff changeset
168 :``tar``: tar archive, uncompressed
4322e39bd525 commands: use field lists instead of literal blocks in docstrings
Martin Geisler <mg@lazybytes.net>
parents: 9891
diff changeset
169 :``tbz2``: tar archive, compressed using bzip2
4322e39bd525 commands: use field lists instead of literal blocks in docstrings
Martin Geisler <mg@lazybytes.net>
parents: 9891
diff changeset
170 :``tgz``: tar archive, compressed using gzip
4322e39bd525 commands: use field lists instead of literal blocks in docstrings
Martin Geisler <mg@lazybytes.net>
parents: 9891
diff changeset
171 :``uzip``: zip archive, uncompressed
4322e39bd525 commands: use field lists instead of literal blocks in docstrings
Martin Geisler <mg@lazybytes.net>
parents: 9891
diff changeset
172 :``zip``: zip archive, compressed using deflate
2112
2b03c6733efa add "archive" command, like "cvs export" only better.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2092
diff changeset
173
2b03c6733efa add "archive" command, like "cvs export" only better.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2092
diff changeset
174 The exact name of the destination archive or directory is given
10973
49a07f441496 Use hg role in help strings
Martin Geisler <mg@aragost.com>
parents: 10963
diff changeset
175 using a format string; see :hg:`help export` for details.
2112
2b03c6733efa add "archive" command, like "cvs export" only better.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2092
diff changeset
176
2b03c6733efa add "archive" command, like "cvs export" only better.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2092
diff changeset
177 Each member added to an archive file has a directory prefix
8033
aeb4a5c7a28e commands: consistently write switches as -a/--abc
Martin Geisler <mg@lazybytes.net>
parents: 8032
diff changeset
178 prepended. Use -p/--prefix to specify a format string for the
aeb4a5c7a28e commands: consistently write switches as -a/--abc
Martin Geisler <mg@lazybytes.net>
parents: 8032
diff changeset
179 prefix. The default is the basename of the archive, with suffixes
aeb4a5c7a28e commands: consistently write switches as -a/--abc
Martin Geisler <mg@lazybytes.net>
parents: 8032
diff changeset
180 removed.
11177
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
181
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
182 Returns 0 on success.
2112
2b03c6733efa add "archive" command, like "cvs export" only better.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2092
diff changeset
183 '''
2b03c6733efa add "archive" command, like "cvs export" only better.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2092
diff changeset
184
12925
6eab8f0df2ca commands: add revset support to most commands
Matt Mackall <mpm@selenic.com>
parents: 12918
diff changeset
185 ctx = cmdutil.revsingle(repo, opts.get('rev'))
5061
a49f2a4d5ff7 archive: abort on empty repository. Fixes #624.
Brendan Cully <brendan@kublai.com>
parents: 4966
diff changeset
186 if not ctx:
7528
eadcc075967e archive: fix bogus error message with no working directory
Matt Mackall <mpm@selenic.com>
parents: 7527
diff changeset
187 raise util.Abort(_('no working directory: please specify a revision'))
5061
a49f2a4d5ff7 archive: abort on empty repository. Fixes #624.
Brendan Cully <brendan@kublai.com>
parents: 4966
diff changeset
188 node = ctx.node()
2874
4ec58b157265 refactor text diff/patch code.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2871
diff changeset
189 dest = cmdutil.make_filename(repo, dest, node)
2112
2b03c6733efa add "archive" command, like "cvs export" only better.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2092
diff changeset
190 if os.path.realpath(dest) == repo.root:
2b03c6733efa add "archive" command, like "cvs export" only better.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2092
diff changeset
191 raise util.Abort(_('repository root cannot be destination'))
10650
9ea7238ad935 archive: autodetect archive type by extension (issue2058)
David Wolever <david@wolever.net>
parents: 10649
diff changeset
192
11557
57bdc2239535 archival: move commands.archive.guess_type to archival.guesskind
Martin Geisler <mg@lazybytes.net>
parents: 11551
diff changeset
193 kind = opts.get('type') or archival.guesskind(dest) or 'files'
7131
23bd7383891c commands: optional options where possible
Alexander Solovyov <piranha@piranha.org.ua>
parents: 7126
diff changeset
194 prefix = opts.get('prefix')
10650
9ea7238ad935 archive: autodetect archive type by extension (issue2058)
David Wolever <david@wolever.net>
parents: 10649
diff changeset
195
2476
0f7e4a39d9af archive: make "hg archive -t XXX -" to write to stdout
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2473
diff changeset
196 if dest == '-':
0f7e4a39d9af archive: make "hg archive -t XXX -" to write to stdout
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2473
diff changeset
197 if kind == 'files':
0f7e4a39d9af archive: make "hg archive -t XXX -" to write to stdout
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2473
diff changeset
198 raise util.Abort(_('cannot archive plain files to stdout'))
0f7e4a39d9af archive: make "hg archive -t XXX -" to write to stdout
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2473
diff changeset
199 dest = sys.stdout
10282
08a0f04b56bd many, many trivial check-code fixups
Matt Mackall <mpm@selenic.com>
parents: 10270
diff changeset
200 if not prefix:
08a0f04b56bd many, many trivial check-code fixups
Matt Mackall <mpm@selenic.com>
parents: 10270
diff changeset
201 prefix = os.path.basename(repo.root) + '-%h'
10650
9ea7238ad935 archive: autodetect archive type by extension (issue2058)
David Wolever <david@wolever.net>
parents: 10649
diff changeset
202
2874
4ec58b157265 refactor text diff/patch code.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2871
diff changeset
203 prefix = cmdutil.make_filename(repo, prefix, node)
10650
9ea7238ad935 archive: autodetect archive type by extension (issue2058)
David Wolever <david@wolever.net>
parents: 10649
diff changeset
204 matchfn = cmdutil.match(repo, [], opts)
7131
23bd7383891c commands: optional options where possible
Alexander Solovyov <piranha@piranha.org.ua>
parents: 7126
diff changeset
205 archival.archive(repo, dest, node, kind, not opts.get('no_decode'),
12323
f00953d9533c subrepo: add support for 'hg archive'
Martin Geisler <mg@aragost.com>
parents: 12274
diff changeset
206 matchfn, prefix, subrepos=opts.get('subrepos'))
2112
2b03c6733efa add "archive" command, like "cvs export" only better.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2092
diff changeset
207
4450
8fa54b9c6c5a accept -r REV in more places
Daniel Holth <dholth@fastmail.fm>
parents: 4445
diff changeset
208 def backout(ui, repo, node=None, rev=None, **opts):
2158
ec96c4518236 add backout command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2153
diff changeset
209 '''reverse effect of earlier changeset
ec96c4518236 add backout command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2153
diff changeset
210
13340
02aa06a021a0 backout: make help more explicit about what backout does
Jonathan Nieder <jrnieder@gmail.com>
parents: 13328
diff changeset
211 Prepare a new changeset with the effect of REV undone in the
02aa06a021a0 backout: make help more explicit about what backout does
Jonathan Nieder <jrnieder@gmail.com>
parents: 13328
diff changeset
212 current working directory.
02aa06a021a0 backout: make help more explicit about what backout does
Jonathan Nieder <jrnieder@gmail.com>
parents: 13328
diff changeset
213
13473
bbdd858e3229 backout: clarify which changesets are new in help text
Jonathan Nieder <jrnieder@gmail.com>
parents: 13472
diff changeset
214 If REV is the parent of the working directory, then this new changeset
13340
02aa06a021a0 backout: make help more explicit about what backout does
Jonathan Nieder <jrnieder@gmail.com>
parents: 13328
diff changeset
215 is committed automatically. Otherwise, hg needs to merge the
02aa06a021a0 backout: make help more explicit about what backout does
Jonathan Nieder <jrnieder@gmail.com>
parents: 13328
diff changeset
216 changes and the merged result is left uncommitted.
02aa06a021a0 backout: make help more explicit about what backout does
Jonathan Nieder <jrnieder@gmail.com>
parents: 13328
diff changeset
217
02aa06a021a0 backout: make help more explicit about what backout does
Jonathan Nieder <jrnieder@gmail.com>
parents: 13328
diff changeset
218 By default, the pending changeset will have one parent,
02aa06a021a0 backout: make help more explicit about what backout does
Jonathan Nieder <jrnieder@gmail.com>
parents: 13328
diff changeset
219 maintaining a linear history. With --merge, the pending changeset
02aa06a021a0 backout: make help more explicit about what backout does
Jonathan Nieder <jrnieder@gmail.com>
parents: 13328
diff changeset
220 will instead have two parents: the old parent of the working
13473
bbdd858e3229 backout: clarify which changesets are new in help text
Jonathan Nieder <jrnieder@gmail.com>
parents: 13472
diff changeset
221 directory and a new child of REV that simply undoes REV.
bbdd858e3229 backout: clarify which changesets are new in help text
Jonathan Nieder <jrnieder@gmail.com>
parents: 13472
diff changeset
222
bbdd858e3229 backout: clarify which changesets are new in help text
Jonathan Nieder <jrnieder@gmail.com>
parents: 13472
diff changeset
223 Before version 1.7, the behavior without --merge was equivalent to
13340
02aa06a021a0 backout: make help more explicit about what backout does
Jonathan Nieder <jrnieder@gmail.com>
parents: 13328
diff changeset
224 specifying --merge followed by :hg:`update --clean .` to cancel
02aa06a021a0 backout: make help more explicit about what backout does
Jonathan Nieder <jrnieder@gmail.com>
parents: 13328
diff changeset
225 the merge and leave the child of REV as a head to be merged
02aa06a021a0 backout: make help more explicit about what backout does
Jonathan Nieder <jrnieder@gmail.com>
parents: 13328
diff changeset
226 separately.
6163
1f733c2f0165 Document log date ranges and mention 'hg help dates' for all commands (issue998)
Thomas Arendsen Hein <thomas@intevation.de>
parents: 6161
diff changeset
227
10973
49a07f441496 Use hg role in help strings
Martin Geisler <mg@aragost.com>
parents: 10963
diff changeset
228 See :hg:`help dates` for a list of formats valid for -d/--date.
11177
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
229
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
230 Returns 0 on success.
6163
1f733c2f0165 Document log date ranges and mention 'hg help dates' for all commands (issue998)
Thomas Arendsen Hein <thomas@intevation.de>
parents: 6161
diff changeset
231 '''
4450
8fa54b9c6c5a accept -r REV in more places
Daniel Holth <dholth@fastmail.fm>
parents: 4445
diff changeset
232 if rev and node:
8fa54b9c6c5a accept -r REV in more places
Daniel Holth <dholth@fastmail.fm>
parents: 4445
diff changeset
233 raise util.Abort(_("please specify just one revision"))
8fa54b9c6c5a accept -r REV in more places
Daniel Holth <dholth@fastmail.fm>
parents: 4445
diff changeset
234
8fa54b9c6c5a accept -r REV in more places
Daniel Holth <dholth@fastmail.fm>
parents: 4445
diff changeset
235 if not rev:
8fa54b9c6c5a accept -r REV in more places
Daniel Holth <dholth@fastmail.fm>
parents: 4445
diff changeset
236 rev = node
2158
ec96c4518236 add backout command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2153
diff changeset
237
4726
f6e961c0155b Fix and test 'hg backout' without or with too many revisions.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 4718
diff changeset
238 if not rev:
f6e961c0155b Fix and test 'hg backout' without or with too many revisions.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 4718
diff changeset
239 raise util.Abort(_("please specify a revision to backout"))
f6e961c0155b Fix and test 'hg backout' without or with too many revisions.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 4718
diff changeset
240
6139
989467e8e3a9 Fix bad behaviour when specifying an invalid date (issue700)
Thomas Arendsen Hein <thomas@intevation.de>
parents: 6134
diff changeset
241 date = opts.get('date')
989467e8e3a9 Fix bad behaviour when specifying an invalid date (issue700)
Thomas Arendsen Hein <thomas@intevation.de>
parents: 6134
diff changeset
242 if date:
989467e8e3a9 Fix bad behaviour when specifying an invalid date (issue700)
Thomas Arendsen Hein <thomas@intevation.de>
parents: 6134
diff changeset
243 opts['date'] = util.parsedate(date)
989467e8e3a9 Fix bad behaviour when specifying an invalid date (issue700)
Thomas Arendsen Hein <thomas@intevation.de>
parents: 6134
diff changeset
244
4549
0c61124ad877 dispatch: move dispatching code to cmdutil
Matt Mackall <mpm@selenic.com>
parents: 4548
diff changeset
245 cmdutil.bail_if_changed(repo)
12925
6eab8f0df2ca commands: add revset support to most commands
Matt Mackall <mpm@selenic.com>
parents: 12918
diff changeset
246 node = cmdutil.revsingle(repo, rev).node()
5716
be367cbafe70 cmdutil: make bail_if_changed bail on uncommitted merge
Matt Mackall <mpm@selenic.com>
parents: 5688
diff changeset
247
2158
ec96c4518236 add backout command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2153
diff changeset
248 op1, op2 = repo.dirstate.parents()
5568
de620356064f backout: disallow across branches (issue655)
Matt Mackall <mpm@selenic.com>
parents: 5542
diff changeset
249 a = repo.changelog.ancestor(op1, node)
de620356064f backout: disallow across branches (issue655)
Matt Mackall <mpm@selenic.com>
parents: 5542
diff changeset
250 if a != node:
8779
708938509732 Improve English for help text of many core hg commands.
timeless <timeless@gmail.com>
parents: 8778
diff changeset
251 raise util.Abort(_('cannot backout change on a different branch'))
5568
de620356064f backout: disallow across branches (issue655)
Matt Mackall <mpm@selenic.com>
parents: 5542
diff changeset
252
2614
8ba1c31f6864 backout: allow backout of merge changeset with --parent option.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2613
diff changeset
253 p1, p2 = repo.changelog.parents(node)
8ba1c31f6864 backout: allow backout of merge changeset with --parent option.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2613
diff changeset
254 if p1 == nullid:
8779
708938509732 Improve English for help text of many core hg commands.
timeless <timeless@gmail.com>
parents: 8778
diff changeset
255 raise util.Abort(_('cannot backout a change with no parents'))
2158
ec96c4518236 add backout command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2153
diff changeset
256 if p2 != nullid:
7131
23bd7383891c commands: optional options where possible
Alexander Solovyov <piranha@piranha.org.ua>
parents: 7126
diff changeset
257 if not opts.get('parent'):
8779
708938509732 Improve English for help text of many core hg commands.
timeless <timeless@gmail.com>
parents: 8778
diff changeset
258 raise util.Abort(_('cannot backout a merge changeset without '
2614
8ba1c31f6864 backout: allow backout of merge changeset with --parent option.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2613
diff changeset
259 '--parent'))
8ba1c31f6864 backout: allow backout of merge changeset with --parent option.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2613
diff changeset
260 p = repo.lookup(opts['parent'])
8ba1c31f6864 backout: allow backout of merge changeset with --parent option.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2613
diff changeset
261 if p not in (p1, p2):
3679
2956948b81f3 fix warnings generated by pygettext.py.
Marcos Chaves <marcos.nospam@gmail.com>
parents: 3673
diff changeset
262 raise util.Abort(_('%s is not a parent of %s') %
3680
69cf255a55a1 Indentation cleanups for 2956948b81f3.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 3679
diff changeset
263 (short(p), short(node)))
2614
8ba1c31f6864 backout: allow backout of merge changeset with --parent option.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2613
diff changeset
264 parent = p
8ba1c31f6864 backout: allow backout of merge changeset with --parent option.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2613
diff changeset
265 else:
7131
23bd7383891c commands: optional options where possible
Alexander Solovyov <piranha@piranha.org.ua>
parents: 7126
diff changeset
266 if opts.get('parent'):
2614
8ba1c31f6864 backout: allow backout of merge changeset with --parent option.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2613
diff changeset
267 raise util.Abort(_('cannot use --parent on non-merge changeset'))
8ba1c31f6864 backout: allow backout of merge changeset with --parent option.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2613
diff changeset
268 parent = p1
5568
de620356064f backout: disallow across branches (issue655)
Matt Mackall <mpm@selenic.com>
parents: 5542
diff changeset
269
6423
fb374b1b3911 backout: reverse changeset belongs on current branch
Matt Mackall <mpm@selenic.com>
parents: 6385
diff changeset
270 # the backout should appear on the same branch
fb374b1b3911 backout: reverse changeset belongs on current branch
Matt Mackall <mpm@selenic.com>
parents: 6385
diff changeset
271 branch = repo.dirstate.branch()
2808
30f59f4a327e Introduce update helper functions: update, merge, clean, and revert
Matt Mackall <mpm@selenic.com>
parents: 2806
diff changeset
272 hg.clean(repo, node, show_stats=False)
6423
fb374b1b3911 backout: reverse changeset belongs on current branch
Matt Mackall <mpm@selenic.com>
parents: 6385
diff changeset
273 repo.dirstate.setbranch(branch)
2158
ec96c4518236 add backout command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2153
diff changeset
274 revert_opts = opts.copy()
3814
120be84f33de Add --date support to update and revert
Matt Mackall <mpm@selenic.com>
parents: 3813
diff changeset
275 revert_opts['date'] = None
2982
890e285c52a1 revert: require --all to revert all files.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2963
diff changeset
276 revert_opts['all'] = True
2158
ec96c4518236 add backout command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2153
diff changeset
277 revert_opts['rev'] = hex(parent)
6031
7383384793fb revert: don't assume ignored files will be returned in the unknown list
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 6030
diff changeset
278 revert_opts['no_backup'] = None
2158
ec96c4518236 add backout command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2153
diff changeset
279 revert(ui, repo, **revert_opts)
12727
52971985be14 backout: provide linear backout as a default (without --merge option)
Gilles Moris <gilles.moris@free.fr>
parents: 12726
diff changeset
280 if not opts.get('merge') and op1 != node:
12810
a68ccfd9c7be backout: add --tool argument for specifying merge tool
Steve Borho <steve@borho.org>
parents: 12809
diff changeset
281 try:
a68ccfd9c7be backout: add --tool argument for specifying merge tool
Steve Borho <steve@borho.org>
parents: 12809
diff changeset
282 ui.setconfig('ui', 'forcemerge', opts.get('tool', ''))
a68ccfd9c7be backout: add --tool argument for specifying merge tool
Steve Borho <steve@borho.org>
parents: 12809
diff changeset
283 return hg.update(repo, op1)
a68ccfd9c7be backout: add --tool argument for specifying merge tool
Steve Borho <steve@borho.org>
parents: 12809
diff changeset
284 finally:
a68ccfd9c7be backout: add --tool argument for specifying merge tool
Steve Borho <steve@borho.org>
parents: 12809
diff changeset
285 ui.setconfig('ui', 'forcemerge', '')
12727
52971985be14 backout: provide linear backout as a default (without --merge option)
Gilles Moris <gilles.moris@free.fr>
parents: 12726
diff changeset
286
2158
ec96c4518236 add backout command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2153
diff changeset
287 commit_opts = opts.copy()
ec96c4518236 add backout command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2153
diff changeset
288 commit_opts['addremove'] = False
2159
5c34b98ad6b1 Small cleanups to backout command:
Thomas Arendsen Hein <thomas@intevation.de>
parents: 2158
diff changeset
289 if not commit_opts['message'] and not commit_opts['logfile']:
9183
d0225fa2f6c4 do not translate commit messages
Martin Geisler <mg@lazybytes.net>
parents: 9128
diff changeset
290 # we don't translate commit messages
9197
a05aa192a00a commands: remove ineffective parenthesis
Martin Geisler <mg@lazybytes.net>
parents: 9196
diff changeset
291 commit_opts['message'] = "Backed out changeset %s" % short(node)
2268
6c9305fbebaf fix coding style of backout editor change.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2267
diff changeset
292 commit_opts['force_editor'] = True
2158
ec96c4518236 add backout command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2153
diff changeset
293 commit(ui, repo, **commit_opts)
ec96c4518236 add backout command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2153
diff changeset
294 def nice(node):
ec96c4518236 add backout command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2153
diff changeset
295 return '%d:%s' % (repo.changelog.rev(node), short(node))
ec96c4518236 add backout command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2153
diff changeset
296 ui.status(_('changeset %s backs out changeset %s\n') %
ec96c4518236 add backout command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2153
diff changeset
297 (nice(repo.changelog.tip()), nice(node)))
12727
52971985be14 backout: provide linear backout as a default (without --merge option)
Gilles Moris <gilles.moris@free.fr>
parents: 12726
diff changeset
298 if opts.get('merge') and op1 != node:
6161
bc1ba9124799 Reverse the way backout is doing the merge
Gilles Moris <gilles.moris@free.fr>
parents: 6146
diff changeset
299 hg.clean(repo, op1, show_stats=False)
12727
52971985be14 backout: provide linear backout as a default (without --merge option)
Gilles Moris <gilles.moris@free.fr>
parents: 12726
diff changeset
300 ui.status(_('merging with changeset %s\n')
52971985be14 backout: provide linear backout as a default (without --merge option)
Gilles Moris <gilles.moris@free.fr>
parents: 12726
diff changeset
301 % nice(repo.changelog.tip()))
12810
a68ccfd9c7be backout: add --tool argument for specifying merge tool
Steve Borho <steve@borho.org>
parents: 12809
diff changeset
302 try:
a68ccfd9c7be backout: add --tool argument for specifying merge tool
Steve Borho <steve@borho.org>
parents: 12809
diff changeset
303 ui.setconfig('ui', 'forcemerge', opts.get('tool', ''))
a68ccfd9c7be backout: add --tool argument for specifying merge tool
Steve Borho <steve@borho.org>
parents: 12809
diff changeset
304 return hg.merge(repo, hex(repo.changelog.tip()))
a68ccfd9c7be backout: add --tool argument for specifying merge tool
Steve Borho <steve@borho.org>
parents: 12809
diff changeset
305 finally:
a68ccfd9c7be backout: add --tool argument for specifying merge tool
Steve Borho <steve@borho.org>
parents: 12809
diff changeset
306 ui.setconfig('ui', 'forcemerge', '')
12727
52971985be14 backout: provide linear backout as a default (without --merge option)
Gilles Moris <gilles.moris@free.fr>
parents: 12726
diff changeset
307 return 0
2158
ec96c4518236 add backout command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2153
diff changeset
308
7227
e1afb50ec2aa bisect: ability to check revision with command
Alexander Solovyov <piranha@piranha.org.ua>
parents: 7213
diff changeset
309 def bisect(ui, repo, rev=None, extra=None, command=None,
13601
0388e3e36693 bisect: new command to extend the bisect range (issue2690)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 13591
diff changeset
310 reset=None, good=None, bad=None, skip=None, extend=None,
0388e3e36693 bisect: new command to extend the bisect range (issue2690)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 13591
diff changeset
311 noupdate=None):
5775
2dd202a6e15b bisect: make bisect a built-in command
Matt Mackall <mpm@selenic.com>
parents: 5764
diff changeset
312 """subdivision search of changesets
2dd202a6e15b bisect: make bisect a built-in command
Matt Mackall <mpm@selenic.com>
parents: 5764
diff changeset
313
8004
d5b1b846f277 commands: word-wrap help texts at 70 characters
Martin Geisler <mg@daimi.au.dk>
parents: 7983
diff changeset
314 This command helps to find changesets which introduce problems. To
d5b1b846f277 commands: word-wrap help texts at 70 characters
Martin Geisler <mg@daimi.au.dk>
parents: 7983
diff changeset
315 use, mark the earliest changeset you know exhibits the problem as
d5b1b846f277 commands: word-wrap help texts at 70 characters
Martin Geisler <mg@daimi.au.dk>
parents: 7983
diff changeset
316 bad, then mark the latest changeset which is free from the problem
d5b1b846f277 commands: word-wrap help texts at 70 characters
Martin Geisler <mg@daimi.au.dk>
parents: 7983
diff changeset
317 as good. Bisect will update your working directory to a revision
8033
aeb4a5c7a28e commands: consistently write switches as -a/--abc
Martin Geisler <mg@lazybytes.net>
parents: 8032
diff changeset
318 for testing (unless the -U/--noupdate option is specified). Once
8779
708938509732 Improve English for help text of many core hg commands.
timeless <timeless@gmail.com>
parents: 8778
diff changeset
319 you have performed tests, mark the working directory as good or
708938509732 Improve English for help text of many core hg commands.
timeless <timeless@gmail.com>
parents: 8778
diff changeset
320 bad, and bisect will either update to another candidate changeset
6928
1a4c66d741a2 bisect: expand help text to explain REV argument and --noupdate
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 6858
diff changeset
321 or announce that it has found the bad revision.
7184
380fda3eed13 clean up trailing spaces
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 7037
diff changeset
322
6928
1a4c66d741a2 bisect: expand help text to explain REV argument and --noupdate
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 6858
diff changeset
323 As a shortcut, you can also use the revision argument to mark a
1a4c66d741a2 bisect: expand help text to explain REV argument and --noupdate
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 6858
diff changeset
324 revision as good or bad without checking it out first.
7227
e1afb50ec2aa bisect: ability to check revision with command
Alexander Solovyov <piranha@piranha.org.ua>
parents: 7213
diff changeset
325
8779
708938509732 Improve English for help text of many core hg commands.
timeless <timeless@gmail.com>
parents: 8778
diff changeset
326 If you supply a command, it will be used for automatic bisection.
708938509732 Improve English for help text of many core hg commands.
timeless <timeless@gmail.com>
parents: 8778
diff changeset
327 Its exit status will be used to mark revisions as good or bad:
708938509732 Improve English for help text of many core hg commands.
timeless <timeless@gmail.com>
parents: 8778
diff changeset
328 status 0 means good, 125 means to skip the revision, 127
708938509732 Improve English for help text of many core hg commands.
timeless <timeless@gmail.com>
parents: 8778
diff changeset
329 (command not found) will abort the bisection, and any other
708938509732 Improve English for help text of many core hg commands.
timeless <timeless@gmail.com>
parents: 8778
diff changeset
330 non-zero exit status means the revision is bad.
11177
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
331
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
332 Returns 0 on success.
5775
2dd202a6e15b bisect: make bisect a built-in command
Matt Mackall <mpm@selenic.com>
parents: 5764
diff changeset
333 """
13601
0388e3e36693 bisect: new command to extend the bisect range (issue2690)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 13591
diff changeset
334 def extendbisectrange(nodes, good):
0388e3e36693 bisect: new command to extend the bisect range (issue2690)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 13591
diff changeset
335 # bisect is incomplete when it ends on a merge node and
0388e3e36693 bisect: new command to extend the bisect range (issue2690)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 13591
diff changeset
336 # one of the parent was not checked.
0388e3e36693 bisect: new command to extend the bisect range (issue2690)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 13591
diff changeset
337 parents = repo[nodes[0]].parents()
0388e3e36693 bisect: new command to extend the bisect range (issue2690)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 13591
diff changeset
338 if len(parents) > 1:
0388e3e36693 bisect: new command to extend the bisect range (issue2690)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 13591
diff changeset
339 side = good and state['bad'] or state['good']
0388e3e36693 bisect: new command to extend the bisect range (issue2690)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 13591
diff changeset
340 num = len(set(i.node() for i in parents) & set(side))
0388e3e36693 bisect: new command to extend the bisect range (issue2690)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 13591
diff changeset
341 if num == 1:
0388e3e36693 bisect: new command to extend the bisect range (issue2690)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 13591
diff changeset
342 return parents[0].ancestor(parents[1])
0388e3e36693 bisect: new command to extend the bisect range (issue2690)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 13591
diff changeset
343 return None
0388e3e36693 bisect: new command to extend the bisect range (issue2690)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 13591
diff changeset
344
7227
e1afb50ec2aa bisect: ability to check revision with command
Alexander Solovyov <piranha@piranha.org.ua>
parents: 7213
diff changeset
345 def print_result(nodes, good):
5775
2dd202a6e15b bisect: make bisect a built-in command
Matt Mackall <mpm@selenic.com>
parents: 5764
diff changeset
346 displayer = cmdutil.show_changeset(ui, repo, {})
6858
8f256bf98219 Add support for multiple possible bisect results (issue1228, issue1182)
Bernhard Leiner <bleiner@gmail.com>
parents: 6842
diff changeset
347 if len(nodes) == 1:
8f256bf98219 Add support for multiple possible bisect results (issue1228, issue1182)
Bernhard Leiner <bleiner@gmail.com>
parents: 6842
diff changeset
348 # narrowed it down to a single revision
8088
bdeb380a10de commands, i18n: avoid untranslated strings as message parameters
Wagner Bruna <wbruna@yahoo.com>
parents: 8042
diff changeset
349 if good:
bdeb380a10de commands, i18n: avoid untranslated strings as message parameters
Wagner Bruna <wbruna@yahoo.com>
parents: 8042
diff changeset
350 ui.write(_("The first good revision is:\n"))
bdeb380a10de commands, i18n: avoid untranslated strings as message parameters
Wagner Bruna <wbruna@yahoo.com>
parents: 8042
diff changeset
351 else:
bdeb380a10de commands, i18n: avoid untranslated strings as message parameters
Wagner Bruna <wbruna@yahoo.com>
parents: 8042
diff changeset
352 ui.write(_("The first bad revision is:\n"))
7369
87158be081b8 cmdutil: use change contexts for cset-printer and cset-templater
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 7364
diff changeset
353 displayer.show(repo[nodes[0]])
12178
1ef9b0b5efec bisect: warn about ending on a merge with only one side marked
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 12177
diff changeset
354 parents = repo[nodes[0]].parents()
13601
0388e3e36693 bisect: new command to extend the bisect range (issue2690)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 13591
diff changeset
355 extendnode = extendbisectrange(nodes, good)
0388e3e36693 bisect: new command to extend the bisect range (issue2690)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 13591
diff changeset
356 if extendnode is not None:
0388e3e36693 bisect: new command to extend the bisect range (issue2690)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 13591
diff changeset
357 ui.write(_('Not all ancestors of this changeset have been'
0388e3e36693 bisect: new command to extend the bisect range (issue2690)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 13591
diff changeset
358 ' checked.\nUse bisect --extend to continue the '
0388e3e36693 bisect: new command to extend the bisect range (issue2690)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 13591
diff changeset
359 'bisection from\nthe common ancestor, %s.\n')
0388e3e36693 bisect: new command to extend the bisect range (issue2690)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 13591
diff changeset
360 % short(extendnode.node()))
6858
8f256bf98219 Add support for multiple possible bisect results (issue1228, issue1182)
Bernhard Leiner <bleiner@gmail.com>
parents: 6842
diff changeset
361 else:
8f256bf98219 Add support for multiple possible bisect results (issue1228, issue1182)
Bernhard Leiner <bleiner@gmail.com>
parents: 6842
diff changeset
362 # multiple possible revisions
8088
bdeb380a10de commands, i18n: avoid untranslated strings as message parameters
Wagner Bruna <wbruna@yahoo.com>
parents: 8042
diff changeset
363 if good:
bdeb380a10de commands, i18n: avoid untranslated strings as message parameters
Wagner Bruna <wbruna@yahoo.com>
parents: 8042
diff changeset
364 ui.write(_("Due to skipped revisions, the first "
bdeb380a10de commands, i18n: avoid untranslated strings as message parameters
Wagner Bruna <wbruna@yahoo.com>
parents: 8042
diff changeset
365 "good revision could be any of:\n"))
bdeb380a10de commands, i18n: avoid untranslated strings as message parameters
Wagner Bruna <wbruna@yahoo.com>
parents: 8042
diff changeset
366 else:
bdeb380a10de commands, i18n: avoid untranslated strings as message parameters
Wagner Bruna <wbruna@yahoo.com>
parents: 8042
diff changeset
367 ui.write(_("Due to skipped revisions, the first "
bdeb380a10de commands, i18n: avoid untranslated strings as message parameters
Wagner Bruna <wbruna@yahoo.com>
parents: 8042
diff changeset
368 "bad revision could be any of:\n"))
6858
8f256bf98219 Add support for multiple possible bisect results (issue1228, issue1182)
Bernhard Leiner <bleiner@gmail.com>
parents: 6842
diff changeset
369 for n in nodes:
7369
87158be081b8 cmdutil: use change contexts for cset-printer and cset-templater
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 7364
diff changeset
370 displayer.show(repo[n])
10152
56284451a22c Added support for templatevar "footer" to cmdutil.py
Robert Bachmann <rbachm@gmail.com>
parents: 10111
diff changeset
371 displayer.close()
7227
e1afb50ec2aa bisect: ability to check revision with command
Alexander Solovyov <piranha@piranha.org.ua>
parents: 7213
diff changeset
372
e1afb50ec2aa bisect: ability to check revision with command
Alexander Solovyov <piranha@piranha.org.ua>
parents: 7213
diff changeset
373 def check_state(state, interactive=True):
e1afb50ec2aa bisect: ability to check revision with command
Alexander Solovyov <piranha@piranha.org.ua>
parents: 7213
diff changeset
374 if not state['good'] or not state['bad']:
e1afb50ec2aa bisect: ability to check revision with command
Alexander Solovyov <piranha@piranha.org.ua>
parents: 7213
diff changeset
375 if (good or bad or skip or reset) and interactive:
e1afb50ec2aa bisect: ability to check revision with command
Alexander Solovyov <piranha@piranha.org.ua>
parents: 7213
diff changeset
376 return
e1afb50ec2aa bisect: ability to check revision with command
Alexander Solovyov <piranha@piranha.org.ua>
parents: 7213
diff changeset
377 if not state['good']:
e1afb50ec2aa bisect: ability to check revision with command
Alexander Solovyov <piranha@piranha.org.ua>
parents: 7213
diff changeset
378 raise util.Abort(_('cannot bisect (no known good revisions)'))
e1afb50ec2aa bisect: ability to check revision with command
Alexander Solovyov <piranha@piranha.org.ua>
parents: 7213
diff changeset
379 else:
e1afb50ec2aa bisect: ability to check revision with command
Alexander Solovyov <piranha@piranha.org.ua>
parents: 7213
diff changeset
380 raise util.Abort(_('cannot bisect (no known bad revisions)'))
e1afb50ec2aa bisect: ability to check revision with command
Alexander Solovyov <piranha@piranha.org.ua>
parents: 7213
diff changeset
381 return True
e1afb50ec2aa bisect: ability to check revision with command
Alexander Solovyov <piranha@piranha.org.ua>
parents: 7213
diff changeset
382
e1afb50ec2aa bisect: ability to check revision with command
Alexander Solovyov <piranha@piranha.org.ua>
parents: 7213
diff changeset
383 # backward compatibility
e1afb50ec2aa bisect: ability to check revision with command
Alexander Solovyov <piranha@piranha.org.ua>
parents: 7213
diff changeset
384 if rev in "good bad reset init".split():
e1afb50ec2aa bisect: ability to check revision with command
Alexander Solovyov <piranha@piranha.org.ua>
parents: 7213
diff changeset
385 ui.warn(_("(use of 'hg bisect <cmd>' is deprecated)\n"))
e1afb50ec2aa bisect: ability to check revision with command
Alexander Solovyov <piranha@piranha.org.ua>
parents: 7213
diff changeset
386 cmd, rev, extra = rev, extra, None
e1afb50ec2aa bisect: ability to check revision with command
Alexander Solovyov <piranha@piranha.org.ua>
parents: 7213
diff changeset
387 if cmd == "good":
e1afb50ec2aa bisect: ability to check revision with command
Alexander Solovyov <piranha@piranha.org.ua>
parents: 7213
diff changeset
388 good = True
e1afb50ec2aa bisect: ability to check revision with command
Alexander Solovyov <piranha@piranha.org.ua>
parents: 7213
diff changeset
389 elif cmd == "bad":
e1afb50ec2aa bisect: ability to check revision with command
Alexander Solovyov <piranha@piranha.org.ua>
parents: 7213
diff changeset
390 bad = True
e1afb50ec2aa bisect: ability to check revision with command
Alexander Solovyov <piranha@piranha.org.ua>
parents: 7213
diff changeset
391 else:
e1afb50ec2aa bisect: ability to check revision with command
Alexander Solovyov <piranha@piranha.org.ua>
parents: 7213
diff changeset
392 reset = True
13601
0388e3e36693 bisect: new command to extend the bisect range (issue2690)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 13591
diff changeset
393 elif extra or good + bad + skip + reset + extend + bool(command) > 1:
7227
e1afb50ec2aa bisect: ability to check revision with command
Alexander Solovyov <piranha@piranha.org.ua>
parents: 7213
diff changeset
394 raise util.Abort(_('incompatible arguments'))
e1afb50ec2aa bisect: ability to check revision with command
Alexander Solovyov <piranha@piranha.org.ua>
parents: 7213
diff changeset
395
e1afb50ec2aa bisect: ability to check revision with command
Alexander Solovyov <piranha@piranha.org.ua>
parents: 7213
diff changeset
396 if reset:
e1afb50ec2aa bisect: ability to check revision with command
Alexander Solovyov <piranha@piranha.org.ua>
parents: 7213
diff changeset
397 p = repo.join("bisect.state")
e1afb50ec2aa bisect: ability to check revision with command
Alexander Solovyov <piranha@piranha.org.ua>
parents: 7213
diff changeset
398 if os.path.exists(p):
e1afb50ec2aa bisect: ability to check revision with command
Alexander Solovyov <piranha@piranha.org.ua>
parents: 7213
diff changeset
399 os.unlink(p)
e1afb50ec2aa bisect: ability to check revision with command
Alexander Solovyov <piranha@piranha.org.ua>
parents: 7213
diff changeset
400 return
e1afb50ec2aa bisect: ability to check revision with command
Alexander Solovyov <piranha@piranha.org.ua>
parents: 7213
diff changeset
401
e1afb50ec2aa bisect: ability to check revision with command
Alexander Solovyov <piranha@piranha.org.ua>
parents: 7213
diff changeset
402 state = hbisect.load_state(repo)
e1afb50ec2aa bisect: ability to check revision with command
Alexander Solovyov <piranha@piranha.org.ua>
parents: 7213
diff changeset
403
e1afb50ec2aa bisect: ability to check revision with command
Alexander Solovyov <piranha@piranha.org.ua>
parents: 7213
diff changeset
404 if command:
e1afb50ec2aa bisect: ability to check revision with command
Alexander Solovyov <piranha@piranha.org.ua>
parents: 7213
diff changeset
405 changesets = 1
7590
e5703ec08e64 bisect: improve hg bisect -c (relative paths, error handling)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 7570
diff changeset
406 try:
e5703ec08e64 bisect: improve hg bisect -c (relative paths, error handling)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 7570
diff changeset
407 while changesets:
e5703ec08e64 bisect: improve hg bisect -c (relative paths, error handling)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 7570
diff changeset
408 # update state
9584
17da88da1abd bisect: use util.system and fix good/bad when using -c
Matt Mackall <mpm@selenic.com>
parents: 9569
diff changeset
409 status = util.system(command)
7590
e5703ec08e64 bisect: improve hg bisect -c (relative paths, error handling)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 7570
diff changeset
410 if status == 125:
e5703ec08e64 bisect: improve hg bisect -c (relative paths, error handling)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 7570
diff changeset
411 transition = "skip"
e5703ec08e64 bisect: improve hg bisect -c (relative paths, error handling)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 7570
diff changeset
412 elif status == 0:
e5703ec08e64 bisect: improve hg bisect -c (relative paths, error handling)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 7570
diff changeset
413 transition = "good"
e5703ec08e64 bisect: improve hg bisect -c (relative paths, error handling)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 7570
diff changeset
414 # status < 0 means process was killed
e5703ec08e64 bisect: improve hg bisect -c (relative paths, error handling)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 7570
diff changeset
415 elif status == 127:
e5703ec08e64 bisect: improve hg bisect -c (relative paths, error handling)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 7570
diff changeset
416 raise util.Abort(_("failed to execute %s") % command)
e5703ec08e64 bisect: improve hg bisect -c (relative paths, error handling)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 7570
diff changeset
417 elif status < 0:
e5703ec08e64 bisect: improve hg bisect -c (relative paths, error handling)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 7570
diff changeset
418 raise util.Abort(_("%s killed") % command)
e5703ec08e64 bisect: improve hg bisect -c (relative paths, error handling)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 7570
diff changeset
419 else:
e5703ec08e64 bisect: improve hg bisect -c (relative paths, error handling)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 7570
diff changeset
420 transition = "bad"
12925
6eab8f0df2ca commands: add revset support to most commands
Matt Mackall <mpm@selenic.com>
parents: 12918
diff changeset
421 ctx = cmdutil.revsingle(repo, rev)
6eab8f0df2ca commands: add revset support to most commands
Matt Mackall <mpm@selenic.com>
parents: 12918
diff changeset
422 rev = None # clear for future iterations
8805
2726a6df11e9 bisect: improve --command output
Patrick Mezard <pmezard@gmail.com>
parents: 8802
diff changeset
423 state[transition].append(ctx.node())
2726a6df11e9 bisect: improve --command output
Patrick Mezard <pmezard@gmail.com>
parents: 8802
diff changeset
424 ui.status(_('Changeset %d:%s: %s\n') % (ctx, ctx, transition))
7590
e5703ec08e64 bisect: improve hg bisect -c (relative paths, error handling)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 7570
diff changeset
425 check_state(state, interactive=False)
e5703ec08e64 bisect: improve hg bisect -c (relative paths, error handling)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 7570
diff changeset
426 # bisect
e5703ec08e64 bisect: improve hg bisect -c (relative paths, error handling)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 7570
diff changeset
427 nodes, changesets, good = hbisect.bisect(repo.changelog, state)
e5703ec08e64 bisect: improve hg bisect -c (relative paths, error handling)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 7570
diff changeset
428 # update to next check
e5703ec08e64 bisect: improve hg bisect -c (relative paths, error handling)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 7570
diff changeset
429 cmdutil.bail_if_changed(repo)
e5703ec08e64 bisect: improve hg bisect -c (relative paths, error handling)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 7570
diff changeset
430 hg.clean(repo, nodes[0], show_stats=False)
e5703ec08e64 bisect: improve hg bisect -c (relative paths, error handling)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 7570
diff changeset
431 finally:
e5703ec08e64 bisect: improve hg bisect -c (relative paths, error handling)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 7570
diff changeset
432 hbisect.save_state(repo, state)
11177
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
433 print_result(nodes, good)
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
434 return
7227
e1afb50ec2aa bisect: ability to check revision with command
Alexander Solovyov <piranha@piranha.org.ua>
parents: 7213
diff changeset
435
e1afb50ec2aa bisect: ability to check revision with command
Alexander Solovyov <piranha@piranha.org.ua>
parents: 7213
diff changeset
436 # update state
12177
80399b5b5f13 bisect: allow revsets in addition to single revs (issue2360)
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 12173
diff changeset
437
80399b5b5f13 bisect: allow revsets in addition to single revs (issue2360)
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 12173
diff changeset
438 if rev:
80399b5b5f13 bisect: allow revsets in addition to single revs (issue2360)
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 12173
diff changeset
439 nodes = [repo.lookup(i) for i in cmdutil.revrange(repo, [rev])]
80399b5b5f13 bisect: allow revsets in addition to single revs (issue2360)
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 12173
diff changeset
440 else:
80399b5b5f13 bisect: allow revsets in addition to single revs (issue2360)
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 12173
diff changeset
441 nodes = [repo.lookup('.')]
80399b5b5f13 bisect: allow revsets in addition to single revs (issue2360)
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 12173
diff changeset
442
9689
57cee011ffcb bisect: no need to save the state if it wasn't changed
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 9687
diff changeset
443 if good or bad or skip:
57cee011ffcb bisect: no need to save the state if it wasn't changed
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 9687
diff changeset
444 if good:
12177
80399b5b5f13 bisect: allow revsets in addition to single revs (issue2360)
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 12173
diff changeset
445 state['good'] += nodes
9689
57cee011ffcb bisect: no need to save the state if it wasn't changed
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 9687
diff changeset
446 elif bad:
12177
80399b5b5f13 bisect: allow revsets in addition to single revs (issue2360)
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 12173
diff changeset
447 state['bad'] += nodes
9689
57cee011ffcb bisect: no need to save the state if it wasn't changed
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 9687
diff changeset
448 elif skip:
12177
80399b5b5f13 bisect: allow revsets in addition to single revs (issue2360)
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 12173
diff changeset
449 state['skip'] += nodes
9689
57cee011ffcb bisect: no need to save the state if it wasn't changed
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 9687
diff changeset
450 hbisect.save_state(repo, state)
7227
e1afb50ec2aa bisect: ability to check revision with command
Alexander Solovyov <piranha@piranha.org.ua>
parents: 7213
diff changeset
451
e1afb50ec2aa bisect: ability to check revision with command
Alexander Solovyov <piranha@piranha.org.ua>
parents: 7213
diff changeset
452 if not check_state(state):
e1afb50ec2aa bisect: ability to check revision with command
Alexander Solovyov <piranha@piranha.org.ua>
parents: 7213
diff changeset
453 return
e1afb50ec2aa bisect: ability to check revision with command
Alexander Solovyov <piranha@piranha.org.ua>
parents: 7213
diff changeset
454
e1afb50ec2aa bisect: ability to check revision with command
Alexander Solovyov <piranha@piranha.org.ua>
parents: 7213
diff changeset
455 # actually bisect
e1afb50ec2aa bisect: ability to check revision with command
Alexander Solovyov <piranha@piranha.org.ua>
parents: 7213
diff changeset
456 nodes, changesets, good = hbisect.bisect(repo.changelog, state)
13601
0388e3e36693 bisect: new command to extend the bisect range (issue2690)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 13591
diff changeset
457 if extend:
0388e3e36693 bisect: new command to extend the bisect range (issue2690)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 13591
diff changeset
458 if not changesets:
0388e3e36693 bisect: new command to extend the bisect range (issue2690)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 13591
diff changeset
459 extendnode = extendbisectrange(nodes, good)
0388e3e36693 bisect: new command to extend the bisect range (issue2690)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 13591
diff changeset
460 if extendnode is not None:
0388e3e36693 bisect: new command to extend the bisect range (issue2690)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 13591
diff changeset
461 ui.write(_("Extending search to changeset %d:%s\n"
0388e3e36693 bisect: new command to extend the bisect range (issue2690)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 13591
diff changeset
462 % (extendnode.rev(), short(extendnode.node()))))
0388e3e36693 bisect: new command to extend the bisect range (issue2690)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 13591
diff changeset
463 if noupdate:
0388e3e36693 bisect: new command to extend the bisect range (issue2690)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 13591
diff changeset
464 return
0388e3e36693 bisect: new command to extend the bisect range (issue2690)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 13591
diff changeset
465 cmdutil.bail_if_changed(repo)
0388e3e36693 bisect: new command to extend the bisect range (issue2690)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 13591
diff changeset
466 return hg.clean(repo, extendnode.node())
0388e3e36693 bisect: new command to extend the bisect range (issue2690)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 13591
diff changeset
467 raise util.Abort(_("nothing to extend"))
0388e3e36693 bisect: new command to extend the bisect range (issue2690)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 13591
diff changeset
468
7227
e1afb50ec2aa bisect: ability to check revision with command
Alexander Solovyov <piranha@piranha.org.ua>
parents: 7213
diff changeset
469 if changesets == 0:
e1afb50ec2aa bisect: ability to check revision with command
Alexander Solovyov <piranha@piranha.org.ua>
parents: 7213
diff changeset
470 print_result(nodes, good)
6858
8f256bf98219 Add support for multiple possible bisect results (issue1228, issue1182)
Bernhard Leiner <bleiner@gmail.com>
parents: 6842
diff changeset
471 else:
8f256bf98219 Add support for multiple possible bisect results (issue1228, issue1182)
Bernhard Leiner <bleiner@gmail.com>
parents: 6842
diff changeset
472 assert len(nodes) == 1 # only a single node can be tested next
8f256bf98219 Add support for multiple possible bisect results (issue1228, issue1182)
Bernhard Leiner <bleiner@gmail.com>
parents: 6842
diff changeset
473 node = nodes[0]
5775
2dd202a6e15b bisect: make bisect a built-in command
Matt Mackall <mpm@selenic.com>
parents: 5764
diff changeset
474 # compute the approximate number of remaining tests
2dd202a6e15b bisect: make bisect a built-in command
Matt Mackall <mpm@selenic.com>
parents: 5764
diff changeset
475 tests, size = 0, 2
2dd202a6e15b bisect: make bisect a built-in command
Matt Mackall <mpm@selenic.com>
parents: 5764
diff changeset
476 while size <= changesets:
2dd202a6e15b bisect: make bisect a built-in command
Matt Mackall <mpm@selenic.com>
parents: 5764
diff changeset
477 tests, size = tests + 1, size * 2
2dd202a6e15b bisect: make bisect a built-in command
Matt Mackall <mpm@selenic.com>
parents: 5764
diff changeset
478 rev = repo.changelog.rev(node)
9012
ada93c6bf554 bisect: fix format specifiers for integers
Cédric Duval <cedricduval@free.fr>
parents: 8995
diff changeset
479 ui.write(_("Testing changeset %d:%s "
ada93c6bf554 bisect: fix format specifiers for integers
Cédric Duval <cedricduval@free.fr>
parents: 8995
diff changeset
480 "(%d changesets remaining, ~%d tests)\n")
6217
fe8dbbe9520d Avoid importing mercurial.node/mercurial.repo stuff from mercurial.hg
Joel Rosdahl <joel@rosdahl.net>
parents: 6212
diff changeset
481 % (rev, short(node), changesets, tests))
5775
2dd202a6e15b bisect: make bisect a built-in command
Matt Mackall <mpm@selenic.com>
parents: 5764
diff changeset
482 if not noupdate:
2dd202a6e15b bisect: make bisect a built-in command
Matt Mackall <mpm@selenic.com>
parents: 5764
diff changeset
483 cmdutil.bail_if_changed(repo)
2dd202a6e15b bisect: make bisect a built-in command
Matt Mackall <mpm@selenic.com>
parents: 5764
diff changeset
484 return hg.clean(repo, node)
2dd202a6e15b bisect: make bisect a built-in command
Matt Mackall <mpm@selenic.com>
parents: 5764
diff changeset
485
13368
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
486 def bookmark(ui, repo, mark=None, rev=None, force=False, delete=False, rename=None):
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
487 '''track a line of development with movable markers
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
488
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
489 Bookmarks are pointers to certain commits that move when
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
490 committing. Bookmarks are local. They can be renamed, copied and
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
491 deleted. It is possible to use bookmark names in :hg:`merge` and
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
492 :hg:`update` to merge and update respectively to a given bookmark.
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
493
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
494 You can use :hg:`bookmark NAME` to set a bookmark on the working
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
495 directory's parent revision with the given name. If you specify
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
496 a revision using -r REV (where REV may be an existing bookmark),
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
497 the bookmark is assigned to that revision.
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
498
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
499 Bookmarks can be pushed and pulled between repositories (see :hg:`help
13407
354f304152ad bookmarks: update help text since moving into core
Kevin Bullock <kbullock@ringworld.org>
parents: 13406
diff changeset
500 push` and :hg:`help pull`). This requires both the local and remote
354f304152ad bookmarks: update help text since moving into core
Kevin Bullock <kbullock@ringworld.org>
parents: 13406
diff changeset
501 repositories to support bookmarks. For versions prior to 1.8, this means
354f304152ad bookmarks: update help text since moving into core
Kevin Bullock <kbullock@ringworld.org>
parents: 13406
diff changeset
502 the bookmarks extension must be enabled.
13368
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
503 '''
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
504 hexfn = ui.debugflag and hex or short
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
505 marks = repo._bookmarks
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
506 cur = repo.changectx('.').node()
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
507
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
508 if rename:
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
509 if rename not in marks:
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
510 raise util.Abort(_("a bookmark of this name does not exist"))
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
511 if mark in marks and not force:
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
512 raise util.Abort(_("a bookmark of the same name already exists"))
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
513 if mark is None:
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
514 raise util.Abort(_("new bookmark name required"))
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
515 marks[mark] = marks[rename]
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
516 if repo._bookmarkcurrent == rename:
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
517 bookmarks.setcurrent(repo, mark)
13620
8ee4b00ddfd8 bookmarks: fix update of the current bookmark during rename
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 13477
diff changeset
518 del marks[rename]
13368
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
519 bookmarks.write(repo)
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
520 return
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
521
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
522 if delete:
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
523 if mark is None:
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
524 raise util.Abort(_("bookmark name required"))
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
525 if mark not in marks:
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
526 raise util.Abort(_("a bookmark of this name does not exist"))
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
527 if mark == repo._bookmarkcurrent:
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
528 bookmarks.setcurrent(repo, None)
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
529 del marks[mark]
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
530 bookmarks.write(repo)
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
531 return
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
532
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
533 if mark is not None:
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
534 if "\n" in mark:
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
535 raise util.Abort(_("bookmark name cannot contain newlines"))
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
536 mark = mark.strip()
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
537 if not mark:
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
538 raise util.Abort(_("bookmark names cannot consist entirely of "
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
539 "whitespace"))
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
540 if mark in marks and not force:
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
541 raise util.Abort(_("a bookmark of the same name already exists"))
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
542 if ((mark in repo.branchtags() or mark == repo.dirstate.branch())
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
543 and not force):
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
544 raise util.Abort(
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
545 _("a bookmark cannot have the name of an existing branch"))
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
546 if rev:
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
547 marks[mark] = repo.lookup(rev)
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
548 else:
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
549 marks[mark] = repo.changectx('.').node()
13448
97b69883e929 bookmarks: mark new bookmark as current if it points to the current dirstate
David Soria Parra <dsp@php.net>
parents: 13416
diff changeset
550 if repo.changectx('.').node() == marks[mark]:
97b69883e929 bookmarks: mark new bookmark as current if it points to the current dirstate
David Soria Parra <dsp@php.net>
parents: 13416
diff changeset
551 bookmarks.setcurrent(repo, mark)
13368
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
552 bookmarks.write(repo)
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
553 return
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
554
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
555 if mark is None:
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
556 if rev:
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
557 raise util.Abort(_("bookmark name required"))
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
558 if len(marks) == 0:
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
559 ui.status(_("no bookmarks set\n"))
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
560 else:
13388
a184dbd9b2c5 localrepo: sort hg bookmark output
David Soria Parra <dsp@php.net>
parents: 13368
diff changeset
561 for bmark, n in sorted(marks.iteritems()):
13416
5431b3f3e52e bookmarks: make track.current=True default behaviour and remove option (BC)
David Soria Parra <dsp@php.net>
parents: 13415
diff changeset
562 current = repo._bookmarkcurrent
5431b3f3e52e bookmarks: make track.current=True default behaviour and remove option (BC)
David Soria Parra <dsp@php.net>
parents: 13415
diff changeset
563 if bmark == current and n == cur:
5431b3f3e52e bookmarks: make track.current=True default behaviour and remove option (BC)
David Soria Parra <dsp@php.net>
parents: 13415
diff changeset
564 prefix, label = '*', 'bookmarks.current'
13368
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
565 else:
13416
5431b3f3e52e bookmarks: make track.current=True default behaviour and remove option (BC)
David Soria Parra <dsp@php.net>
parents: 13415
diff changeset
566 prefix, label = ' ', ''
13368
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
567
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
568 if ui.quiet:
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
569 ui.write("%s\n" % bmark, label=label)
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
570 else:
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
571 ui.write(" %s %-25s %d:%s\n" % (
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
572 prefix, bmark, repo.changelog.rev(n), hexfn(n)),
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
573 label=label)
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
574 return
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
575
4202
b2873c587b1a branch: require --force to shadow existing branches
Brendan Cully <brendan@kublai.com>
parents: 4200
diff changeset
576 def branch(ui, repo, label=None, **opts):
3502
8dc14d630b29 add branch and branches commands
Matt Mackall <mpm@selenic.com>
parents: 3472
diff changeset
577 """set or show the current branch name
8dc14d630b29 add branch and branches commands
Matt Mackall <mpm@selenic.com>
parents: 3472
diff changeset
578
4601
e69da61e467e Notify the user that hg branch does not create a branch until commit
Brendan Cully <brendan@kublai.com>
parents: 4593
diff changeset
579 With no argument, show the current branch name. With one argument,
8779
708938509732 Improve English for help text of many core hg commands.
timeless <timeless@gmail.com>
parents: 8778
diff changeset
580 set the working directory branch name (the branch will not exist
708938509732 Improve English for help text of many core hg commands.
timeless <timeless@gmail.com>
parents: 8778
diff changeset
581 in the repository until the next commit). Standard practice
708938509732 Improve English for help text of many core hg commands.
timeless <timeless@gmail.com>
parents: 8778
diff changeset
582 recommends that primary development take place on the 'default'
708938509732 Improve English for help text of many core hg commands.
timeless <timeless@gmail.com>
parents: 8778
diff changeset
583 branch.
4202
b2873c587b1a branch: require --force to shadow existing branches
Brendan Cully <brendan@kublai.com>
parents: 4200
diff changeset
584
8033
aeb4a5c7a28e commands: consistently write switches as -a/--abc
Martin Geisler <mg@lazybytes.net>
parents: 8032
diff changeset
585 Unless -f/--force is specified, branch will not let you set a
8779
708938509732 Improve English for help text of many core hg commands.
timeless <timeless@gmail.com>
parents: 8778
diff changeset
586 branch name that already exists, even if it's inactive.
5999
d1fe1a4eb2b7 Mention 'hg update' to switch branches in help for branch and branches.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 5998
diff changeset
587
8033
aeb4a5c7a28e commands: consistently write switches as -a/--abc
Martin Geisler <mg@lazybytes.net>
parents: 8032
diff changeset
588 Use -C/--clean to reset the working directory branch to that of
aeb4a5c7a28e commands: consistently write switches as -a/--abc
Martin Geisler <mg@lazybytes.net>
parents: 8032
diff changeset
589 the parent of the working directory, negating a previous branch
8004
d5b1b846f277 commands: word-wrap help texts at 70 characters
Martin Geisler <mg@daimi.au.dk>
parents: 7983
diff changeset
590 change.
7006
92d44ec32430 branch: added more support for named branches
Sune Foldager <cryo@cyanite.org>
parents: 7003
diff changeset
591
10973
49a07f441496 Use hg role in help strings
Martin Geisler <mg@aragost.com>
parents: 10963
diff changeset
592 Use the command :hg:`update` to switch to an existing branch. Use
49a07f441496 Use hg role in help strings
Martin Geisler <mg@aragost.com>
parents: 10963
diff changeset
593 :hg:`commit --close-branch` to mark this branch as closed.
11177
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
594
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
595 Returns 0 on success.
3502
8dc14d630b29 add branch and branches commands
Matt Mackall <mpm@selenic.com>
parents: 3472
diff changeset
596 """
8dc14d630b29 add branch and branches commands
Matt Mackall <mpm@selenic.com>
parents: 3472
diff changeset
597
7006
92d44ec32430 branch: added more support for named branches
Sune Foldager <cryo@cyanite.org>
parents: 7003
diff changeset
598 if opts.get('clean'):
92d44ec32430 branch: added more support for named branches
Sune Foldager <cryo@cyanite.org>
parents: 7003
diff changeset
599 label = repo[None].parents()[0].branch()
92d44ec32430 branch: added more support for named branches
Sune Foldager <cryo@cyanite.org>
parents: 7003
diff changeset
600 repo.dirstate.setbranch(label)
92d44ec32430 branch: added more support for named branches
Sune Foldager <cryo@cyanite.org>
parents: 7003
diff changeset
601 ui.status(_('reset working directory to branch %s\n') % label)
92d44ec32430 branch: added more support for named branches
Sune Foldager <cryo@cyanite.org>
parents: 7003
diff changeset
602 elif label:
13047
6c375e07d673 branch: operate on branch names in local string space where possible
Matt Mackall <mpm@selenic.com>
parents: 13022
diff changeset
603 if not opts.get('force') and label in repo.branchtags():
6747
f6c00b17387c use repo[changeid] to get a changectx
Matt Mackall <mpm@selenic.com>
parents: 6746
diff changeset
604 if label not in [p.branch() for p in repo.parents()]:
4202
b2873c587b1a branch: require --force to shadow existing branches
Brendan Cully <brendan@kublai.com>
parents: 4200
diff changeset
605 raise util.Abort(_('a branch of the same name already exists'
10596
7648f32713f2 branch: help misuse of hg branch to switch branches
Yuya Nishihara <yuya@tcha.org>
parents: 10579
diff changeset
606 " (use 'hg update' to switch to it)"))
13047
6c375e07d673 branch: operate on branch names in local string space where possible
Matt Mackall <mpm@selenic.com>
parents: 13022
diff changeset
607 repo.dirstate.setbranch(label)
4601
e69da61e467e Notify the user that hg branch does not create a branch until commit
Brendan Cully <brendan@kublai.com>
parents: 4593
diff changeset
608 ui.status(_('marked working directory as branch %s\n') % label)
3502
8dc14d630b29 add branch and branches commands
Matt Mackall <mpm@selenic.com>
parents: 3472
diff changeset
609 else:
13047
6c375e07d673 branch: operate on branch names in local string space where possible
Matt Mackall <mpm@selenic.com>
parents: 13022
diff changeset
610 ui.write("%s\n" % repo.dirstate.branch())
3502
8dc14d630b29 add branch and branches commands
Matt Mackall <mpm@selenic.com>
parents: 3472
diff changeset
611
8991
7e0b31dfc66f branches: add --closed flag for consistency with heads
Matt Mackall <mpm@selenic.com>
parents: 8958
diff changeset
612 def branches(ui, repo, active=False, closed=False):
3502
8dc14d630b29 add branch and branches commands
Matt Mackall <mpm@selenic.com>
parents: 3472
diff changeset
613 """list repository named branches
8dc14d630b29 add branch and branches commands
Matt Mackall <mpm@selenic.com>
parents: 3472
diff changeset
614
4675
6858a7477a5e Change branches to sort 'active' branches first, and add an option to show only active branches.
Eric Hopper <hopper@omnifarious.org>
parents: 4667
diff changeset
615 List the repository's named branches, indicating which ones are
8991
7e0b31dfc66f branches: add --closed flag for consistency with heads
Matt Mackall <mpm@selenic.com>
parents: 8958
diff changeset
616 inactive. If -c/--closed is specified, also list branches which have
11193
687c7d395f20 Use our custom hg reStructuredText role some more
Martin Geisler <mg@aragost.com>
parents: 11185
diff changeset
617 been marked closed (see :hg:`commit --close-branch`).
8991
7e0b31dfc66f branches: add --closed flag for consistency with heads
Matt Mackall <mpm@selenic.com>
parents: 8958
diff changeset
618
7e0b31dfc66f branches: add --closed flag for consistency with heads
Matt Mackall <mpm@selenic.com>
parents: 8958
diff changeset
619 If -a/--active is specified, only show active branches. A branch
7e0b31dfc66f branches: add --closed flag for consistency with heads
Matt Mackall <mpm@selenic.com>
parents: 8958
diff changeset
620 is considered active if it contains repository heads.
5999
d1fe1a4eb2b7 Mention 'hg update' to switch branches in help for branch and branches.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 5998
diff changeset
621
10973
49a07f441496 Use hg role in help strings
Martin Geisler <mg@aragost.com>
parents: 10963
diff changeset
622 Use the command :hg:`update` to switch to an existing branch.
11177
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
623
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
624 Returns 0.
3502
8dc14d630b29 add branch and branches commands
Matt Mackall <mpm@selenic.com>
parents: 3472
diff changeset
625 """
8991
7e0b31dfc66f branches: add --closed flag for consistency with heads
Matt Mackall <mpm@selenic.com>
parents: 8958
diff changeset
626
6631
a2b13cac0922 Active branches fix (issue1104)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents: 6625
diff changeset
627 hexfunc = ui.debugflag and hex or short
9675
ee913987e4b0 localrepo/branchcache: remove lbranchmap(), convert users to use utf-8 names
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 9665
diff changeset
628 activebranches = [repo[n].branch() for n in repo.heads()]
8796
2bcef677a6c3 localrepo: remove 'closed' argument to heads(...) function
John Mulligan <phlogistonjohn@asynchrono.us>
parents: 8779
diff changeset
629 def testactive(tag, node):
2bcef677a6c3 localrepo: remove 'closed' argument to heads(...) function
John Mulligan <phlogistonjohn@asynchrono.us>
parents: 8779
diff changeset
630 realhead = tag in activebranches
2bcef677a6c3 localrepo: remove 'closed' argument to heads(...) function
John Mulligan <phlogistonjohn@asynchrono.us>
parents: 8779
diff changeset
631 open = node in repo.branchheads(tag, closed=False)
2bcef677a6c3 localrepo: remove 'closed' argument to heads(...) function
John Mulligan <phlogistonjohn@asynchrono.us>
parents: 8779
diff changeset
632 return realhead and open
2bcef677a6c3 localrepo: remove 'closed' argument to heads(...) function
John Mulligan <phlogistonjohn@asynchrono.us>
parents: 8779
diff changeset
633 branches = sorted([(testactive(tag, node), repo.changelog.rev(node), tag)
8210
344751cd8cb8 replace various uses of list.reverse()
Matt Mackall <mpm@selenic.com>
parents: 8209
diff changeset
634 for tag, node in repo.branchtags().items()],
344751cd8cb8 replace various uses of list.reverse()
Matt Mackall <mpm@selenic.com>
parents: 8209
diff changeset
635 reverse=True)
6631
a2b13cac0922 Active branches fix (issue1104)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents: 6625
diff changeset
636
a2b13cac0922 Active branches fix (issue1104)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents: 6625
diff changeset
637 for isactive, node, tag in branches:
a2b13cac0922 Active branches fix (issue1104)
Stefano Tortarolo <stefano.tortarolo@gmail.com>
parents: 6625
diff changeset
638 if (not active) or isactive:
4675
6858a7477a5e Change branches to sort 'active' branches first, and add an option to show only active branches.
Eric Hopper <hopper@omnifarious.org>
parents: 4667
diff changeset
639 if ui.quiet:
13047
6c375e07d673 branch: operate on branch names in local string space where possible
Matt Mackall <mpm@selenic.com>
parents: 13022
diff changeset
640 ui.write("%s\n" % tag)
4675
6858a7477a5e Change branches to sort 'active' branches first, and add an option to show only active branches.
Eric Hopper <hopper@omnifarious.org>
parents: 4667
diff changeset
641 else:
7656
6a24fb994701 branch closing: referencing open and closed branches/heads
John Mulligan <phlogistonjohn@asynchrono.us>
parents: 7655
diff changeset
642 hn = repo.lookup(node)
6a24fb994701 branch closing: referencing open and closed branches/heads
John Mulligan <phlogistonjohn@asynchrono.us>
parents: 7655
diff changeset
643 if isactive:
11969
52ec5c813723 color: enable branches support
Jeremy Whitlock <jcscoobyrs@gmail.com>
parents: 11941
diff changeset
644 label = 'branches.active'
7656
6a24fb994701 branch closing: referencing open and closed branches/heads
John Mulligan <phlogistonjohn@asynchrono.us>
parents: 7655
diff changeset
645 notice = ''
6a24fb994701 branch closing: referencing open and closed branches/heads
John Mulligan <phlogistonjohn@asynchrono.us>
parents: 7655
diff changeset
646 elif hn not in repo.branchheads(tag, closed=False):
8991
7e0b31dfc66f branches: add --closed flag for consistency with heads
Matt Mackall <mpm@selenic.com>
parents: 8958
diff changeset
647 if not closed:
7e0b31dfc66f branches: add --closed flag for consistency with heads
Matt Mackall <mpm@selenic.com>
parents: 8958
diff changeset
648 continue
11969
52ec5c813723 color: enable branches support
Jeremy Whitlock <jcscoobyrs@gmail.com>
parents: 11941
diff changeset
649 label = 'branches.closed'
9951
9b626a63f556 commands: mark strings for translation
Martin Geisler <mg@lazybytes.net>
parents: 9894
diff changeset
650 notice = _(' (closed)')
7656
6a24fb994701 branch closing: referencing open and closed branches/heads
John Mulligan <phlogistonjohn@asynchrono.us>
parents: 7655
diff changeset
651 else:
11969
52ec5c813723 color: enable branches support
Jeremy Whitlock <jcscoobyrs@gmail.com>
parents: 11941
diff changeset
652 label = 'branches.inactive'
9951
9b626a63f556 commands: mark strings for translation
Martin Geisler <mg@lazybytes.net>
parents: 9894
diff changeset
653 notice = _(' (inactive)')
11969
52ec5c813723 color: enable branches support
Jeremy Whitlock <jcscoobyrs@gmail.com>
parents: 11941
diff changeset
654 if tag == repo.dirstate.branch():
52ec5c813723 color: enable branches support
Jeremy Whitlock <jcscoobyrs@gmail.com>
parents: 11941
diff changeset
655 label = 'branches.current'
13047
6c375e07d673 branch: operate on branch names in local string space where possible
Matt Mackall <mpm@selenic.com>
parents: 13022
diff changeset
656 rev = str(node).rjust(31 - encoding.colwidth(tag))
11969
52ec5c813723 color: enable branches support
Jeremy Whitlock <jcscoobyrs@gmail.com>
parents: 11941
diff changeset
657 rev = ui.label('%s:%s' % (rev, hexfunc(hn)), 'log.changeset')
13047
6c375e07d673 branch: operate on branch names in local string space where possible
Matt Mackall <mpm@selenic.com>
parents: 13022
diff changeset
658 tag = ui.label(tag, label)
6c375e07d673 branch: operate on branch names in local string space where possible
Matt Mackall <mpm@selenic.com>
parents: 13022
diff changeset
659 ui.write("%s %s%s\n" % (tag, rev, notice))
3502
8dc14d630b29 add branch and branches commands
Matt Mackall <mpm@selenic.com>
parents: 3472
diff changeset
660
2494
73ac95671788 push, outgoing, bundle: fall back to "default" if "default-push" not defined
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2493
diff changeset
661 def bundle(ui, repo, fname, dest=None, **opts):
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
662 """create a changegroup file
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
663
3511
aa8f086cb141 Corrected help text for bundle.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 3510
diff changeset
664 Generate a compressed changegroup file collecting changesets not
7807
bd8f44638847 help: miscellaneous language fixes
timeless <timeless@gmail.com>
parents: 7765
diff changeset
665 known to be in another repository.
3511
aa8f086cb141 Corrected help text for bundle.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 3510
diff changeset
666
10376
a2950e053614 help: Improved body text
timeless <timeless@mozdev.org>
parents: 10375
diff changeset
667 If you omit the destination repository, then hg assumes the
a2950e053614 help: Improved body text
timeless <timeless@mozdev.org>
parents: 10375
diff changeset
668 destination will have all the nodes you specify with --base
6448
cd3d49ffc6f6 Consistently 1 space after full stops in command doc strings
Christian Ebert <blacktrash@gmx.net>
parents: 6442
diff changeset
669 parameters. To create a bundle containing all changesets, use
8903
d403cf4eb32d help: describe bundle compression methods (issue1523)
Henrik Stuart <hg@hstuart.dk>
parents: 8902
diff changeset
670 -a/--all (or --base null).
d403cf4eb32d help: describe bundle compression methods (issue1523)
Henrik Stuart <hg@hstuart.dk>
parents: 8902
diff changeset
671
8958
8358cf63f612 commands: improve bundle compression methods description
Stefano Mioli <jstevie@gmail.com>
parents: 8955
diff changeset
672 You can change compression method with the -t/--type option.
8358cf63f612 commands: improve bundle compression methods description
Stefano Mioli <jstevie@gmail.com>
parents: 8955
diff changeset
673 The available compression methods are: none, bzip2, and
8903
d403cf4eb32d help: describe bundle compression methods (issue1523)
Henrik Stuart <hg@hstuart.dk>
parents: 8902
diff changeset
674 gzip (by default, bundles are compressed using bzip2).
3511
aa8f086cb141 Corrected help text for bundle.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 3510
diff changeset
675
8004
d5b1b846f277 commands: word-wrap help texts at 70 characters
Martin Geisler <mg@daimi.au.dk>
parents: 7983
diff changeset
676 The bundle file can then be transferred using conventional means
d5b1b846f277 commands: word-wrap help texts at 70 characters
Martin Geisler <mg@daimi.au.dk>
parents: 7983
diff changeset
677 and applied to another repository with the unbundle or pull
d5b1b846f277 commands: word-wrap help texts at 70 characters
Martin Geisler <mg@daimi.au.dk>
parents: 7983
diff changeset
678 command. This is useful when direct push and pull are not
d5b1b846f277 commands: word-wrap help texts at 70 characters
Martin Geisler <mg@daimi.au.dk>
parents: 7983
diff changeset
679 available or when exporting an entire repository is undesirable.
3511
aa8f086cb141 Corrected help text for bundle.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 3510
diff changeset
680
aa8f086cb141 Corrected help text for bundle.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 3510
diff changeset
681 Applying bundles preserves all changeset contents including
aa8f086cb141 Corrected help text for bundle.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 3510
diff changeset
682 permissions, copy/rename information, and revision history.
11177
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
683
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
684 Returns 0 on success, 1 if no changes found.
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
685 """
12925
6eab8f0df2ca commands: add revset support to most commands
Matt Mackall <mpm@selenic.com>
parents: 12918
diff changeset
686 revs = None
6eab8f0df2ca commands: add revset support to most commands
Matt Mackall <mpm@selenic.com>
parents: 12918
diff changeset
687 if 'rev' in opts:
6eab8f0df2ca commands: add revset support to most commands
Matt Mackall <mpm@selenic.com>
parents: 12918
diff changeset
688 revs = cmdutil.revrange(repo, opts['rev'])
6eab8f0df2ca commands: add revset support to most commands
Matt Mackall <mpm@selenic.com>
parents: 12918
diff changeset
689
6171
73b1de288801 Add --all option to bundle command
John Mulligan <phlogistonjohn@yahoo.com>
parents: 6163
diff changeset
690 if opts.get('all'):
73b1de288801 Add --all option to bundle command
John Mulligan <phlogistonjohn@yahoo.com>
parents: 6163
diff changeset
691 base = ['null']
73b1de288801 Add --all option to bundle command
John Mulligan <phlogistonjohn@yahoo.com>
parents: 6163
diff changeset
692 else:
12925
6eab8f0df2ca commands: add revset support to most commands
Matt Mackall <mpm@selenic.com>
parents: 12918
diff changeset
693 base = cmdutil.revrange(repo, opts.get('base'))
3284
d89e98840b08 add -r/--rev and --base option to bundle
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 3278
diff changeset
694 if base:
d89e98840b08 add -r/--rev and --base option to bundle
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 3278
diff changeset
695 if dest:
8669
6f0f69da003e commands: typo in bundle abort message
Martin Geisler <mg@lazybytes.net>
parents: 8664
diff changeset
696 raise util.Abort(_("--base is incompatible with specifying "
3284
d89e98840b08 add -r/--rev and --base option to bundle
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 3278
diff changeset
697 "a destination"))
3318
a225055b3b59 bundle --base: use the right set for the base
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 3284
diff changeset
698 base = [repo.lookup(rev) for rev in base]
a225055b3b59 bundle --base: use the right set for the base
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 3284
diff changeset
699 # create the right base
a225055b3b59 bundle --base: use the right set for the base
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 3284
diff changeset
700 # XXX: nodesbetween / changegroup* should be "fixed" instead
3284
d89e98840b08 add -r/--rev and --base option to bundle
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 3278
diff changeset
701 o = []
8464
7af92e70bb25 revlog: use set instead of dict
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 8408
diff changeset
702 has = set((nullid,))
3284
d89e98840b08 add -r/--rev and --base option to bundle
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 3278
diff changeset
703 for n in base:
3631
770c4fc03b8e bundle: don't use sets.Set
Matt Mackall <mpm@selenic.com>
parents: 3629
diff changeset
704 has.update(repo.changelog.reachable(n))
3284
d89e98840b08 add -r/--rev and --base option to bundle
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 3278
diff changeset
705 if revs:
11636
c10eaf1210cd bundle: lookup revisions after addbranchrevs
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11629
diff changeset
706 revs = [repo.lookup(rev) for rev in revs]
c10eaf1210cd bundle: lookup revisions after addbranchrevs
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11629
diff changeset
707 visit = revs[:]
c10eaf1210cd bundle: lookup revisions after addbranchrevs
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11629
diff changeset
708 has.difference_update(visit)
3284
d89e98840b08 add -r/--rev and --base option to bundle
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 3278
diff changeset
709 else:
3318
a225055b3b59 bundle --base: use the right set for the base
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 3284
diff changeset
710 visit = repo.changelog.heads()
3631
770c4fc03b8e bundle: don't use sets.Set
Matt Mackall <mpm@selenic.com>
parents: 3629
diff changeset
711 seen = {}
3318
a225055b3b59 bundle --base: use the right set for the base
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 3284
diff changeset
712 while visit:
a225055b3b59 bundle --base: use the right set for the base
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 3284
diff changeset
713 n = visit.pop(0)
3631
770c4fc03b8e bundle: don't use sets.Set
Matt Mackall <mpm@selenic.com>
parents: 3629
diff changeset
714 parents = [p for p in repo.changelog.parents(n) if p not in has]
3318
a225055b3b59 bundle --base: use the right set for the base
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 3284
diff changeset
715 if len(parents) == 0:
10479
bb508b312359 bundle: exclude csets given in --base, unless they are in --rev (issue1910)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 10448
diff changeset
716 if n not in has:
bb508b312359 bundle: exclude csets given in --base, unless they are in --rev (issue1910)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 10448
diff changeset
717 o.append(n)
3318
a225055b3b59 bundle --base: use the right set for the base
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 3284
diff changeset
718 else:
3512
630e0b216192 fix graph traversal in commands.bundle (it wasn't O(n))
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 3511
diff changeset
719 for p in parents:
630e0b216192 fix graph traversal in commands.bundle (it wasn't O(n))
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 3511
diff changeset
720 if p not in seen:
3631
770c4fc03b8e bundle: don't use sets.Set
Matt Mackall <mpm@selenic.com>
parents: 3629
diff changeset
721 seen[p] = 1
3512
630e0b216192 fix graph traversal in commands.bundle (it wasn't O(n))
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 3511
diff changeset
722 visit.append(p)
3284
d89e98840b08 add -r/--rev and --base option to bundle
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 3278
diff changeset
723 else:
10365
d757bc0c7865 interpret repo#name url syntax as branch instead of revision
Sune Foldager <cryo@cyanite.org>
parents: 10364
diff changeset
724 dest = ui.expandpath(dest or 'default-push', dest or 'default')
10379
a78bfaf988e1 add -b/--branch option to clone, bundle, incoming, outgoing, pull, push
Sune Foldager <cryo@cyanite.org>
parents: 10376
diff changeset
725 dest, branches = hg.parseurl(dest, opts.get('branch'))
11273
d1908cb95a82 remoteui: move from cmdutil to hg
Matt Mackall <mpm@selenic.com>
parents: 11219
diff changeset
726 other = hg.repository(hg.remoteui(repo, opts), dest)
10365
d757bc0c7865 interpret repo#name url syntax as branch instead of revision
Sune Foldager <cryo@cyanite.org>
parents: 10364
diff changeset
727 revs, checkout = hg.addbranchrevs(repo, other, branches, revs)
11636
c10eaf1210cd bundle: lookup revisions after addbranchrevs
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11629
diff changeset
728 if revs:
c10eaf1210cd bundle: lookup revisions after addbranchrevs
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11629
diff changeset
729 revs = [repo.lookup(rev) for rev in revs]
11301
3d0591a66118 move discovery methods from localrepo into new discovery module
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 11297
diff changeset
730 o = discovery.findoutgoing(repo, other, force=opts.get('force'))
3284
d89e98840b08 add -r/--rev and --base option to bundle
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 3278
diff changeset
731
10616
65b178f30eae bundle: fix bundle generation for empty changegroup
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 10596
diff changeset
732 if not o:
65b178f30eae bundle: fix bundle generation for empty changegroup
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 10596
diff changeset
733 ui.status(_("no changes found\n"))
11177
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
734 return 1
10616
65b178f30eae bundle: fix bundle generation for empty changegroup
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 10596
diff changeset
735
3284
d89e98840b08 add -r/--rev and --base option to bundle
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 3278
diff changeset
736 if revs:
d89e98840b08 add -r/--rev and --base option to bundle
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 3278
diff changeset
737 cg = repo.changegroupsubset(o, revs, 'bundle')
d89e98840b08 add -r/--rev and --base option to bundle
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 3278
diff changeset
738 else:
d89e98840b08 add -r/--rev and --base option to bundle
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 3278
diff changeset
739 cg = repo.changegroup(o, 'bundle')
6570
626cb86a6523 add compression type type parameter to bundle command
Benoit Allard <benoit@aeteurope.nl>
parents: 6518
diff changeset
740
626cb86a6523 add compression type type parameter to bundle command
Benoit Allard <benoit@aeteurope.nl>
parents: 6518
diff changeset
741 bundletype = opts.get('type', 'bzip2').lower()
626cb86a6523 add compression type type parameter to bundle command
Benoit Allard <benoit@aeteurope.nl>
parents: 6518
diff changeset
742 btypes = {'none': 'HG10UN', 'bzip2': 'HG10BZ', 'gzip': 'HG10GZ'}
626cb86a6523 add compression type type parameter to bundle command
Benoit Allard <benoit@aeteurope.nl>
parents: 6518
diff changeset
743 bundletype = btypes.get(bundletype)
626cb86a6523 add compression type type parameter to bundle command
Benoit Allard <benoit@aeteurope.nl>
parents: 6518
diff changeset
744 if bundletype not in changegroup.bundletypes:
626cb86a6523 add compression type type parameter to bundle command
Benoit Allard <benoit@aeteurope.nl>
parents: 6518
diff changeset
745 raise util.Abort(_('unknown bundle type specified with --type'))
626cb86a6523 add compression type type parameter to bundle command
Benoit Allard <benoit@aeteurope.nl>
parents: 6518
diff changeset
746
626cb86a6523 add compression type type parameter to bundle command
Benoit Allard <benoit@aeteurope.nl>
parents: 6518
diff changeset
747 changegroup.writebundle(cg, fname, bundletype)
1218
cde6818e082a Add preliminary support for the bundle and unbundle commands
mpm@selenic.com
parents: 1215
diff changeset
748
1254
e6560042b7b8 Switch cat command to use walk code.
Bryan O'Sullivan <bos@serpentine.com>
parents: 1253
diff changeset
749 def cat(ui, repo, file1, *pats, **opts):
3914
283ee8971570 doc string fix: hg cat and manifest default to current parent revision.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 3900
diff changeset
750 """output the current or given revision of files
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
751
8004
d5b1b846f277 commands: word-wrap help texts at 70 characters
Martin Geisler <mg@daimi.au.dk>
parents: 7983
diff changeset
752 Print the specified files as they were at the given revision. If
d5b1b846f277 commands: word-wrap help texts at 70 characters
Martin Geisler <mg@daimi.au.dk>
parents: 7983
diff changeset
753 no revision is given, the parent of the working directory is used,
3915
3c82ab166eea doc fix: hg tags defaults to current parent revision, too.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 3914
diff changeset
754 or tip if no revision is checked out.
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
755
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
756 Output may be to a file, in which case the name of the file is
6448
cd3d49ffc6f6 Consistently 1 space after full stops in command doc strings
Christian Ebert <blacktrash@gmx.net>
parents: 6442
diff changeset
757 given using a format string. The formatting rules are the same as
9892
4322e39bd525 commands: use field lists instead of literal blocks in docstrings
Martin Geisler <mg@lazybytes.net>
parents: 9891
diff changeset
758 for the export command, with the following additions:
4322e39bd525 commands: use field lists instead of literal blocks in docstrings
Martin Geisler <mg@lazybytes.net>
parents: 9891
diff changeset
759
4322e39bd525 commands: use field lists instead of literal blocks in docstrings
Martin Geisler <mg@lazybytes.net>
parents: 9891
diff changeset
760 :``%s``: basename of file being printed
4322e39bd525 commands: use field lists instead of literal blocks in docstrings
Martin Geisler <mg@lazybytes.net>
parents: 9891
diff changeset
761 :``%d``: dirname of file being printed, or '.' if in repository root
4322e39bd525 commands: use field lists instead of literal blocks in docstrings
Martin Geisler <mg@lazybytes.net>
parents: 9891
diff changeset
762 :``%p``: root-relative path name of file being printed
11177
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
763
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
764 Returns 0 on success.
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
765 """
12618
0ae35296fbf4 revsets: introduce revsingle helper
Matt Mackall <mpm@selenic.com>
parents: 12613
diff changeset
766 ctx = cmdutil.revsingle(repo, opts.get('rev'))
4697
5b2d986de0f8 cat: return an error on failure
Matt Mackall <mpm@selenic.com>
parents: 4692
diff changeset
767 err = 1
6579
0159b7a36184 walk: pass match object to cmdutil.walk
Matt Mackall <mpm@selenic.com>
parents: 6578
diff changeset
768 m = cmdutil.match(repo, (file1,) + pats, opts)
6764
8db64464d136 context: add walk method
Matt Mackall <mpm@selenic.com>
parents: 6762
diff changeset
769 for abs in ctx.walk(m):
7131
23bd7383891c commands: optional options where possible
Alexander Solovyov <piranha@piranha.org.ua>
parents: 7126
diff changeset
770 fp = cmdutil.make_file(repo, opts.get('output'), ctx.node(), pathname=abs)
6764
8db64464d136 context: add walk method
Matt Mackall <mpm@selenic.com>
parents: 6762
diff changeset
771 data = ctx[abs].data()
6094
3998c1b0828f cat --decode: Drop short option, use opts.get() instead of opts[]
Thomas Arendsen Hein <thomas@intevation.de>
parents: 6093
diff changeset
772 if opts.get('decode'):
6093
f5b00b6e426a Option --decode for hg cat to apply decode filters.
Jesse Glick <jesse.glick@sun.com>
parents: 6068
diff changeset
773 data = repo.wwritedata(abs, data)
f5b00b6e426a Option --decode for hg cat to apply decode filters.
Jesse Glick <jesse.glick@sun.com>
parents: 6068
diff changeset
774 fp.write(data)
13400
14f3795a5ed7 explicitly close files
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 13396
diff changeset
775 fp.close()
4697
5b2d986de0f8 cat: return an error on failure
Matt Mackall <mpm@selenic.com>
parents: 4692
diff changeset
776 err = 0
5b2d986de0f8 cat: return an error on failure
Matt Mackall <mpm@selenic.com>
parents: 4692
diff changeset
777 return err
248
b7645b3c86ff migrate remaining commands
mpm@selenic.com
parents: 247
diff changeset
778
698
df78d8ccac4c Use python function instead of external 'cp' command when cloning repos.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 697
diff changeset
779 def clone(ui, source, dest=None, **opts):
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
780 """make a copy of an existing repository
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
781
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
782 Create a copy of an existing repository in a new directory.
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
783
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
784 If no destination directory name is specified, it defaults to the
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
785 basename of the source.
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
786
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
787 The location of the source is added to the new repository's
13344
6367459decf7 doc: Add back quotes around filenames
Javi Merino <cibervicho@gmail.com>
parents: 13343
diff changeset
788 ``.hg/hgrc`` file, as the default to be used for future pulls.
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
789
10973
49a07f441496 Use hg role in help strings
Martin Geisler <mg@aragost.com>
parents: 10963
diff changeset
790 See :hg:`help urls` for valid source format details.
7942
553cef16031f mention default branch in branch and clone help
Matt Mackall <mpm@selenic.com>
parents: 7880
diff changeset
791
9970
36760956f6d3 commands: mark "ssh://" as inline literals in help texts
Martin Geisler <mg@lazybytes.net>
parents: 9952
diff changeset
792 It is possible to specify an ``ssh://`` URL as the destination, but no
13344
6367459decf7 doc: Add back quotes around filenames
Javi Merino <cibervicho@gmail.com>
parents: 13343
diff changeset
793 ``.hg/hgrc`` and working directory will be created on the remote side.
10973
49a07f441496 Use hg role in help strings
Martin Geisler <mg@aragost.com>
parents: 10963
diff changeset
794 Please see :hg:`help urls` for important details about ``ssh://`` URLs.
7942
553cef16031f mention default branch in branch and clone help
Matt Mackall <mpm@selenic.com>
parents: 7880
diff changeset
795
9714
2f1ab7f77ddc clone: add option -u/--updaterev
Adrian Buehlmann <adrian@cadifra.com>
parents: 9698
diff changeset
796 A set of changesets (tags, or branch names) to pull may be specified
2f1ab7f77ddc clone: add option -u/--updaterev
Adrian Buehlmann <adrian@cadifra.com>
parents: 9698
diff changeset
797 by listing each changeset (tag, or branch name) with -r/--rev.
2f1ab7f77ddc clone: add option -u/--updaterev
Adrian Buehlmann <adrian@cadifra.com>
parents: 9698
diff changeset
798 If -r/--rev is used, the cloned repository will contain only a subset
2f1ab7f77ddc clone: add option -u/--updaterev
Adrian Buehlmann <adrian@cadifra.com>
parents: 9698
diff changeset
799 of the changesets of the source repository. Only the set of changesets
9806
dafbe321fc1a clone: simplify help text
Wagner Bruna <wbruna@softwareexpress.com.br>
parents: 9747
diff changeset
800 defined by all -r/--rev options (including all their ancestors)
dafbe321fc1a clone: simplify help text
Wagner Bruna <wbruna@softwareexpress.com.br>
parents: 9747
diff changeset
801 will be pulled into the destination repository.
9714
2f1ab7f77ddc clone: add option -u/--updaterev
Adrian Buehlmann <adrian@cadifra.com>
parents: 9698
diff changeset
802 No subsequent changesets (including subsequent tags) will be present
2f1ab7f77ddc clone: add option -u/--updaterev
Adrian Buehlmann <adrian@cadifra.com>
parents: 9698
diff changeset
803 in the destination.
2f1ab7f77ddc clone: add option -u/--updaterev
Adrian Buehlmann <adrian@cadifra.com>
parents: 9698
diff changeset
804
2f1ab7f77ddc clone: add option -u/--updaterev
Adrian Buehlmann <adrian@cadifra.com>
parents: 9698
diff changeset
805 Using -r/--rev (or 'clone src#rev dest') implies --pull, even for
2f1ab7f77ddc clone: add option -u/--updaterev
Adrian Buehlmann <adrian@cadifra.com>
parents: 9698
diff changeset
806 local source repositories.
2f1ab7f77ddc clone: add option -u/--updaterev
Adrian Buehlmann <adrian@cadifra.com>
parents: 9698
diff changeset
807
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
808 For efficiency, hardlinks are used for cloning whenever the source
2762
2df98f616645 Expand clone help with hardlink information
Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com>
parents: 2761
diff changeset
809 and destination are on the same filesystem (note this applies only
10637
7ce62865d72a commands: document and test hg clone update priority
timeless <timeless@gmail.com>
parents: 10616
diff changeset
810 to the repository data, not to the working directory). Some
2762
2df98f616645 Expand clone help with hardlink information
Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com>
parents: 2761
diff changeset
811 filesystems, such as AFS, implement hardlinking incorrectly, but
6448
cd3d49ffc6f6 Consistently 1 space after full stops in command doc strings
Christian Ebert <blacktrash@gmx.net>
parents: 6442
diff changeset
812 do not report errors. In these cases, use the --pull option to
2762
2df98f616645 Expand clone help with hardlink information
Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com>
parents: 2761
diff changeset
813 avoid hardlinking.
2df98f616645 Expand clone help with hardlink information
Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com>
parents: 2761
diff changeset
814
10637
7ce62865d72a commands: document and test hg clone update priority
timeless <timeless@gmail.com>
parents: 10616
diff changeset
815 In some cases, you can clone repositories and the working directory
9249
16f4cfc69e4f commands: wrap docstrings at 70 characters
Martin Geisler <mg@lazybytes.net>
parents: 9219
diff changeset
816 using full hardlinks with ::
2762
2df98f616645 Expand clone help with hardlink information
Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com>
parents: 2761
diff changeset
817
2df98f616645 Expand clone help with hardlink information
Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com>
parents: 2761
diff changeset
818 $ cp -al REPO REPOCLONE
2df98f616645 Expand clone help with hardlink information
Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com>
parents: 2761
diff changeset
819
7983
7b813bdbd5d0 Change double spaces to single spaces in help texts.
Martin Geisler <mg@daimi.au.dk>
parents: 7982
diff changeset
820 This is the fastest way to clone, but it is not always safe. The
6509
5279848424e7 issue 1053: heavily qualify the "cp -al" advice for cloning
Bryan O'Sullivan <bos@serpentine.com>
parents: 6469
diff changeset
821 operation is not atomic (making sure REPO is not modified during
5279848424e7 issue 1053: heavily qualify the "cp -al" advice for cloning
Bryan O'Sullivan <bos@serpentine.com>
parents: 6469
diff changeset
822 the operation is up to you) and you have to make sure your editor
7983
7b813bdbd5d0 Change double spaces to single spaces in help texts.
Martin Geisler <mg@daimi.au.dk>
parents: 7982
diff changeset
823 breaks hardlinks (Emacs and most Linux Kernel tools do so). Also,
6509
5279848424e7 issue 1053: heavily qualify the "cp -al" advice for cloning
Bryan O'Sullivan <bos@serpentine.com>
parents: 6469
diff changeset
824 this is not compatible with certain extensions that place their
5279848424e7 issue 1053: heavily qualify the "cp -al" advice for cloning
Bryan O'Sullivan <bos@serpentine.com>
parents: 6469
diff changeset
825 metadata under the .hg directory, such as mq.
10637
7ce62865d72a commands: document and test hg clone update priority
timeless <timeless@gmail.com>
parents: 10616
diff changeset
826
7ce62865d72a commands: document and test hg clone update priority
timeless <timeless@gmail.com>
parents: 10616
diff changeset
827 Mercurial will update the working directory to the first applicable
7ce62865d72a commands: document and test hg clone update priority
timeless <timeless@gmail.com>
parents: 10616
diff changeset
828 revision from this list:
7ce62865d72a commands: document and test hg clone update priority
timeless <timeless@gmail.com>
parents: 10616
diff changeset
829
10645
ac280ab55c9f commands: remove extra indentation from list in help text
Martin Geisler <mg@lazybytes.net>
parents: 10637
diff changeset
830 a) null if -U or the source repository has no changesets
ac280ab55c9f commands: remove extra indentation from list in help text
Martin Geisler <mg@lazybytes.net>
parents: 10637
diff changeset
831 b) if -u . and the source repository is local, the first parent of
ac280ab55c9f commands: remove extra indentation from list in help text
Martin Geisler <mg@lazybytes.net>
parents: 10637
diff changeset
832 the source repository's working directory
ac280ab55c9f commands: remove extra indentation from list in help text
Martin Geisler <mg@lazybytes.net>
parents: 10637
diff changeset
833 c) the changeset specified with -u (if a branch name, this means the
ac280ab55c9f commands: remove extra indentation from list in help text
Martin Geisler <mg@lazybytes.net>
parents: 10637
diff changeset
834 latest head of that branch)
ac280ab55c9f commands: remove extra indentation from list in help text
Martin Geisler <mg@lazybytes.net>
parents: 10637
diff changeset
835 d) the changeset specified with -r
ac280ab55c9f commands: remove extra indentation from list in help text
Martin Geisler <mg@lazybytes.net>
parents: 10637
diff changeset
836 e) the tipmost head specified with -b
ac280ab55c9f commands: remove extra indentation from list in help text
Martin Geisler <mg@lazybytes.net>
parents: 10637
diff changeset
837 f) the tipmost head specified with the url#branch source syntax
ac280ab55c9f commands: remove extra indentation from list in help text
Martin Geisler <mg@lazybytes.net>
parents: 10637
diff changeset
838 g) the tipmost head of the default branch
ac280ab55c9f commands: remove extra indentation from list in help text
Martin Geisler <mg@lazybytes.net>
parents: 10637
diff changeset
839 h) tip
11177
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
840
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
841 Returns 0 on success.
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
842 """
9714
2f1ab7f77ddc clone: add option -u/--updaterev
Adrian Buehlmann <adrian@cadifra.com>
parents: 9698
diff changeset
843 if opts.get('noupdate') and opts.get('updaterev'):
2f1ab7f77ddc clone: add option -u/--updaterev
Adrian Buehlmann <adrian@cadifra.com>
parents: 9698
diff changeset
844 raise util.Abort(_("cannot specify both --noupdate and --updaterev"))
2f1ab7f77ddc clone: add option -u/--updaterev
Adrian Buehlmann <adrian@cadifra.com>
parents: 9698
diff changeset
845
11273
d1908cb95a82 remoteui: move from cmdutil to hg
Matt Mackall <mpm@selenic.com>
parents: 11219
diff changeset
846 r = hg.clone(hg.remoteui(ui, opts), source, dest,
11177
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
847 pull=opts.get('pull'),
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
848 stream=opts.get('uncompressed'),
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
849 rev=opts.get('rev'),
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
850 update=opts.get('updaterev') or not opts.get('noupdate'),
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
851 branch=opts.get('branch'))
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
852
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
853 return r is None
515
03f27b1381f9 Whitespace cleanups
mpm@selenic.com
parents: 513
diff changeset
854
813
80fd2958235a Adapt commit to use file matching code.
Bryan O'Sullivan <bos@serpentine.com>
parents: 812
diff changeset
855 def commit(ui, repo, *pats, **opts):
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
856 """commit the specified files or all outstanding changes
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
857
7983
7b813bdbd5d0 Change double spaces to single spaces in help texts.
Martin Geisler <mg@daimi.au.dk>
parents: 7982
diff changeset
858 Commit changes to the given files into the repository. Unlike a
13303
716ce1ea6fec commit: use the term SCM instead of RCS
Adrian Buehlmann <adrian@cadifra.com>
parents: 13235
diff changeset
859 centralized SCM, this operation is a local operation. See
11193
687c7d395f20 Use our custom hg reStructuredText role some more
Martin Geisler <mg@aragost.com>
parents: 11185
diff changeset
860 :hg:`push` for a way to actively distribute your changes.
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
861
10973
49a07f441496 Use hg role in help strings
Martin Geisler <mg@aragost.com>
parents: 10963
diff changeset
862 If a list of files is omitted, all changes reported by :hg:`status`
1995
2da2d46862fb Spelling fix: "commited" -> "committed"
mcmillen@cs.cmu.edu
parents: 1994
diff changeset
863 will be committed.
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
864
6385
0d4e068e9e52 commit: when committing the results of a merge, it's all or nothing
Bryan O'Sullivan <bos@serpentine.com>
parents: 6375
diff changeset
865 If you are committing the result of a merge, do not provide any
8761
0289f384e1e5 Generally replace "file name" with "filename" in help and comments.
timeless <timeless@gmail.com>
parents: 8760
diff changeset
866 filenames or -I/-X filters.
6385
0d4e068e9e52 commit: when committing the results of a merge, it's all or nothing
Bryan O'Sullivan <bos@serpentine.com>
parents: 6375
diff changeset
867
11877
8f40125a0ed8 commit: explicitly document the existence of "last-message.txt"
Greg Ward <greg-hg@gerg.ca>
parents: 11836
diff changeset
868 If no commit message is specified, Mercurial starts your
8f40125a0ed8 commit: explicitly document the existence of "last-message.txt"
Greg Ward <greg-hg@gerg.ca>
parents: 11836
diff changeset
869 configured editor where you can enter a message. In case your
8f40125a0ed8 commit: explicitly document the existence of "last-message.txt"
Greg Ward <greg-hg@gerg.ca>
parents: 11836
diff changeset
870 commit fails, you will find a backup of your message in
8f40125a0ed8 commit: explicitly document the existence of "last-message.txt"
Greg Ward <greg-hg@gerg.ca>
parents: 11836
diff changeset
871 ``.hg/last-message.txt``.
6163
1f733c2f0165 Document log date ranges and mention 'hg help dates' for all commands (issue998)
Thomas Arendsen Hein <thomas@intevation.de>
parents: 6161
diff changeset
872
10973
49a07f441496 Use hg role in help strings
Martin Geisler <mg@aragost.com>
parents: 10963
diff changeset
873 See :hg:`help dates` for a list of formats valid for -d/--date.
11177
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
874
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
875 Returns 0 on success, 1 if nothing changed.
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
876 """
7655
cce37dab7ad6 branch closing: mark closed branches with a 'close' extra
John Mulligan <phlogistonjohn@asynchrono.us>
parents: 7643
diff changeset
877 extra = {}
cce37dab7ad6 branch closing: mark closed branches with a 'close' extra
John Mulligan <phlogistonjohn@asynchrono.us>
parents: 7643
diff changeset
878 if opts.get('close_branch'):
11163
acd61dc44a39 commit: prevent closing non-head changesets
Gilles Moris <gilles.moris@free.fr>
parents: 11104
diff changeset
879 if repo['.'].node() not in repo.branchheads():
acd61dc44a39 commit: prevent closing non-head changesets
Gilles Moris <gilles.moris@free.fr>
parents: 11104
diff changeset
880 # The topo heads set is included in the branch heads set of the
acd61dc44a39 commit: prevent closing non-head changesets
Gilles Moris <gilles.moris@free.fr>
parents: 11104
diff changeset
881 # current branch, so it's sufficient to test branchheads
acd61dc44a39 commit: prevent closing non-head changesets
Gilles Moris <gilles.moris@free.fr>
parents: 11104
diff changeset
882 raise util.Abort(_('can only close branch heads'))
7655
cce37dab7ad6 branch closing: mark closed branches with a 'close' extra
John Mulligan <phlogistonjohn@asynchrono.us>
parents: 7643
diff changeset
883 extra['close'] = 1
8407
223000a687b0 commit: move commit editor to cmdutil, pass as function
Matt Mackall <mpm@selenic.com>
parents: 8397
diff changeset
884 e = cmdutil.commiteditor
223000a687b0 commit: move commit editor to cmdutil, pass as function
Matt Mackall <mpm@selenic.com>
parents: 8397
diff changeset
885 if opts.get('force_editor'):
223000a687b0 commit: move commit editor to cmdutil, pass as function
Matt Mackall <mpm@selenic.com>
parents: 8397
diff changeset
886 e = cmdutil.commitforceeditor
223000a687b0 commit: move commit editor to cmdutil, pass as function
Matt Mackall <mpm@selenic.com>
parents: 8397
diff changeset
887
6600
b822a379860b match: stop passing files through commitfunc
Matt Mackall <mpm@selenic.com>
parents: 6599
diff changeset
888 def commitfunc(ui, repo, message, match, opts):
8706
25e9c71b89de commit: drop the now-unused files parameter
Matt Mackall <mpm@selenic.com>
parents: 8704
diff changeset
889 return repo.commit(message, opts.get('user'), opts.get('date'), match,
25e9c71b89de commit: drop the now-unused files parameter
Matt Mackall <mpm@selenic.com>
parents: 8704
diff changeset
890 editor=e, extra=extra)
6336
4b0c9c674707 warn about new heads on commit (issue842)
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 6321
diff changeset
891
11173
5b48d819d5f9 commit: note new branch heads rather than topological heads
Matt Mackall <mpm@selenic.com>
parents: 11169
diff changeset
892 branch = repo[None].branch()
5b48d819d5f9 commit: note new branch heads rather than topological heads
Matt Mackall <mpm@selenic.com>
parents: 11169
diff changeset
893 bheads = repo.branchheads(branch)
5b48d819d5f9 commit: note new branch heads rather than topological heads
Matt Mackall <mpm@selenic.com>
parents: 11169
diff changeset
894
6369
53912d30ac40 Avoid calling heads() twice on every hg commit.
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 6367
diff changeset
895 node = cmdutil.commit(ui, repo, commitfunc, pats, opts)
53912d30ac40 Avoid calling heads() twice on every hg commit.
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 6367
diff changeset
896 if not node:
8995
7b19cda0fa10 commit: lose some pointless 'nothing changed' messages
Matt Mackall <mpm@selenic.com>
parents: 8992
diff changeset
897 ui.status(_("nothing changed\n"))
11177
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
898 return 1
11173
5b48d819d5f9 commit: note new branch heads rather than topological heads
Matt Mackall <mpm@selenic.com>
parents: 11169
diff changeset
899
5b48d819d5f9 commit: note new branch heads rather than topological heads
Matt Mackall <mpm@selenic.com>
parents: 11169
diff changeset
900 ctx = repo[node]
5b48d819d5f9 commit: note new branch heads rather than topological heads
Matt Mackall <mpm@selenic.com>
parents: 11169
diff changeset
901 parents = ctx.parents()
5b48d819d5f9 commit: note new branch heads rather than topological heads
Matt Mackall <mpm@selenic.com>
parents: 11169
diff changeset
902
11317
b66e414d38b0 commit: fix display of 'created new head' message (issue2186)
Gilles Moris <gilles.moris@free.fr>
parents: 11311
diff changeset
903 if bheads and not [x for x in parents
b66e414d38b0 commit: fix display of 'created new head' message (issue2186)
Gilles Moris <gilles.moris@free.fr>
parents: 11311
diff changeset
904 if x.node() in bheads and x.branch() == branch]:
6336
4b0c9c674707 warn about new heads on commit (issue842)
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 6321
diff changeset
905 ui.status(_('created new head\n'))
11317
b66e414d38b0 commit: fix display of 'created new head' message (issue2186)
Gilles Moris <gilles.moris@free.fr>
parents: 11311
diff changeset
906 # The message is not printed for initial roots. For the other
b66e414d38b0 commit: fix display of 'created new head' message (issue2186)
Gilles Moris <gilles.moris@free.fr>
parents: 11311
diff changeset
907 # changesets, it is printed in the following situations:
b66e414d38b0 commit: fix display of 'created new head' message (issue2186)
Gilles Moris <gilles.moris@free.fr>
parents: 11311
diff changeset
908 #
b66e414d38b0 commit: fix display of 'created new head' message (issue2186)
Gilles Moris <gilles.moris@free.fr>
parents: 11311
diff changeset
909 # Par column: for the 2 parents with ...
b66e414d38b0 commit: fix display of 'created new head' message (issue2186)
Gilles Moris <gilles.moris@free.fr>
parents: 11311
diff changeset
910 # N: null or no parent
b66e414d38b0 commit: fix display of 'created new head' message (issue2186)
Gilles Moris <gilles.moris@free.fr>
parents: 11311
diff changeset
911 # B: parent is on another named branch
b66e414d38b0 commit: fix display of 'created new head' message (issue2186)
Gilles Moris <gilles.moris@free.fr>
parents: 11311
diff changeset
912 # C: parent is a regular non head changeset
b66e414d38b0 commit: fix display of 'created new head' message (issue2186)
Gilles Moris <gilles.moris@free.fr>
parents: 11311
diff changeset
913 # H: parent was a branch head of the current branch
b66e414d38b0 commit: fix display of 'created new head' message (issue2186)
Gilles Moris <gilles.moris@free.fr>
parents: 11311
diff changeset
914 # Msg column: whether we print "created new head" message
b66e414d38b0 commit: fix display of 'created new head' message (issue2186)
Gilles Moris <gilles.moris@free.fr>
parents: 11311
diff changeset
915 # In the following, it is assumed that there already exists some
b66e414d38b0 commit: fix display of 'created new head' message (issue2186)
Gilles Moris <gilles.moris@free.fr>
parents: 11311
diff changeset
916 # initial branch heads of the current branch, otherwise nothing is
b66e414d38b0 commit: fix display of 'created new head' message (issue2186)
Gilles Moris <gilles.moris@free.fr>
parents: 11311
diff changeset
917 # printed anyway.
b66e414d38b0 commit: fix display of 'created new head' message (issue2186)
Gilles Moris <gilles.moris@free.fr>
parents: 11311
diff changeset
918 #
b66e414d38b0 commit: fix display of 'created new head' message (issue2186)
Gilles Moris <gilles.moris@free.fr>
parents: 11311
diff changeset
919 # Par Msg Comment
b66e414d38b0 commit: fix display of 'created new head' message (issue2186)
Gilles Moris <gilles.moris@free.fr>
parents: 11311
diff changeset
920 # NN y additional topo root
b66e414d38b0 commit: fix display of 'created new head' message (issue2186)
Gilles Moris <gilles.moris@free.fr>
parents: 11311
diff changeset
921 #
b66e414d38b0 commit: fix display of 'created new head' message (issue2186)
Gilles Moris <gilles.moris@free.fr>
parents: 11311
diff changeset
922 # BN y additional branch root
b66e414d38b0 commit: fix display of 'created new head' message (issue2186)
Gilles Moris <gilles.moris@free.fr>
parents: 11311
diff changeset
923 # CN y additional topo head
b66e414d38b0 commit: fix display of 'created new head' message (issue2186)
Gilles Moris <gilles.moris@free.fr>
parents: 11311
diff changeset
924 # HN n usual case
b66e414d38b0 commit: fix display of 'created new head' message (issue2186)
Gilles Moris <gilles.moris@free.fr>
parents: 11311
diff changeset
925 #
b66e414d38b0 commit: fix display of 'created new head' message (issue2186)
Gilles Moris <gilles.moris@free.fr>
parents: 11311
diff changeset
926 # BB y weird additional branch root
b66e414d38b0 commit: fix display of 'created new head' message (issue2186)
Gilles Moris <gilles.moris@free.fr>
parents: 11311
diff changeset
927 # CB y branch merge
b66e414d38b0 commit: fix display of 'created new head' message (issue2186)
Gilles Moris <gilles.moris@free.fr>
parents: 11311
diff changeset
928 # HB n merge with named branch
b66e414d38b0 commit: fix display of 'created new head' message (issue2186)
Gilles Moris <gilles.moris@free.fr>
parents: 11311
diff changeset
929 #
b66e414d38b0 commit: fix display of 'created new head' message (issue2186)
Gilles Moris <gilles.moris@free.fr>
parents: 11311
diff changeset
930 # CC y additional head from merge
b66e414d38b0 commit: fix display of 'created new head' message (issue2186)
Gilles Moris <gilles.moris@free.fr>
parents: 11311
diff changeset
931 # CH n merge with a head
b66e414d38b0 commit: fix display of 'created new head' message (issue2186)
Gilles Moris <gilles.moris@free.fr>
parents: 11311
diff changeset
932 #
b66e414d38b0 commit: fix display of 'created new head' message (issue2186)
Gilles Moris <gilles.moris@free.fr>
parents: 11311
diff changeset
933 # HH n head merge: head count decreases
245
fef0f8e041aa big heap of command clean-up work
mpm@selenic.com
parents: 241
diff changeset
934
11164
e84600b0d81b commit: inform the commiter when resurrecting a closed changeset
Gilles Moris <gilles.moris@free.fr>
parents: 11163
diff changeset
935 if not opts.get('close_branch'):
e84600b0d81b commit: inform the commiter when resurrecting a closed changeset
Gilles Moris <gilles.moris@free.fr>
parents: 11163
diff changeset
936 for r in parents:
11515
cc982ff2dcf8 commands: only warn when reopening the workdir's branch
Robert Bauck Hamar <r.b.hamar@usit.uio.no>
parents: 11508
diff changeset
937 if r.extra().get('close') and r.branch() == branch:
11164
e84600b0d81b commit: inform the commiter when resurrecting a closed changeset
Gilles Moris <gilles.moris@free.fr>
parents: 11163
diff changeset
938 ui.status(_('reopening closed branch head %d\n') % r)
e84600b0d81b commit: inform the commiter when resurrecting a closed changeset
Gilles Moris <gilles.moris@free.fr>
parents: 11163
diff changeset
939
6935
03916abdfb64 Have verbose and debug flag print the changeset rev and hash when committing.
Gilles Moris <gilles.moris@free.fr>
parents: 6934
diff changeset
940 if ui.debugflag:
11173
5b48d819d5f9 commit: note new branch heads rather than topological heads
Matt Mackall <mpm@selenic.com>
parents: 11169
diff changeset
941 ui.write(_('committed changeset %d:%s\n') % (int(ctx), ctx.hex()))
6935
03916abdfb64 Have verbose and debug flag print the changeset rev and hash when committing.
Gilles Moris <gilles.moris@free.fr>
parents: 6934
diff changeset
942 elif ui.verbose:
11173
5b48d819d5f9 commit: note new branch heads rather than topological heads
Matt Mackall <mpm@selenic.com>
parents: 11169
diff changeset
943 ui.write(_('committed changeset %d:%s\n') % (int(ctx), ctx))
6935
03916abdfb64 Have verbose and debug flag print the changeset rev and hash when committing.
Gilles Moris <gilles.moris@free.fr>
parents: 6934
diff changeset
944
1253
a45e717c61a8 Add rename/mv command.
Bryan O'Sullivan <bos@serpentine.com>
parents: 1250
diff changeset
945 def copy(ui, repo, *pats, **opts):
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
946 """mark files as copied for the next commit
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
947
6448
cd3d49ffc6f6 Consistently 1 space after full stops in command doc strings
Christian Ebert <blacktrash@gmx.net>
parents: 6442
diff changeset
948 Mark dest as having copies of source files. If dest is a
cd3d49ffc6f6 Consistently 1 space after full stops in command doc strings
Christian Ebert <blacktrash@gmx.net>
parents: 6442
diff changeset
949 directory, copies are put in that directory. If dest is a file,
7807
bd8f44638847 help: miscellaneous language fixes
timeless <timeless@gmail.com>
parents: 7765
diff changeset
950 the source must be a single file.
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
951
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
952 By default, this command copies the contents of files as they
8779
708938509732 Improve English for help text of many core hg commands.
timeless <timeless@gmail.com>
parents: 8778
diff changeset
953 exist in the working directory. If invoked with -A/--after, the
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
954 operation is recorded, but no copying is performed.
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
955
7807
bd8f44638847 help: miscellaneous language fixes
timeless <timeless@gmail.com>
parents: 7765
diff changeset
956 This command takes effect with the next commit. To undo a copy
11193
687c7d395f20 Use our custom hg reStructuredText role some more
Martin Geisler <mg@aragost.com>
parents: 11185
diff changeset
957 before that, see :hg:`revert`.
11177
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
958
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
959 Returns 0 on success, 1 if errors are encountered.
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
960 """
4914
9a2a73ea6135 repo locks: use True/False
Matt Mackall <mpm@selenic.com>
parents: 4906
diff changeset
961 wlock = repo.wlock(False)
4915
97b734fb9c6f Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents: 4914
diff changeset
962 try:
5610
2493a478f395 copy: handle rename internally
Matt Mackall <mpm@selenic.com>
parents: 5589
diff changeset
963 return cmdutil.copy(ui, repo, pats, opts)
4915
97b734fb9c6f Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents: 4914
diff changeset
964 finally:
8109
496ae1ea4698 switch lock releasing in the core from gc to explicit
Ronny Pfannschmidt <Ronny.Pfannschmidt@gmx.de>
parents: 8088
diff changeset
965 wlock.release()
363
ae96b7e1318d Add hg copy
mpm@selenic.com
parents: 355
diff changeset
966
6189
81cbb5dfdec0 Make hg debugancestor accept -R by making it an optionalrepo command.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 6188
diff changeset
967 def debugancestor(ui, repo, *args):
1262
325c07fd2ebd Add debugancestor command
mpm@selenic.com
parents: 1257
diff changeset
968 """find the ancestor revision of two revisions in a given index"""
6188
3b0c2b71e0d7 debugancestor: use *args instead of *opts, to not confuse with option dicts.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 6182
diff changeset
969 if len(args) == 3:
3b0c2b71e0d7 debugancestor: use *args instead of *opts, to not confuse with option dicts.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 6182
diff changeset
970 index, rev1, rev2 = args
6178
81afdd016867 debugancestor: make the index argument optional, defaulting to 00changelog.i
Bryan O'Sullivan <bos@serpentine.com>
parents: 6171
diff changeset
971 r = revlog.revlog(util.opener(os.getcwd(), audit=False), index)
6253
a7e3d0456d92 debugancestor: use repo.lookup when no revlog was specified
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 6243
diff changeset
972 lookup = r.lookup
6188
3b0c2b71e0d7 debugancestor: use *args instead of *opts, to not confuse with option dicts.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 6182
diff changeset
973 elif len(args) == 2:
6189
81cbb5dfdec0 Make hg debugancestor accept -R by making it an optionalrepo command.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 6188
diff changeset
974 if not repo:
12067
a4fbbe0fbc38 Lowercase error messages
Martin Geisler <mg@lazybytes.net>
parents: 11881
diff changeset
975 raise util.Abort(_("there is no Mercurial repository here "
6189
81cbb5dfdec0 Make hg debugancestor accept -R by making it an optionalrepo command.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 6188
diff changeset
976 "(.hg not found)"))
6188
3b0c2b71e0d7 debugancestor: use *args instead of *opts, to not confuse with option dicts.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 6182
diff changeset
977 rev1, rev2 = args
6178
81afdd016867 debugancestor: make the index argument optional, defaulting to 00changelog.i
Bryan O'Sullivan <bos@serpentine.com>
parents: 6171
diff changeset
978 r = repo.changelog
6253
a7e3d0456d92 debugancestor: use repo.lookup when no revlog was specified
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 6243
diff changeset
979 lookup = repo.lookup
6178
81afdd016867 debugancestor: make the index argument optional, defaulting to 00changelog.i
Bryan O'Sullivan <bos@serpentine.com>
parents: 6171
diff changeset
980 else:
81afdd016867 debugancestor: make the index argument optional, defaulting to 00changelog.i
Bryan O'Sullivan <bos@serpentine.com>
parents: 6171
diff changeset
981 raise util.Abort(_('either two or three arguments required'))
6253
a7e3d0456d92 debugancestor: use repo.lookup when no revlog was specified
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 6243
diff changeset
982 a = r.ancestor(lookup(rev1), lookup(rev2))
1262
325c07fd2ebd Add debugancestor command
mpm@selenic.com
parents: 1257
diff changeset
983 ui.write("%d:%s\n" % (r.rev(a), hex(a)))
325c07fd2ebd Add debugancestor command
mpm@selenic.com
parents: 1257
diff changeset
984
11337
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
985 def debugbuilddag(ui, repo, text,
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
986 mergeable_file=False,
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
987 appended_file=False,
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
988 overwritten_file=False,
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
989 new_file=False):
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
990 """builds a repo with a given dag from scratch in the current empty repo
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
991
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
992 Elements:
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
993
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
994 - "+n" is a linear run of n nodes based on the current default parent
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
995 - "." is a single node based on the current default parent
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
996 - "$" resets the default parent to null (implied at the start);
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
997 otherwise the default parent is always the last node created
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
998 - "<p" sets the default parent to the backref p
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
999 - "*p" is a fork at parent p, which is a backref
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
1000 - "*p1/p2" is a merge of parents p1 and p2, which are backrefs
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
1001 - "/p2" is a merge of the preceding node and p2
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
1002 - ":tag" defines a local tag for the preceding node
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
1003 - "@branch" sets the named branch for subsequent nodes
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
1004 - "!command" runs the command using your shell
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
1005 - "!!my command\\n" is like "!", but to the end of the line
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
1006 - "#...\\n" is a comment up to the end of the line
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
1007
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
1008 Whitespace between the above elements is ignored.
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
1009
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
1010 A backref is either
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
1011
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
1012 - a number n, which references the node curr-n, where curr is the current
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
1013 node, or
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
1014 - the name of a local tag you placed earlier using ":tag", or
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
1015 - empty to denote the default parent.
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
1016
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
1017 All string valued-elements are either strictly alphanumeric, or must
11881
2da0cf99b642 debugbuilddag: escape backslash properly in help string
Martin Geisler <mg@lazybytes.net>
parents: 11877
diff changeset
1018 be enclosed in double quotes ("..."), with "\\" as escape character.
11337
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
1019
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
1020 Note that the --overwritten-file and --appended-file options imply the
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
1021 use of "HGMERGE=internal:local" during DAG buildup.
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
1022 """
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
1023
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
1024 if not (mergeable_file or appended_file or overwritten_file or new_file):
11342
aecabad8dd7a commands: get rid of generic exception in debugbuilddag
Martin Geisler <mg@aragost.com>
parents: 11338
diff changeset
1025 raise util.Abort(_('need at least one of -m, -a, -o, -n'))
11337
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
1026
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
1027 if len(repo.changelog) > 0:
11342
aecabad8dd7a commands: get rid of generic exception in debugbuilddag
Martin Geisler <mg@aragost.com>
parents: 11338
diff changeset
1028 raise util.Abort(_('repository is not empty'))
11337
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
1029
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
1030 if overwritten_file or appended_file:
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
1031 # we don't want to fail in merges during buildup
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
1032 os.environ['HGMERGE'] = 'internal:local'
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
1033
11686
fc360de66217 debugbuilddag: build repository content in binary mode
Patrick Mezard <pmezard@gmail.com>
parents: 11644
diff changeset
1034 def writefile(fname, text, fmode="wb"):
11337
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
1035 f = open(fname, fmode)
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
1036 try:
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
1037 f.write(text)
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
1038 finally:
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
1039 f.close()
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
1040
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
1041 if mergeable_file:
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
1042 linesperrev = 2
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
1043 # determine number of revs in DAG
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
1044 n = 0
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
1045 for type, data in dagparser.parsedag(text):
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
1046 if type == 'n':
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
1047 n += 1
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
1048 # make a file with k lines per rev
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
1049 writefile("mf", "\n".join(str(i) for i in xrange(0, n * linesperrev))
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
1050 + "\n")
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
1051
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
1052 at = -1
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
1053 atbranch = 'default'
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
1054 for type, data in dagparser.parsedag(text):
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
1055 if type == 'n':
11338
285bcf40e04b commands: format is a Python2.6 function
Martin Geisler <mg@aragost.com>
parents: 11337
diff changeset
1056 ui.status('node %s\n' % str(data))
11337
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
1057 id, ps = data
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
1058 p1 = ps[0]
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
1059 if p1 != at:
12726
61c0df2b089a update: use revsingle to enable use of revsets as update targets (issue1993)
Augie Fackler <durin42@gmail.com>
parents: 12705
diff changeset
1060 update(ui, repo, node=str(p1), clean=True)
11337
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
1061 at = p1
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
1062 if repo.dirstate.branch() != atbranch:
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
1063 branch(ui, repo, atbranch, force=True)
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
1064 if len(ps) > 1:
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
1065 p2 = ps[1]
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
1066 merge(ui, repo, node=p2)
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
1067
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
1068 if mergeable_file:
11686
fc360de66217 debugbuilddag: build repository content in binary mode
Patrick Mezard <pmezard@gmail.com>
parents: 11644
diff changeset
1069 f = open("mf", "rb+")
11337
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
1070 try:
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
1071 lines = f.read().split("\n")
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
1072 lines[id * linesperrev] += " r%i" % id
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
1073 f.seek(0)
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
1074 f.write("\n".join(lines))
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
1075 finally:
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
1076 f.close()
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
1077
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
1078 if appended_file:
11686
fc360de66217 debugbuilddag: build repository content in binary mode
Patrick Mezard <pmezard@gmail.com>
parents: 11644
diff changeset
1079 writefile("af", "r%i\n" % id, "ab")
11337
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
1080
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
1081 if overwritten_file:
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
1082 writefile("of", "r%i\n" % id)
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
1083
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
1084 if new_file:
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
1085 writefile("nf%i" % id, "r%i\n" % id)
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
1086
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
1087 commit(ui, repo, addremove=True, message="r%i" % id, date=(id, 0))
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
1088 at = id
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
1089 elif type == 'l':
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
1090 id, name = data
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
1091 ui.status('tag %s\n' % name)
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
1092 tag(ui, repo, name, local=True)
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
1093 elif type == 'a':
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
1094 ui.status('branch %s\n' % data)
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
1095 atbranch = data
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
1096 elif type in 'cC':
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
1097 r = util.system(data, cwd=repo.root)
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
1098 if r:
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
1099 desc, r = util.explain_exit(r)
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
1100 raise util.Abort(_('%s command %s') % (data, desc))
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
1101
7880
7ca2be800804 add debugcommands command: an easy to parse command + option index
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 7875
diff changeset
1102 def debugcommands(ui, cmd='', *args):
11177
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
1103 """list all available commands and options"""
8209
a1a5a57efe90 replace util.sort with sorted built-in
Matt Mackall <mpm@selenic.com>
parents: 8190
diff changeset
1104 for cmd, vals in sorted(table.iteritems()):
7880
7ca2be800804 add debugcommands command: an easy to parse command + option index
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 7875
diff changeset
1105 cmd = cmd.split('|')[0].strip('^')
7ca2be800804 add debugcommands command: an easy to parse command + option index
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 7875
diff changeset
1106 opts = ', '.join([i[1] for i in vals[1]])
7ca2be800804 add debugcommands command: an easy to parse command + option index
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 7875
diff changeset
1107 ui.write('%s: %s\n' % (cmd, opts))
7ca2be800804 add debugcommands command: an easy to parse command + option index
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 7875
diff changeset
1108
2034
5e7aff1b6ae1 add --options to debugcomplete and change bash_completion to use it
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2033
diff changeset
1109 def debugcomplete(ui, cmd='', **opts):
1887
913397c27cd8 new command debugcomplete
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1875
diff changeset
1110 """returns the completion list associated with the given command"""
2034
5e7aff1b6ae1 add --options to debugcomplete and change bash_completion to use it
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2033
diff changeset
1111
7131
23bd7383891c commands: optional options where possible
Alexander Solovyov <piranha@piranha.org.ua>
parents: 7126
diff changeset
1112 if opts.get('options'):
2034
5e7aff1b6ae1 add --options to debugcomplete and change bash_completion to use it
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2033
diff changeset
1113 options = []
5e7aff1b6ae1 add --options to debugcomplete and change bash_completion to use it
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2033
diff changeset
1114 otables = [globalopts]
5e7aff1b6ae1 add --options to debugcomplete and change bash_completion to use it
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2033
diff changeset
1115 if cmd:
7213
b4c035057d34 findcmd: have dispatch look up strict flag
Matt Mackall <mpm@selenic.com>
parents: 7212
diff changeset
1116 aliases, entry = cmdutil.findcmd(cmd, table, False)
2034
5e7aff1b6ae1 add --options to debugcomplete and change bash_completion to use it
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2033
diff changeset
1117 otables.append(entry[1])
5e7aff1b6ae1 add --options to debugcomplete and change bash_completion to use it
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2033
diff changeset
1118 for t in otables:
5e7aff1b6ae1 add --options to debugcomplete and change bash_completion to use it
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2033
diff changeset
1119 for o in t:
10958
021d5ac3bec0 debugcomplete: don't list deprecated options
Matt Mackall <mpm@selenic.com>
parents: 10957
diff changeset
1120 if "(DEPRECATED)" in o[3]:
021d5ac3bec0 debugcomplete: don't list deprecated options
Matt Mackall <mpm@selenic.com>
parents: 10957
diff changeset
1121 continue
2034
5e7aff1b6ae1 add --options to debugcomplete and change bash_completion to use it
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2033
diff changeset
1122 if o[0]:
5e7aff1b6ae1 add --options to debugcomplete and change bash_completion to use it
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2033
diff changeset
1123 options.append('-%s' % o[0])
5e7aff1b6ae1 add --options to debugcomplete and change bash_completion to use it
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2033
diff changeset
1124 options.append('--%s' % o[1])
5e7aff1b6ae1 add --options to debugcomplete and change bash_completion to use it
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2033
diff changeset
1125 ui.write("%s\n" % "\n".join(options))
5e7aff1b6ae1 add --options to debugcomplete and change bash_completion to use it
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2033
diff changeset
1126 return
5e7aff1b6ae1 add --options to debugcomplete and change bash_completion to use it
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2033
diff changeset
1127
7509
62e5d41b0a8b Make debugcomplete -v print aliases as well as commands
Brendan Cully <brendan@kublai.com>
parents: 7449
diff changeset
1128 cmdlist = cmdutil.findpossible(cmd, table)
62e5d41b0a8b Make debugcomplete -v print aliases as well as commands
Brendan Cully <brendan@kublai.com>
parents: 7449
diff changeset
1129 if ui.verbose:
62e5d41b0a8b Make debugcomplete -v print aliases as well as commands
Brendan Cully <brendan@kublai.com>
parents: 7449
diff changeset
1130 cmdlist = [' '.join(c[0]) for c in cmdlist.values()]
8209
a1a5a57efe90 replace util.sort with sorted built-in
Matt Mackall <mpm@selenic.com>
parents: 8190
diff changeset
1131 ui.write("%s\n" % "\n".join(sorted(cmdlist)))
1887
913397c27cd8 new command debugcomplete
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1875
diff changeset
1132
5741
8ee0de123989 add debugfsinfo to check fs capabilities
Matt Mackall <mpm@selenic.com>
parents: 5716
diff changeset
1133 def debugfsinfo(ui, path = "."):
11177
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
1134 """show information detected about current filesystem"""
9031
3b76321aa0de compat: use open() instead of file() everywhere
Alejandro Santos <alejolp@alejolp.com>
parents: 9012
diff changeset
1135 open('.debugfsinfo', 'w').write('')
5741
8ee0de123989 add debugfsinfo to check fs capabilities
Matt Mackall <mpm@selenic.com>
parents: 5716
diff changeset
1136 ui.write('exec: %s\n' % (util.checkexec(path) and 'yes' or 'no'))
8ee0de123989 add debugfsinfo to check fs capabilities
Matt Mackall <mpm@selenic.com>
parents: 5716
diff changeset
1137 ui.write('symlink: %s\n' % (util.checklink(path) and 'yes' or 'no'))
6746
1dca460e7d1e rename checkfolding to checkcase
Matt Mackall <mpm@selenic.com>
parents: 6743
diff changeset
1138 ui.write('case-sensitive: %s\n' % (util.checkcase('.debugfsinfo')
5741
8ee0de123989 add debugfsinfo to check fs capabilities
Matt Mackall <mpm@selenic.com>
parents: 5716
diff changeset
1139 and 'yes' or 'no'))
8ee0de123989 add debugfsinfo to check fs capabilities
Matt Mackall <mpm@selenic.com>
parents: 5716
diff changeset
1140 os.unlink('.debugfsinfo')
8ee0de123989 add debugfsinfo to check fs capabilities
Matt Mackall <mpm@selenic.com>
parents: 5716
diff changeset
1141
6747
f6c00b17387c use repo[changeid] to get a changectx
Matt Mackall <mpm@selenic.com>
parents: 6746
diff changeset
1142 def debugrebuildstate(ui, repo, rev="tip"):
1755
a8f7791e3680 add 'debugrebuildstate' to rebuild the dirstate from a given revision
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1754
diff changeset
1143 """rebuild the dirstate as it would look like for the given revision"""
12925
6eab8f0df2ca commands: add revset support to most commands
Matt Mackall <mpm@selenic.com>
parents: 12918
diff changeset
1144 ctx = cmdutil.revsingle(repo, rev)
1760
13f8e068d13c fix typo in debugrebuildstate
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1755
diff changeset
1145 wlock = repo.wlock()
4915
97b734fb9c6f Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents: 4914
diff changeset
1146 try:
6747
f6c00b17387c use repo[changeid] to get a changectx
Matt Mackall <mpm@selenic.com>
parents: 6746
diff changeset
1147 repo.dirstate.rebuild(ctx.node(), ctx.manifest())
4915
97b734fb9c6f Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents: 4914
diff changeset
1148 finally:
8109
496ae1ea4698 switch lock releasing in the core from gc to explicit
Ronny Pfannschmidt <Ronny.Pfannschmidt@gmx.de>
parents: 8088
diff changeset
1149 wlock.release()
1755
a8f7791e3680 add 'debugrebuildstate' to rebuild the dirstate from a given revision
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1754
diff changeset
1150
596
9a8daeff0ffa A bunch of parsing/help updates
mpm@selenic.com
parents: 593
diff changeset
1151 def debugcheckstate(ui, repo):
9a8daeff0ffa A bunch of parsing/help updates
mpm@selenic.com
parents: 593
diff changeset
1152 """validate the correctness of the current dirstate"""
460
6409d9a0df43 add dirstate debugging commands
mpm@selenic.com
parents: 452
diff changeset
1153 parent1, parent2 = repo.dirstate.parents()
6747
f6c00b17387c use repo[changeid] to get a changectx
Matt Mackall <mpm@selenic.com>
parents: 6746
diff changeset
1154 m1 = repo[parent1].manifest()
f6c00b17387c use repo[changeid] to get a changectx
Matt Mackall <mpm@selenic.com>
parents: 6746
diff changeset
1155 m2 = repo[parent2].manifest()
460
6409d9a0df43 add dirstate debugging commands
mpm@selenic.com
parents: 452
diff changeset
1156 errors = 0
4906
30847b8af7ca dirstate: add __contains__ and make __getitem__ more useful
Matt Mackall <mpm@selenic.com>
parents: 4904
diff changeset
1157 for f in repo.dirstate:
30847b8af7ca dirstate: add __contains__ and make __getitem__ more useful
Matt Mackall <mpm@selenic.com>
parents: 4904
diff changeset
1158 state = repo.dirstate[f]
460
6409d9a0df43 add dirstate debugging commands
mpm@selenic.com
parents: 452
diff changeset
1159 if state in "nr" and f not in m1:
1402
9d2c2e6b32b5 i18n part2: use '_' for all strings who are part of the user interface
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1400
diff changeset
1160 ui.warn(_("%s in state %s, but not in manifest1\n") % (f, state))
460
6409d9a0df43 add dirstate debugging commands
mpm@selenic.com
parents: 452
diff changeset
1161 errors += 1
6409d9a0df43 add dirstate debugging commands
mpm@selenic.com
parents: 452
diff changeset
1162 if state in "a" and f in m1:
1402
9d2c2e6b32b5 i18n part2: use '_' for all strings who are part of the user interface
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1400
diff changeset
1163 ui.warn(_("%s in state %s, but also in manifest1\n") % (f, state))
460
6409d9a0df43 add dirstate debugging commands
mpm@selenic.com
parents: 452
diff changeset
1164 errors += 1
6409d9a0df43 add dirstate debugging commands
mpm@selenic.com
parents: 452
diff changeset
1165 if state in "m" and f not in m1 and f not in m2:
1402
9d2c2e6b32b5 i18n part2: use '_' for all strings who are part of the user interface
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1400
diff changeset
1166 ui.warn(_("%s in state %s, but not in either manifest\n") %
582
df8a5a0098d4 Remove all remaining print statements
mpm@selenic.com
parents: 580
diff changeset
1167 (f, state))
460
6409d9a0df43 add dirstate debugging commands
mpm@selenic.com
parents: 452
diff changeset
1168 errors += 1
6409d9a0df43 add dirstate debugging commands
mpm@selenic.com
parents: 452
diff changeset
1169 for f in m1:
4906
30847b8af7ca dirstate: add __contains__ and make __getitem__ more useful
Matt Mackall <mpm@selenic.com>
parents: 4904
diff changeset
1170 state = repo.dirstate[f]
460
6409d9a0df43 add dirstate debugging commands
mpm@selenic.com
parents: 452
diff changeset
1171 if state not in "nrm":
1402
9d2c2e6b32b5 i18n part2: use '_' for all strings who are part of the user interface
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1400
diff changeset
1172 ui.warn(_("%s in manifest1, but listed as state %s") % (f, state))
460
6409d9a0df43 add dirstate debugging commands
mpm@selenic.com
parents: 452
diff changeset
1173 errors += 1
6409d9a0df43 add dirstate debugging commands
mpm@selenic.com
parents: 452
diff changeset
1174 if errors:
1602
fb4149eebdd4 strictly adher to 80 chars per line
Muli Ben-Yehuda <mulix@mulix.org>
parents: 1601
diff changeset
1175 error = _(".hg/dirstate inconsistent with current parent's manifest")
fb4149eebdd4 strictly adher to 80 chars per line
Muli Ben-Yehuda <mulix@mulix.org>
parents: 1601
diff changeset
1176 raise util.Abort(error)
460
6409d9a0df43 add dirstate debugging commands
mpm@selenic.com
parents: 452
diff changeset
1177
3553
e1508621e9ef add --untrusted to showconfig
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3521
diff changeset
1178 def showconfig(ui, repo, *values, **opts):
2410
1e80d47b8581 debugconfig: allow to print by section and exact item name
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2407
diff changeset
1179 """show combined config settings from all hgrc files
1e80d47b8581 debugconfig: allow to print by section and exact item name
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2407
diff changeset
1180
8664
f265106ccb53 commands: expand "arg" -> "argument" in showconfig help strings
Martin Geisler <mg@lazybytes.net>
parents: 8636
diff changeset
1181 With no arguments, print names and values of all config items.
f265106ccb53 commands: expand "arg" -> "argument" in showconfig help strings
Martin Geisler <mg@lazybytes.net>
parents: 8636
diff changeset
1182
f265106ccb53 commands: expand "arg" -> "argument" in showconfig help strings
Martin Geisler <mg@lazybytes.net>
parents: 8636
diff changeset
1183 With one argument of the form section.name, print just the value
f265106ccb53 commands: expand "arg" -> "argument" in showconfig help strings
Martin Geisler <mg@lazybytes.net>
parents: 8636
diff changeset
1184 of that config item.
f265106ccb53 commands: expand "arg" -> "argument" in showconfig help strings
Martin Geisler <mg@lazybytes.net>
parents: 8636
diff changeset
1185
f265106ccb53 commands: expand "arg" -> "argument" in showconfig help strings
Martin Geisler <mg@lazybytes.net>
parents: 8636
diff changeset
1186 With multiple arguments, print names and values of all config
f265106ccb53 commands: expand "arg" -> "argument" in showconfig help strings
Martin Geisler <mg@lazybytes.net>
parents: 8636
diff changeset
1187 items with matching section names.
8279
602ed4982f36 commands: describe --debug in showconfig help
Martin Geisler <mg@lazybytes.net>
parents: 8277
diff changeset
1188
8779
708938509732 Improve English for help text of many core hg commands.
timeless <timeless@gmail.com>
parents: 8778
diff changeset
1189 With --debug, the source (filename and line number) is printed
708938509732 Improve English for help text of many core hg commands.
timeless <timeless@gmail.com>
parents: 8778
diff changeset
1190 for each config item.
11177
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
1191
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
1192 Returns 0 on success.
8279
602ed4982f36 commands: describe --debug in showconfig help
Martin Geisler <mg@lazybytes.net>
parents: 8277
diff changeset
1193 """
2410
1e80d47b8581 debugconfig: allow to print by section and exact item name
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2407
diff changeset
1194
11048
9e643a0c3278 showconfig: show rc paths with --debug
Mads Kiilerich <mads@kiilerich.com>
parents: 11009
diff changeset
1195 for f in util.rcpath():
9e643a0c3278 showconfig: show rc paths with --debug
Mads Kiilerich <mads@kiilerich.com>
parents: 11009
diff changeset
1196 ui.debug(_('read config from: %s\n') % f)
3553
e1508621e9ef add --untrusted to showconfig
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3521
diff changeset
1197 untrusted = bool(opts.get('untrusted'))
2410
1e80d47b8581 debugconfig: allow to print by section and exact item name
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2407
diff changeset
1198 if values:
12697
14853ca7e11b showconfig: don't accept multiple sections and one config item
Brodie Rao <brodie@bitheap.org>
parents: 12689
diff changeset
1199 sections = [v for v in values if '.' not in v]
14853ca7e11b showconfig: don't accept multiple sections and one config item
Brodie Rao <brodie@bitheap.org>
parents: 12689
diff changeset
1200 items = [v for v in values if '.' in v]
14853ca7e11b showconfig: don't accept multiple sections and one config item
Brodie Rao <brodie@bitheap.org>
parents: 12689
diff changeset
1201 if len(items) > 1 or items and sections:
2410
1e80d47b8581 debugconfig: allow to print by section and exact item name
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2407
diff changeset
1202 raise util.Abort(_('only one config item permitted'))
3553
e1508621e9ef add --untrusted to showconfig
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3521
diff changeset
1203 for section, name, value in ui.walkconfig(untrusted=untrusted):
13576
edd06611a7c6 ui: yield unchanged values in walkconfig
Martin Geisler <mg@aragost.com>
parents: 13568
diff changeset
1204 value = str(value).replace('\n', '\\n')
2410
1e80d47b8581 debugconfig: allow to print by section and exact item name
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2407
diff changeset
1205 sectname = section + '.' + name
1e80d47b8581 debugconfig: allow to print by section and exact item name
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2407
diff changeset
1206 if values:
1e80d47b8581 debugconfig: allow to print by section and exact item name
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2407
diff changeset
1207 for v in values:
1e80d47b8581 debugconfig: allow to print by section and exact item name
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2407
diff changeset
1208 if v == section:
8182
b97abc7c1135 showconfig: show source file and line with --debug
Matt Mackall <mpm@selenic.com>
parents: 8152
diff changeset
1209 ui.debug('%s: ' %
b97abc7c1135 showconfig: show source file and line with --debug
Matt Mackall <mpm@selenic.com>
parents: 8152
diff changeset
1210 ui.configsource(section, name, untrusted))
2410
1e80d47b8581 debugconfig: allow to print by section and exact item name
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2407
diff changeset
1211 ui.write('%s=%s\n' % (sectname, value))
1e80d47b8581 debugconfig: allow to print by section and exact item name
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2407
diff changeset
1212 elif v == sectname:
8182
b97abc7c1135 showconfig: show source file and line with --debug
Matt Mackall <mpm@selenic.com>
parents: 8152
diff changeset
1213 ui.debug('%s: ' %
b97abc7c1135 showconfig: show source file and line with --debug
Matt Mackall <mpm@selenic.com>
parents: 8152
diff changeset
1214 ui.configsource(section, name, untrusted))
2410
1e80d47b8581 debugconfig: allow to print by section and exact item name
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2407
diff changeset
1215 ui.write(value, '\n')
1e80d47b8581 debugconfig: allow to print by section and exact item name
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2407
diff changeset
1216 else:
8182
b97abc7c1135 showconfig: show source file and line with --debug
Matt Mackall <mpm@selenic.com>
parents: 8152
diff changeset
1217 ui.debug('%s: ' %
b97abc7c1135 showconfig: show source file and line with --debug
Matt Mackall <mpm@selenic.com>
parents: 8152
diff changeset
1218 ui.configsource(section, name, untrusted))
2410
1e80d47b8581 debugconfig: allow to print by section and exact item name
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2407
diff changeset
1219 ui.write('%s=%s\n' % (sectname, value))
1028
25e7ea0f2cff Add commands.debugconfig.
Bryan O'Sullivan <bos@serpentine.com>
parents: 989
diff changeset
1220
13723
e615765fdcc7 wireproto: add known([id]) function
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 13720
diff changeset
1221 def debugknown(ui, repopath, *ids, **opts):
e615765fdcc7 wireproto: add known([id]) function
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 13720
diff changeset
1222 """test whether node ids are known to a repo
e615765fdcc7 wireproto: add known([id]) function
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 13720
diff changeset
1223
e615765fdcc7 wireproto: add known([id]) function
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 13720
diff changeset
1224 Every ID must be a full-length hex node id string. Returns a list of 0s and 1s
e615765fdcc7 wireproto: add known([id]) function
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 13720
diff changeset
1225 indicating unknown/known.
e615765fdcc7 wireproto: add known([id]) function
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 13720
diff changeset
1226 """
e615765fdcc7 wireproto: add known([id]) function
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 13720
diff changeset
1227 repo = hg.repository(ui, repopath)
e615765fdcc7 wireproto: add known([id]) function
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 13720
diff changeset
1228 if not repo.capable('known'):
e615765fdcc7 wireproto: add known([id]) function
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 13720
diff changeset
1229 raise util.Abort("known() not supported by target repository")
e615765fdcc7 wireproto: add known([id]) function
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 13720
diff changeset
1230 flags = repo.known([bin(s) for s in ids])
e615765fdcc7 wireproto: add known([id]) function
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 13720
diff changeset
1231 ui.write("%s\n" % ("".join([f and "1" or "0" for f in flags])))
e615765fdcc7 wireproto: add known([id]) function
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 13720
diff changeset
1232
13724
fe57046e9448 commands: add debugbundle command
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 13723
diff changeset
1233 def debugbundle(ui, bundlepath, all=None, **opts):
fe57046e9448 commands: add debugbundle command
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 13723
diff changeset
1234 """lists the contents of a bundle"""
fe57046e9448 commands: add debugbundle command
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 13723
diff changeset
1235 f = url.open(ui, bundlepath)
fe57046e9448 commands: add debugbundle command
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 13723
diff changeset
1236 try:
13747
cede00420e1e code indentation fixes
Patrick Mezard <pmezard@gmail.com>
parents: 13741
diff changeset
1237 gen = changegroup.readbundle(f, bundlepath)
cede00420e1e code indentation fixes
Patrick Mezard <pmezard@gmail.com>
parents: 13741
diff changeset
1238 if all:
cede00420e1e code indentation fixes
Patrick Mezard <pmezard@gmail.com>
parents: 13741
diff changeset
1239 ui.write("format: id, p1, p2, cset, len(delta)\n")
cede00420e1e code indentation fixes
Patrick Mezard <pmezard@gmail.com>
parents: 13741
diff changeset
1240
cede00420e1e code indentation fixes
Patrick Mezard <pmezard@gmail.com>
parents: 13741
diff changeset
1241 def showchunks(named):
cede00420e1e code indentation fixes
Patrick Mezard <pmezard@gmail.com>
parents: 13741
diff changeset
1242 ui.write("\n%s\n" % named)
13724
fe57046e9448 commands: add debugbundle command
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 13723
diff changeset
1243 while 1:
fe57046e9448 commands: add debugbundle command
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 13723
diff changeset
1244 chunkdata = gen.parsechunk()
fe57046e9448 commands: add debugbundle command
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 13723
diff changeset
1245 if not chunkdata:
fe57046e9448 commands: add debugbundle command
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 13723
diff changeset
1246 break
fe57046e9448 commands: add debugbundle command
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 13723
diff changeset
1247 node = chunkdata['node']
13747
cede00420e1e code indentation fixes
Patrick Mezard <pmezard@gmail.com>
parents: 13741
diff changeset
1248 p1 = chunkdata['p1']
cede00420e1e code indentation fixes
Patrick Mezard <pmezard@gmail.com>
parents: 13741
diff changeset
1249 p2 = chunkdata['p2']
cede00420e1e code indentation fixes
Patrick Mezard <pmezard@gmail.com>
parents: 13741
diff changeset
1250 cs = chunkdata['cs']
cede00420e1e code indentation fixes
Patrick Mezard <pmezard@gmail.com>
parents: 13741
diff changeset
1251 delta = chunkdata['data']
cede00420e1e code indentation fixes
Patrick Mezard <pmezard@gmail.com>
parents: 13741
diff changeset
1252 ui.write("%s %s %s %s %s\n" %
cede00420e1e code indentation fixes
Patrick Mezard <pmezard@gmail.com>
parents: 13741
diff changeset
1253 (hex(node), hex(p1), hex(p2),
cede00420e1e code indentation fixes
Patrick Mezard <pmezard@gmail.com>
parents: 13741
diff changeset
1254 hex(cs), len(delta)))
cede00420e1e code indentation fixes
Patrick Mezard <pmezard@gmail.com>
parents: 13741
diff changeset
1255
cede00420e1e code indentation fixes
Patrick Mezard <pmezard@gmail.com>
parents: 13741
diff changeset
1256 showchunks("changelog")
cede00420e1e code indentation fixes
Patrick Mezard <pmezard@gmail.com>
parents: 13741
diff changeset
1257 showchunks("manifest")
cede00420e1e code indentation fixes
Patrick Mezard <pmezard@gmail.com>
parents: 13741
diff changeset
1258 while 1:
cede00420e1e code indentation fixes
Patrick Mezard <pmezard@gmail.com>
parents: 13741
diff changeset
1259 fname = gen.chunk()
cede00420e1e code indentation fixes
Patrick Mezard <pmezard@gmail.com>
parents: 13741
diff changeset
1260 if not fname:
cede00420e1e code indentation fixes
Patrick Mezard <pmezard@gmail.com>
parents: 13741
diff changeset
1261 break
cede00420e1e code indentation fixes
Patrick Mezard <pmezard@gmail.com>
parents: 13741
diff changeset
1262 showchunks(fname)
cede00420e1e code indentation fixes
Patrick Mezard <pmezard@gmail.com>
parents: 13741
diff changeset
1263 else:
cede00420e1e code indentation fixes
Patrick Mezard <pmezard@gmail.com>
parents: 13741
diff changeset
1264 while 1:
cede00420e1e code indentation fixes
Patrick Mezard <pmezard@gmail.com>
parents: 13741
diff changeset
1265 chunkdata = gen.parsechunk()
cede00420e1e code indentation fixes
Patrick Mezard <pmezard@gmail.com>
parents: 13741
diff changeset
1266 if not chunkdata:
cede00420e1e code indentation fixes
Patrick Mezard <pmezard@gmail.com>
parents: 13741
diff changeset
1267 break
cede00420e1e code indentation fixes
Patrick Mezard <pmezard@gmail.com>
parents: 13741
diff changeset
1268 node = chunkdata['node']
cede00420e1e code indentation fixes
Patrick Mezard <pmezard@gmail.com>
parents: 13741
diff changeset
1269 ui.write("%s\n" % hex(node))
13724
fe57046e9448 commands: add debugbundle command
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 13723
diff changeset
1270 finally:
fe57046e9448 commands: add debugbundle command
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 13723
diff changeset
1271 f.close()
fe57046e9448 commands: add debugbundle command
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 13723
diff changeset
1272
13741
b51bf961b3cb wireproto: add getbundle() function
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 13727
diff changeset
1273 def debuggetbundle(ui, repopath, bundlepath, head=None, common=None, **opts):
b51bf961b3cb wireproto: add getbundle() function
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 13727
diff changeset
1274 """retrieves a bundle from a repo
b51bf961b3cb wireproto: add getbundle() function
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 13727
diff changeset
1275
b51bf961b3cb wireproto: add getbundle() function
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 13727
diff changeset
1276 Every ID must be a full-length hex node id string. Saves the bundle to the
b51bf961b3cb wireproto: add getbundle() function
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 13727
diff changeset
1277 given file.
b51bf961b3cb wireproto: add getbundle() function
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 13727
diff changeset
1278 """
b51bf961b3cb wireproto: add getbundle() function
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 13727
diff changeset
1279 repo = hg.repository(ui, repopath)
b51bf961b3cb wireproto: add getbundle() function
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 13727
diff changeset
1280 if not repo.capable('getbundle'):
b51bf961b3cb wireproto: add getbundle() function
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 13727
diff changeset
1281 raise util.Abort("getbundle() not supported by target repository")
b51bf961b3cb wireproto: add getbundle() function
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 13727
diff changeset
1282 args = {}
b51bf961b3cb wireproto: add getbundle() function
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 13727
diff changeset
1283 if common:
b51bf961b3cb wireproto: add getbundle() function
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 13727
diff changeset
1284 args['common'] = [bin(s) for s in common]
b51bf961b3cb wireproto: add getbundle() function
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 13727
diff changeset
1285 if head:
b51bf961b3cb wireproto: add getbundle() function
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 13727
diff changeset
1286 args['heads'] = [bin(s) for s in head]
b51bf961b3cb wireproto: add getbundle() function
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 13727
diff changeset
1287 bundle = repo.getbundle('debug', **args)
b51bf961b3cb wireproto: add getbundle() function
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 13727
diff changeset
1288
b51bf961b3cb wireproto: add getbundle() function
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 13727
diff changeset
1289 bundletype = opts.get('type', 'bzip2').lower()
b51bf961b3cb wireproto: add getbundle() function
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 13727
diff changeset
1290 btypes = {'none': 'HG10UN', 'bzip2': 'HG10BZ', 'gzip': 'HG10GZ'}
b51bf961b3cb wireproto: add getbundle() function
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 13727
diff changeset
1291 bundletype = btypes.get(bundletype)
b51bf961b3cb wireproto: add getbundle() function
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 13727
diff changeset
1292 if bundletype not in changegroup.bundletypes:
b51bf961b3cb wireproto: add getbundle() function
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 13727
diff changeset
1293 raise util.Abort(_('unknown bundle type specified with --type'))
b51bf961b3cb wireproto: add getbundle() function
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 13727
diff changeset
1294 changegroup.writebundle(bundle, bundlepath, bundletype)
b51bf961b3cb wireproto: add getbundle() function
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 13727
diff changeset
1295
11371
4c8842ee97ff pushkey: add debugpushkey command for testing
Matt Mackall <mpm@selenic.com>
parents: 11353
diff changeset
1296 def debugpushkey(ui, repopath, namespace, *keyinfo):
4c8842ee97ff pushkey: add debugpushkey command for testing
Matt Mackall <mpm@selenic.com>
parents: 11353
diff changeset
1297 '''access the pushkey key/value protocol
4c8842ee97ff pushkey: add debugpushkey command for testing
Matt Mackall <mpm@selenic.com>
parents: 11353
diff changeset
1298
4c8842ee97ff pushkey: add debugpushkey command for testing
Matt Mackall <mpm@selenic.com>
parents: 11353
diff changeset
1299 With two args, list the keys in the given namespace.
4c8842ee97ff pushkey: add debugpushkey command for testing
Matt Mackall <mpm@selenic.com>
parents: 11353
diff changeset
1300
4c8842ee97ff pushkey: add debugpushkey command for testing
Matt Mackall <mpm@selenic.com>
parents: 11353
diff changeset
1301 With five args, set a key to new if it currently is set to old.
4c8842ee97ff pushkey: add debugpushkey command for testing
Matt Mackall <mpm@selenic.com>
parents: 11353
diff changeset
1302 Reports success or failure.
4c8842ee97ff pushkey: add debugpushkey command for testing
Matt Mackall <mpm@selenic.com>
parents: 11353
diff changeset
1303 '''
4c8842ee97ff pushkey: add debugpushkey command for testing
Matt Mackall <mpm@selenic.com>
parents: 11353
diff changeset
1304
4c8842ee97ff pushkey: add debugpushkey command for testing
Matt Mackall <mpm@selenic.com>
parents: 11353
diff changeset
1305 target = hg.repository(ui, repopath)
4c8842ee97ff pushkey: add debugpushkey command for testing
Matt Mackall <mpm@selenic.com>
parents: 11353
diff changeset
1306 if keyinfo:
4c8842ee97ff pushkey: add debugpushkey command for testing
Matt Mackall <mpm@selenic.com>
parents: 11353
diff changeset
1307 key, old, new = keyinfo
4c8842ee97ff pushkey: add debugpushkey command for testing
Matt Mackall <mpm@selenic.com>
parents: 11353
diff changeset
1308 r = target.pushkey(namespace, key, old, new)
4c8842ee97ff pushkey: add debugpushkey command for testing
Matt Mackall <mpm@selenic.com>
parents: 11353
diff changeset
1309 ui.status(str(r) + '\n')
12964
34034e55424f check-code: using and/or/not as a function is bad style
Martin Geisler <mg@lazybytes.net>
parents: 12925
diff changeset
1310 return not r
11371
4c8842ee97ff pushkey: add debugpushkey command for testing
Matt Mackall <mpm@selenic.com>
parents: 11353
diff changeset
1311 else:
4c8842ee97ff pushkey: add debugpushkey command for testing
Matt Mackall <mpm@selenic.com>
parents: 11353
diff changeset
1312 for k, v in target.listkeys(namespace).iteritems():
4c8842ee97ff pushkey: add debugpushkey command for testing
Matt Mackall <mpm@selenic.com>
parents: 11353
diff changeset
1313 ui.write("%s\t%s\n" % (k.encode('string-escape'),
4c8842ee97ff pushkey: add debugpushkey command for testing
Matt Mackall <mpm@selenic.com>
parents: 11353
diff changeset
1314 v.encode('string-escape')))
4c8842ee97ff pushkey: add debugpushkey command for testing
Matt Mackall <mpm@selenic.com>
parents: 11353
diff changeset
1315
11276
f28b58e35768 revset: add a debugrevspec command
Matt Mackall <mpm@selenic.com>
parents: 11273
diff changeset
1316 def debugrevspec(ui, repo, expr):
f28b58e35768 revset: add a debugrevspec command
Matt Mackall <mpm@selenic.com>
parents: 11273
diff changeset
1317 '''parse and apply a revision specification'''
f28b58e35768 revset: add a debugrevspec command
Matt Mackall <mpm@selenic.com>
parents: 11273
diff changeset
1318 if ui.verbose:
13665
e798e430c5e5 revset: report a parse error if a revset is not parsed completely (issue2654)
Bernhard Leiner <bleiner@gmail.com>
parents: 13663
diff changeset
1319 tree = revset.parse(expr)[0]
11276
f28b58e35768 revset: add a debugrevspec command
Matt Mackall <mpm@selenic.com>
parents: 11273
diff changeset
1320 ui.note(tree, "\n")
f28b58e35768 revset: add a debugrevspec command
Matt Mackall <mpm@selenic.com>
parents: 11273
diff changeset
1321 func = revset.match(expr)
f28b58e35768 revset: add a debugrevspec command
Matt Mackall <mpm@selenic.com>
parents: 11273
diff changeset
1322 for c in func(repo, range(len(repo))):
f28b58e35768 revset: add a debugrevspec command
Matt Mackall <mpm@selenic.com>
parents: 11273
diff changeset
1323 ui.write("%s\n" % c)
f28b58e35768 revset: add a debugrevspec command
Matt Mackall <mpm@selenic.com>
parents: 11273
diff changeset
1324
1395
c2eb204917f8 Add debugsetparents command
Matt Mackall <mpm@selenic.com>
parents: 1390
diff changeset
1325 def debugsetparents(ui, repo, rev1, rev2=None):
1470
fb9b84c91222 minor fix on command help docstrings
TK Soh <teekaysoh@yahoo.com>
parents: 1469
diff changeset
1326 """manually set the parents of the current working directory
1395
c2eb204917f8 Add debugsetparents command
Matt Mackall <mpm@selenic.com>
parents: 1390
diff changeset
1327
c2eb204917f8 Add debugsetparents command
Matt Mackall <mpm@selenic.com>
parents: 1390
diff changeset
1328 This is useful for writing repository conversion tools, but should
c2eb204917f8 Add debugsetparents command
Matt Mackall <mpm@selenic.com>
parents: 1390
diff changeset
1329 be used with care.
11177
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
1330
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
1331 Returns 0 on success.
1395
c2eb204917f8 Add debugsetparents command
Matt Mackall <mpm@selenic.com>
parents: 1390
diff changeset
1332 """
c2eb204917f8 Add debugsetparents command
Matt Mackall <mpm@selenic.com>
parents: 1390
diff changeset
1333
12925
6eab8f0df2ca commands: add revset support to most commands
Matt Mackall <mpm@selenic.com>
parents: 12918
diff changeset
1334 r1 = cmdutil.revsingle(repo, rev1).node()
6eab8f0df2ca commands: add revset support to most commands
Matt Mackall <mpm@selenic.com>
parents: 12918
diff changeset
1335 r2 = cmdutil.revsingle(repo, rev2, 'null').node()
1395
c2eb204917f8 Add debugsetparents command
Matt Mackall <mpm@selenic.com>
parents: 1390
diff changeset
1336
4247
89075f106414 debugsetparents: wlock the repo before updating the dirstate
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 4231
diff changeset
1337 wlock = repo.wlock()
89075f106414 debugsetparents: wlock the repo before updating the dirstate
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 4231
diff changeset
1338 try:
12925
6eab8f0df2ca commands: add revset support to most commands
Matt Mackall <mpm@selenic.com>
parents: 12918
diff changeset
1339 repo.dirstate.setparents(r1, r2)
4247
89075f106414 debugsetparents: wlock the repo before updating the dirstate
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 4231
diff changeset
1340 finally:
8109
496ae1ea4698 switch lock releasing in the core from gc to explicit
Ronny Pfannschmidt <Ronny.Pfannschmidt@gmx.de>
parents: 8088
diff changeset
1341 wlock.release()
1395
c2eb204917f8 Add debugsetparents command
Matt Mackall <mpm@selenic.com>
parents: 1390
diff changeset
1342
6296
a9e6b8875805 debugstate: add --nodates
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 6276
diff changeset
1343 def debugstate(ui, repo, nodates=None):
596
9a8daeff0ffa A bunch of parsing/help updates
mpm@selenic.com
parents: 593
diff changeset
1344 """show the contents of the current dirstate"""
6296
a9e6b8875805 debugstate: add --nodates
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 6276
diff changeset
1345 timestr = ""
a9e6b8875805 debugstate: add --nodates
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 6276
diff changeset
1346 showdate = not nodates
8209
a1a5a57efe90 replace util.sort with sorted built-in
Matt Mackall <mpm@selenic.com>
parents: 8190
diff changeset
1347 for file_, ent in sorted(repo.dirstate._map.iteritems()):
6296
a9e6b8875805 debugstate: add --nodates
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 6276
diff changeset
1348 if showdate:
a9e6b8875805 debugstate: add --nodates
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 6276
diff changeset
1349 if ent[3] == -1:
a9e6b8875805 debugstate: add --nodates
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 6276
diff changeset
1350 # Pad or slice to locale representation
10282
08a0f04b56bd many, many trivial check-code fixups
Matt Mackall <mpm@selenic.com>
parents: 10270
diff changeset
1351 locale_len = len(time.strftime("%Y-%m-%d %H:%M:%S ",
08a0f04b56bd many, many trivial check-code fixups
Matt Mackall <mpm@selenic.com>
parents: 10270
diff changeset
1352 time.localtime(0)))
6296
a9e6b8875805 debugstate: add --nodates
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 6276
diff changeset
1353 timestr = 'unset'
10282
08a0f04b56bd many, many trivial check-code fixups
Matt Mackall <mpm@selenic.com>
parents: 10270
diff changeset
1354 timestr = (timestr[:locale_len] +
08a0f04b56bd many, many trivial check-code fixups
Matt Mackall <mpm@selenic.com>
parents: 10270
diff changeset
1355 ' ' * (locale_len - len(timestr)))
6296
a9e6b8875805 debugstate: add --nodates
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 6276
diff changeset
1356 else:
10282
08a0f04b56bd many, many trivial check-code fixups
Matt Mackall <mpm@selenic.com>
parents: 10270
diff changeset
1357 timestr = time.strftime("%Y-%m-%d %H:%M:%S ",
08a0f04b56bd many, many trivial check-code fixups
Matt Mackall <mpm@selenic.com>
parents: 10270
diff changeset
1358 time.localtime(ent[3]))
5156
49554ba98951 debugstate: print symlinks as 'lnk', not '777'
Bryan O'Sullivan <bos@serpentine.com>
parents: 5155
diff changeset
1359 if ent[1] & 020000:
49554ba98951 debugstate: print symlinks as 'lnk', not '777'
Bryan O'Sullivan <bos@serpentine.com>
parents: 5155
diff changeset
1360 mode = 'lnk'
49554ba98951 debugstate: print symlinks as 'lnk', not '777'
Bryan O'Sullivan <bos@serpentine.com>
parents: 5155
diff changeset
1361 else:
49554ba98951 debugstate: print symlinks as 'lnk', not '777'
Bryan O'Sullivan <bos@serpentine.com>
parents: 5155
diff changeset
1362 mode = '%3o' % (ent[1] & 0777)
6296
a9e6b8875805 debugstate: add --nodates
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 6276
diff changeset
1363 ui.write("%c %s %10d %s%s\n" % (ent[0], mode, ent[2], timestr, file_))
3159
e43fd1623fe1 fix users of dirstate.copies broken by b1f10d3223c1
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 3146
diff changeset
1364 for f in repo.dirstate.copies():
e43fd1623fe1 fix users of dirstate.copies broken by b1f10d3223c1
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 3146
diff changeset
1365 ui.write(_("copy: %s -> %s\n") % (repo.dirstate.copied(f), f))
460
6409d9a0df43 add dirstate debugging commands
mpm@selenic.com
parents: 452
diff changeset
1366
8812
859f841937d0 subrepo: introduce basic state parsing
Matt Mackall <mpm@selenic.com>
parents: 8810
diff changeset
1367 def debugsub(ui, repo, rev=None):
12925
6eab8f0df2ca commands: add revset support to most commands
Matt Mackall <mpm@selenic.com>
parents: 12918
diff changeset
1368 ctx = cmdutil.revsingle(repo, rev, None)
6eab8f0df2ca commands: add revset support to most commands
Matt Mackall <mpm@selenic.com>
parents: 12918
diff changeset
1369 for k, v in sorted(ctx.substate.items()):
8812
859f841937d0 subrepo: introduce basic state parsing
Matt Mackall <mpm@selenic.com>
parents: 8810
diff changeset
1370 ui.write('path %s\n' % k)
859f841937d0 subrepo: introduce basic state parsing
Matt Mackall <mpm@selenic.com>
parents: 8810
diff changeset
1371 ui.write(' source %s\n' % v[0])
859f841937d0 subrepo: introduce basic state parsing
Matt Mackall <mpm@selenic.com>
parents: 8810
diff changeset
1372 ui.write(' revision %s\n' % v[1])
859f841937d0 subrepo: introduce basic state parsing
Matt Mackall <mpm@selenic.com>
parents: 8810
diff changeset
1373
11336
3dfbe26cfded debugdag and debugindexdag: emit changelog/revlog DAGs as concise text
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11331
diff changeset
1374 def debugdag(ui, repo, file_=None, *revs, **opts):
3dfbe26cfded debugdag and debugindexdag: emit changelog/revlog DAGs as concise text
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11331
diff changeset
1375 """format the changelog or an index DAG as a concise textual description
3dfbe26cfded debugdag and debugindexdag: emit changelog/revlog DAGs as concise text
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11331
diff changeset
1376
3dfbe26cfded debugdag and debugindexdag: emit changelog/revlog DAGs as concise text
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11331
diff changeset
1377 If you pass a revlog index, the revlog's DAG is emitted. If you list
3dfbe26cfded debugdag and debugindexdag: emit changelog/revlog DAGs as concise text
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11331
diff changeset
1378 revision numbers, they get labelled in the output as rN.
3dfbe26cfded debugdag and debugindexdag: emit changelog/revlog DAGs as concise text
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11331
diff changeset
1379
3dfbe26cfded debugdag and debugindexdag: emit changelog/revlog DAGs as concise text
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11331
diff changeset
1380 Otherwise, the changelog DAG of the current repo is emitted.
3dfbe26cfded debugdag and debugindexdag: emit changelog/revlog DAGs as concise text
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11331
diff changeset
1381 """
3dfbe26cfded debugdag and debugindexdag: emit changelog/revlog DAGs as concise text
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11331
diff changeset
1382 spaces = opts.get('spaces')
3dfbe26cfded debugdag and debugindexdag: emit changelog/revlog DAGs as concise text
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11331
diff changeset
1383 dots = opts.get('dots')
3dfbe26cfded debugdag and debugindexdag: emit changelog/revlog DAGs as concise text
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11331
diff changeset
1384 if file_:
3dfbe26cfded debugdag and debugindexdag: emit changelog/revlog DAGs as concise text
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11331
diff changeset
1385 rlog = revlog.revlog(util.opener(os.getcwd(), audit=False), file_)
3dfbe26cfded debugdag and debugindexdag: emit changelog/revlog DAGs as concise text
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11331
diff changeset
1386 revs = set((int(r) for r in revs))
3dfbe26cfded debugdag and debugindexdag: emit changelog/revlog DAGs as concise text
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11331
diff changeset
1387 def events():
3dfbe26cfded debugdag and debugindexdag: emit changelog/revlog DAGs as concise text
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11331
diff changeset
1388 for r in rlog:
3dfbe26cfded debugdag and debugindexdag: emit changelog/revlog DAGs as concise text
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11331
diff changeset
1389 yield 'n', (r, list(set(p for p in rlog.parentrevs(r) if p != -1)))
3dfbe26cfded debugdag and debugindexdag: emit changelog/revlog DAGs as concise text
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11331
diff changeset
1390 if r in revs:
3dfbe26cfded debugdag and debugindexdag: emit changelog/revlog DAGs as concise text
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11331
diff changeset
1391 yield 'l', (r, "r%i" % r)
3dfbe26cfded debugdag and debugindexdag: emit changelog/revlog DAGs as concise text
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11331
diff changeset
1392 elif repo:
3dfbe26cfded debugdag and debugindexdag: emit changelog/revlog DAGs as concise text
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11331
diff changeset
1393 cl = repo.changelog
3dfbe26cfded debugdag and debugindexdag: emit changelog/revlog DAGs as concise text
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11331
diff changeset
1394 tags = opts.get('tags')
3dfbe26cfded debugdag and debugindexdag: emit changelog/revlog DAGs as concise text
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11331
diff changeset
1395 branches = opts.get('branches')
3dfbe26cfded debugdag and debugindexdag: emit changelog/revlog DAGs as concise text
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11331
diff changeset
1396 if tags:
3dfbe26cfded debugdag and debugindexdag: emit changelog/revlog DAGs as concise text
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11331
diff changeset
1397 labels = {}
3dfbe26cfded debugdag and debugindexdag: emit changelog/revlog DAGs as concise text
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11331
diff changeset
1398 for l, n in repo.tags().items():
3dfbe26cfded debugdag and debugindexdag: emit changelog/revlog DAGs as concise text
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11331
diff changeset
1399 labels.setdefault(cl.rev(n), []).append(l)
3dfbe26cfded debugdag and debugindexdag: emit changelog/revlog DAGs as concise text
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11331
diff changeset
1400 def events():
3dfbe26cfded debugdag and debugindexdag: emit changelog/revlog DAGs as concise text
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11331
diff changeset
1401 b = "default"
3dfbe26cfded debugdag and debugindexdag: emit changelog/revlog DAGs as concise text
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11331
diff changeset
1402 for r in cl:
3dfbe26cfded debugdag and debugindexdag: emit changelog/revlog DAGs as concise text
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11331
diff changeset
1403 if branches:
3dfbe26cfded debugdag and debugindexdag: emit changelog/revlog DAGs as concise text
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11331
diff changeset
1404 newb = cl.read(cl.node(r))[5]['branch']
3dfbe26cfded debugdag and debugindexdag: emit changelog/revlog DAGs as concise text
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11331
diff changeset
1405 if newb != b:
3dfbe26cfded debugdag and debugindexdag: emit changelog/revlog DAGs as concise text
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11331
diff changeset
1406 yield 'a', newb
3dfbe26cfded debugdag and debugindexdag: emit changelog/revlog DAGs as concise text
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11331
diff changeset
1407 b = newb
3dfbe26cfded debugdag and debugindexdag: emit changelog/revlog DAGs as concise text
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11331
diff changeset
1408 yield 'n', (r, list(set(p for p in cl.parentrevs(r) if p != -1)))
3dfbe26cfded debugdag and debugindexdag: emit changelog/revlog DAGs as concise text
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11331
diff changeset
1409 if tags:
3dfbe26cfded debugdag and debugindexdag: emit changelog/revlog DAGs as concise text
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11331
diff changeset
1410 ls = labels.get(r)
3dfbe26cfded debugdag and debugindexdag: emit changelog/revlog DAGs as concise text
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11331
diff changeset
1411 if ls:
3dfbe26cfded debugdag and debugindexdag: emit changelog/revlog DAGs as concise text
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11331
diff changeset
1412 for l in ls:
3dfbe26cfded debugdag and debugindexdag: emit changelog/revlog DAGs as concise text
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11331
diff changeset
1413 yield 'l', (r, l)
3dfbe26cfded debugdag and debugindexdag: emit changelog/revlog DAGs as concise text
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11331
diff changeset
1414 else:
3dfbe26cfded debugdag and debugindexdag: emit changelog/revlog DAGs as concise text
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11331
diff changeset
1415 raise util.Abort(_('need repo for changelog dag'))
3dfbe26cfded debugdag and debugindexdag: emit changelog/revlog DAGs as concise text
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11331
diff changeset
1416
3dfbe26cfded debugdag and debugindexdag: emit changelog/revlog DAGs as concise text
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11331
diff changeset
1417 for line in dagparser.dagtextlines(events(),
3dfbe26cfded debugdag and debugindexdag: emit changelog/revlog DAGs as concise text
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11331
diff changeset
1418 addspaces=spaces,
3dfbe26cfded debugdag and debugindexdag: emit changelog/revlog DAGs as concise text
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11331
diff changeset
1419 wraplabels=True,
3dfbe26cfded debugdag and debugindexdag: emit changelog/revlog DAGs as concise text
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11331
diff changeset
1420 wrapannotations=True,
3dfbe26cfded debugdag and debugindexdag: emit changelog/revlog DAGs as concise text
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11331
diff changeset
1421 wrapnonlinear=dots,
3dfbe26cfded debugdag and debugindexdag: emit changelog/revlog DAGs as concise text
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11331
diff changeset
1422 usedots=dots,
3dfbe26cfded debugdag and debugindexdag: emit changelog/revlog DAGs as concise text
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11331
diff changeset
1423 maxlinewidth=70):
3dfbe26cfded debugdag and debugindexdag: emit changelog/revlog DAGs as concise text
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11331
diff changeset
1424 ui.write(line)
3dfbe26cfded debugdag and debugindexdag: emit changelog/revlog DAGs as concise text
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11331
diff changeset
1425 ui.write("\n")
3dfbe26cfded debugdag and debugindexdag: emit changelog/revlog DAGs as concise text
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11331
diff changeset
1426
12131
c061f9882ff7 debugdata: try to access filelogs through repo, if possible
Sune Foldager <cryo@cyanite.org>
parents: 12130
diff changeset
1427 def debugdata(ui, repo, file_, rev):
4258
b11a2fb59cf5 revlog: simplify revlog version handling
Matt Mackall <mpm@selenic.com>
parents: 4257
diff changeset
1428 """dump the contents of a data file revision"""
12131
c061f9882ff7 debugdata: try to access filelogs through repo, if possible
Sune Foldager <cryo@cyanite.org>
parents: 12130
diff changeset
1429 r = None
c061f9882ff7 debugdata: try to access filelogs through repo, if possible
Sune Foldager <cryo@cyanite.org>
parents: 12130
diff changeset
1430 if repo:
c061f9882ff7 debugdata: try to access filelogs through repo, if possible
Sune Foldager <cryo@cyanite.org>
parents: 12130
diff changeset
1431 filelog = repo.file(file_)
c061f9882ff7 debugdata: try to access filelogs through repo, if possible
Sune Foldager <cryo@cyanite.org>
parents: 12130
diff changeset
1432 if len(filelog):
c061f9882ff7 debugdata: try to access filelogs through repo, if possible
Sune Foldager <cryo@cyanite.org>
parents: 12130
diff changeset
1433 r = filelog
c061f9882ff7 debugdata: try to access filelogs through repo, if possible
Sune Foldager <cryo@cyanite.org>
parents: 12130
diff changeset
1434 if not r:
c061f9882ff7 debugdata: try to access filelogs through repo, if possible
Sune Foldager <cryo@cyanite.org>
parents: 12130
diff changeset
1435 r = revlog.revlog(util.opener(os.getcwd(), audit=False), file_[:-2] + ".i")
1313
1cc7c0cbc30b Fix traceback during invalid rev identifier for debugdata
Anupam Kapoor<anupam.kapoor@gmail.com>
parents: 1312
diff changeset
1436 try:
1cc7c0cbc30b Fix traceback during invalid rev identifier for debugdata
Anupam Kapoor<anupam.kapoor@gmail.com>
parents: 1312
diff changeset
1437 ui.write(r.revision(r.lookup(rev)))
1cc7c0cbc30b Fix traceback during invalid rev identifier for debugdata
Anupam Kapoor<anupam.kapoor@gmail.com>
parents: 1312
diff changeset
1438 except KeyError:
3072
bc3fe3b5b785 Never apply string formatting to generated errors with util.Abort.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 3071
diff changeset
1439 raise util.Abort(_('invalid revision identifier %s') % rev)
1039
4296754ba7b4 Add debugdata for dumping revlog revision data
mpm@selenic.com
parents: 1037
diff changeset
1440
3812
bf6ab30559e6 Add date matching support
Matt Mackall <mpm@selenic.com>
parents: 3805
diff changeset
1441 def debugdate(ui, date, range=None, **opts):
3805
299d6cce6c0b add debugdate command
Matt Mackall <mpm@selenic.com>
parents: 3804
diff changeset
1442 """parse and display a date"""
3812
bf6ab30559e6 Add date matching support
Matt Mackall <mpm@selenic.com>
parents: 3805
diff changeset
1443 if opts["extended"]:
bf6ab30559e6 Add date matching support
Matt Mackall <mpm@selenic.com>
parents: 3805
diff changeset
1444 d = util.parsedate(date, util.extendeddateformats)
bf6ab30559e6 Add date matching support
Matt Mackall <mpm@selenic.com>
parents: 3805
diff changeset
1445 else:
bf6ab30559e6 Add date matching support
Matt Mackall <mpm@selenic.com>
parents: 3805
diff changeset
1446 d = util.parsedate(date)
3805
299d6cce6c0b add debugdate command
Matt Mackall <mpm@selenic.com>
parents: 3804
diff changeset
1447 ui.write("internal: %s %s\n" % d)
299d6cce6c0b add debugdate command
Matt Mackall <mpm@selenic.com>
parents: 3804
diff changeset
1448 ui.write("standard: %s\n" % util.datestr(d))
3812
bf6ab30559e6 Add date matching support
Matt Mackall <mpm@selenic.com>
parents: 3805
diff changeset
1449 if range:
bf6ab30559e6 Add date matching support
Matt Mackall <mpm@selenic.com>
parents: 3805
diff changeset
1450 m = util.matchdate(range)
bf6ab30559e6 Add date matching support
Matt Mackall <mpm@selenic.com>
parents: 3805
diff changeset
1451 ui.write("match: %s\n" % m(d[0]))
3805
299d6cce6c0b add debugdate command
Matt Mackall <mpm@selenic.com>
parents: 3804
diff changeset
1452
13396
3e66eec9a814 add debugignore which yields the combined ignore patten of the .hgignore files
jfh <jason@jasonfharris.com>
parents: 13388
diff changeset
1453 def debugignore(ui, repo, *values, **opts):
3e66eec9a814 add debugignore which yields the combined ignore patten of the .hgignore files
jfh <jason@jasonfharris.com>
parents: 13388
diff changeset
1454 """display the combined ignore pattern"""
3e66eec9a814 add debugignore which yields the combined ignore patten of the .hgignore files
jfh <jason@jasonfharris.com>
parents: 13388
diff changeset
1455 ignore = repo.dirstate._ignore
13406
5e57c199848d debugignore: catch the case when ignore.includepat doesn't exist
jfh <jason@jasonfharris.com>
parents: 13400
diff changeset
1456 if hasattr(ignore, 'includepat'):
5e57c199848d debugignore: catch the case when ignore.includepat doesn't exist
jfh <jason@jasonfharris.com>
parents: 13400
diff changeset
1457 ui.write("%s\n" % ignore.includepat)
5e57c199848d debugignore: catch the case when ignore.includepat doesn't exist
jfh <jason@jasonfharris.com>
parents: 13400
diff changeset
1458 else:
5e57c199848d debugignore: catch the case when ignore.includepat doesn't exist
jfh <jason@jasonfharris.com>
parents: 13400
diff changeset
1459 raise util.Abort(_("no ignore patterns found"))
13396
3e66eec9a814 add debugignore which yields the combined ignore patten of the .hgignore files
jfh <jason@jasonfharris.com>
parents: 13388
diff changeset
1460
12893
15ca4bfecfe3 debugindex: add --format flag to allow debugging parentdelta
Matt Mackall <mpm@selenic.com>
parents: 12863
diff changeset
1461 def debugindex(ui, repo, file_, **opts):
596
9a8daeff0ffa A bunch of parsing/help updates
mpm@selenic.com
parents: 593
diff changeset
1462 """dump the contents of an index file"""
12132
8a0e5b0c0ba9 debugindex(dot): try to access filelogs through repo, if possible
Sune Foldager <sune.foldager@edlund.dk>
parents: 12131
diff changeset
1463 r = None
8a0e5b0c0ba9 debugindex(dot): try to access filelogs through repo, if possible
Sune Foldager <sune.foldager@edlund.dk>
parents: 12131
diff changeset
1464 if repo:
8a0e5b0c0ba9 debugindex(dot): try to access filelogs through repo, if possible
Sune Foldager <sune.foldager@edlund.dk>
parents: 12131
diff changeset
1465 filelog = repo.file(file_)
8a0e5b0c0ba9 debugindex(dot): try to access filelogs through repo, if possible
Sune Foldager <sune.foldager@edlund.dk>
parents: 12131
diff changeset
1466 if len(filelog):
8a0e5b0c0ba9 debugindex(dot): try to access filelogs through repo, if possible
Sune Foldager <sune.foldager@edlund.dk>
parents: 12131
diff changeset
1467 r = filelog
12893
15ca4bfecfe3 debugindex: add --format flag to allow debugging parentdelta
Matt Mackall <mpm@selenic.com>
parents: 12863
diff changeset
1468
15ca4bfecfe3 debugindex: add --format flag to allow debugging parentdelta
Matt Mackall <mpm@selenic.com>
parents: 12863
diff changeset
1469 format = opts.get('format', 0)
15ca4bfecfe3 debugindex: add --format flag to allow debugging parentdelta
Matt Mackall <mpm@selenic.com>
parents: 12863
diff changeset
1470 if format not in (0, 1):
13470
64ce09e93aff commands: mark strings for translation
Martin Geisler <mg@aragost.com>
parents: 13454
diff changeset
1471 raise util.Abort(_("unknown format %d") % format)
12893
15ca4bfecfe3 debugindex: add --format flag to allow debugging parentdelta
Matt Mackall <mpm@selenic.com>
parents: 12863
diff changeset
1472
12132
8a0e5b0c0ba9 debugindex(dot): try to access filelogs through repo, if possible
Sune Foldager <sune.foldager@edlund.dk>
parents: 12131
diff changeset
1473 if not r:
8a0e5b0c0ba9 debugindex(dot): try to access filelogs through repo, if possible
Sune Foldager <sune.foldager@edlund.dk>
parents: 12131
diff changeset
1474 r = revlog.revlog(util.opener(os.getcwd(), audit=False), file_)
12893
15ca4bfecfe3 debugindex: add --format flag to allow debugging parentdelta
Matt Mackall <mpm@selenic.com>
parents: 12863
diff changeset
1475
15ca4bfecfe3 debugindex: add --format flag to allow debugging parentdelta
Matt Mackall <mpm@selenic.com>
parents: 12863
diff changeset
1476 if format == 0:
15ca4bfecfe3 debugindex: add --format flag to allow debugging parentdelta
Matt Mackall <mpm@selenic.com>
parents: 12863
diff changeset
1477 ui.write(" rev offset length base linkrev"
15ca4bfecfe3 debugindex: add --format flag to allow debugging parentdelta
Matt Mackall <mpm@selenic.com>
parents: 12863
diff changeset
1478 " nodeid p1 p2\n")
15ca4bfecfe3 debugindex: add --format flag to allow debugging parentdelta
Matt Mackall <mpm@selenic.com>
parents: 12863
diff changeset
1479 elif format == 1:
15ca4bfecfe3 debugindex: add --format flag to allow debugging parentdelta
Matt Mackall <mpm@selenic.com>
parents: 12863
diff changeset
1480 ui.write(" rev flag offset length"
15ca4bfecfe3 debugindex: add --format flag to allow debugging parentdelta
Matt Mackall <mpm@selenic.com>
parents: 12863
diff changeset
1481 " size base link p1 p2 nodeid\n")
15ca4bfecfe3 debugindex: add --format flag to allow debugging parentdelta
Matt Mackall <mpm@selenic.com>
parents: 12863
diff changeset
1482
6750
fb42030d79d6 add __len__ and __iter__ methods to repo and revlog
Matt Mackall <mpm@selenic.com>
parents: 6749
diff changeset
1483 for i in r:
2072
74d3f5336b66 Implement revlogng.
mason@suse.com
parents: 2042
diff changeset
1484 node = r.node(i)
12893
15ca4bfecfe3 debugindex: add --format flag to allow debugging parentdelta
Matt Mackall <mpm@selenic.com>
parents: 12863
diff changeset
1485 if format == 0:
15ca4bfecfe3 debugindex: add --format flag to allow debugging parentdelta
Matt Mackall <mpm@selenic.com>
parents: 12863
diff changeset
1486 try:
15ca4bfecfe3 debugindex: add --format flag to allow debugging parentdelta
Matt Mackall <mpm@selenic.com>
parents: 12863
diff changeset
1487 pp = r.parents(node)
15ca4bfecfe3 debugindex: add --format flag to allow debugging parentdelta
Matt Mackall <mpm@selenic.com>
parents: 12863
diff changeset
1488 except:
15ca4bfecfe3 debugindex: add --format flag to allow debugging parentdelta
Matt Mackall <mpm@selenic.com>
parents: 12863
diff changeset
1489 pp = [nullid, nullid]
15ca4bfecfe3 debugindex: add --format flag to allow debugging parentdelta
Matt Mackall <mpm@selenic.com>
parents: 12863
diff changeset
1490 ui.write("% 6d % 9d % 7d % 6d % 7d %s %s %s\n" % (
15ca4bfecfe3 debugindex: add --format flag to allow debugging parentdelta
Matt Mackall <mpm@selenic.com>
parents: 12863
diff changeset
1491 i, r.start(i), r.length(i), r.base(i), r.linkrev(i),
15ca4bfecfe3 debugindex: add --format flag to allow debugging parentdelta
Matt Mackall <mpm@selenic.com>
parents: 12863
diff changeset
1492 short(node), short(pp[0]), short(pp[1])))
15ca4bfecfe3 debugindex: add --format flag to allow debugging parentdelta
Matt Mackall <mpm@selenic.com>
parents: 12863
diff changeset
1493 elif format == 1:
15ca4bfecfe3 debugindex: add --format flag to allow debugging parentdelta
Matt Mackall <mpm@selenic.com>
parents: 12863
diff changeset
1494 pr = r.parentrevs(i)
15ca4bfecfe3 debugindex: add --format flag to allow debugging parentdelta
Matt Mackall <mpm@selenic.com>
parents: 12863
diff changeset
1495 ui.write("% 6d %04x % 8d % 8d % 8d % 6d % 6d % 6d % 6d %s\n" % (
15ca4bfecfe3 debugindex: add --format flag to allow debugging parentdelta
Matt Mackall <mpm@selenic.com>
parents: 12863
diff changeset
1496 i, r.flags(i), r.start(i), r.length(i), r.rawsize(i),
15ca4bfecfe3 debugindex: add --format flag to allow debugging parentdelta
Matt Mackall <mpm@selenic.com>
parents: 12863
diff changeset
1497 r.base(i), r.linkrev(i), pr[0], pr[1], short(node)))
248
b7645b3c86ff migrate remaining commands
mpm@selenic.com
parents: 247
diff changeset
1498
12132
8a0e5b0c0ba9 debugindex(dot): try to access filelogs through repo, if possible
Sune Foldager <sune.foldager@edlund.dk>
parents: 12131
diff changeset
1499 def debugindexdot(ui, repo, file_):
8779
708938509732 Improve English for help text of many core hg commands.
timeless <timeless@gmail.com>
parents: 8778
diff changeset
1500 """dump an index DAG as a graphviz dot file"""
12132
8a0e5b0c0ba9 debugindex(dot): try to access filelogs through repo, if possible
Sune Foldager <sune.foldager@edlund.dk>
parents: 12131
diff changeset
1501 r = None
8a0e5b0c0ba9 debugindex(dot): try to access filelogs through repo, if possible
Sune Foldager <sune.foldager@edlund.dk>
parents: 12131
diff changeset
1502 if repo:
8a0e5b0c0ba9 debugindex(dot): try to access filelogs through repo, if possible
Sune Foldager <sune.foldager@edlund.dk>
parents: 12131
diff changeset
1503 filelog = repo.file(file_)
8a0e5b0c0ba9 debugindex(dot): try to access filelogs through repo, if possible
Sune Foldager <sune.foldager@edlund.dk>
parents: 12131
diff changeset
1504 if len(filelog):
8a0e5b0c0ba9 debugindex(dot): try to access filelogs through repo, if possible
Sune Foldager <sune.foldager@edlund.dk>
parents: 12131
diff changeset
1505 r = filelog
8a0e5b0c0ba9 debugindex(dot): try to access filelogs through repo, if possible
Sune Foldager <sune.foldager@edlund.dk>
parents: 12131
diff changeset
1506 if not r:
8a0e5b0c0ba9 debugindex(dot): try to access filelogs through repo, if possible
Sune Foldager <sune.foldager@edlund.dk>
parents: 12131
diff changeset
1507 r = revlog.revlog(util.opener(os.getcwd(), audit=False), file_)
582
df8a5a0098d4 Remove all remaining print statements
mpm@selenic.com
parents: 580
diff changeset
1508 ui.write("digraph G {\n")
6750
fb42030d79d6 add __len__ and __iter__ methods to repo and revlog
Matt Mackall <mpm@selenic.com>
parents: 6749
diff changeset
1509 for i in r:
2287
3f18d1eea370 Update debugindexdot to work with RevlogNG.
Samuel Masham <samuel.masham@gmail.com>
parents: 2283
diff changeset
1510 node = r.node(i)
3f18d1eea370 Update debugindexdot to work with RevlogNG.
Samuel Masham <samuel.masham@gmail.com>
parents: 2283
diff changeset
1511 pp = r.parents(node)
3f18d1eea370 Update debugindexdot to work with RevlogNG.
Samuel Masham <samuel.masham@gmail.com>
parents: 2283
diff changeset
1512 ui.write("\t%d -> %d\n" % (r.rev(pp[0]), i))
3f18d1eea370 Update debugindexdot to work with RevlogNG.
Samuel Masham <samuel.masham@gmail.com>
parents: 2283
diff changeset
1513 if pp[1] != nullid:
3f18d1eea370 Update debugindexdot to work with RevlogNG.
Samuel Masham <samuel.masham@gmail.com>
parents: 2283
diff changeset
1514 ui.write("\t%d -> %d\n" % (r.rev(pp[1]), i))
582
df8a5a0098d4 Remove all remaining print statements
mpm@selenic.com
parents: 580
diff changeset
1515 ui.write("}\n")
248
b7645b3c86ff migrate remaining commands
mpm@selenic.com
parents: 247
diff changeset
1516
3844
3ba82c3f4bc3 Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents: 3840
diff changeset
1517 def debuginstall(ui):
11177
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
1518 '''test Mercurial installation
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
1519
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
1520 Returns 0 on success.
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
1521 '''
3844
3ba82c3f4bc3 Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents: 3840
diff changeset
1522
3846
18855084b922 Make debuginstall actually attempt to use external patch and merge
Matt Mackall <mpm@selenic.com>
parents: 3844
diff changeset
1523 def writetemp(contents):
4849
035489f60842 Use a prefix for debuginstall tempfiles.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 4818
diff changeset
1524 (fd, name) = tempfile.mkstemp(prefix="hg-debuginstall-")
3846
18855084b922 Make debuginstall actually attempt to use external patch and merge
Matt Mackall <mpm@selenic.com>
parents: 3844
diff changeset
1525 f = os.fdopen(fd, "wb")
18855084b922 Make debuginstall actually attempt to use external patch and merge
Matt Mackall <mpm@selenic.com>
parents: 3844
diff changeset
1526 f.write(contents)
18855084b922 Make debuginstall actually attempt to use external patch and merge
Matt Mackall <mpm@selenic.com>
parents: 3844
diff changeset
1527 f.close()
18855084b922 Make debuginstall actually attempt to use external patch and merge
Matt Mackall <mpm@selenic.com>
parents: 3844
diff changeset
1528 return name
18855084b922 Make debuginstall actually attempt to use external patch and merge
Matt Mackall <mpm@selenic.com>
parents: 3844
diff changeset
1529
3844
3ba82c3f4bc3 Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents: 3840
diff changeset
1530 problems = 0
3ba82c3f4bc3 Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents: 3840
diff changeset
1531
3ba82c3f4bc3 Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents: 3840
diff changeset
1532 # encoding
7948
de377b1a9a84 move encoding bits from util to encoding
Matt Mackall <mpm@selenic.com>
parents: 7942
diff changeset
1533 ui.status(_("Checking encoding (%s)...\n") % encoding.encoding)
3844
3ba82c3f4bc3 Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents: 3840
diff changeset
1534 try:
7948
de377b1a9a84 move encoding bits from util to encoding
Matt Mackall <mpm@selenic.com>
parents: 7942
diff changeset
1535 encoding.fromlocal("test")
3844
3ba82c3f4bc3 Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents: 3840
diff changeset
1536 except util.Abort, inst:
3ba82c3f4bc3 Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents: 3840
diff changeset
1537 ui.write(" %s\n" % inst)
3848
8cbf060f637e Add some remedies and a username check to debuginstall
Matt Mackall <mpm@selenic.com>
parents: 3846
diff changeset
1538 ui.write(_(" (check that your locale is properly set)\n"))
3844
3ba82c3f4bc3 Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents: 3840
diff changeset
1539 problems += 1
3ba82c3f4bc3 Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents: 3840
diff changeset
1540
3ba82c3f4bc3 Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents: 3840
diff changeset
1541 # compiled modules
12004
1fe4702fe2df debuginstall: report installpath
Matt Mackall <mpm@selenic.com>
parents: 11969
diff changeset
1542 ui.status(_("Checking installed modules (%s)...\n")
1fe4702fe2df debuginstall: report installpath
Matt Mackall <mpm@selenic.com>
parents: 11969
diff changeset
1543 % os.path.dirname(__file__))
3844
3ba82c3f4bc3 Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents: 3840
diff changeset
1544 try:
12004
1fe4702fe2df debuginstall: report installpath
Matt Mackall <mpm@selenic.com>
parents: 11969
diff changeset
1545 import bdiff, mpatch, base85, osutil
3844
3ba82c3f4bc3 Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents: 3840
diff changeset
1546 except Exception, inst:
3ba82c3f4bc3 Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents: 3840
diff changeset
1547 ui.write(" %s\n" % inst)
3848
8cbf060f637e Add some remedies and a username check to debuginstall
Matt Mackall <mpm@selenic.com>
parents: 3846
diff changeset
1548 ui.write(_(" One or more extensions could not be found"))
8cbf060f637e Add some remedies and a username check to debuginstall
Matt Mackall <mpm@selenic.com>
parents: 3846
diff changeset
1549 ui.write(_(" (check that you compiled the extensions)\n"))
3844
3ba82c3f4bc3 Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents: 3840
diff changeset
1550 problems += 1
3ba82c3f4bc3 Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents: 3840
diff changeset
1551
3ba82c3f4bc3 Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents: 3840
diff changeset
1552 # templates
3ba82c3f4bc3 Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents: 3840
diff changeset
1553 ui.status(_("Checking templates...\n"))
3ba82c3f4bc3 Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents: 3840
diff changeset
1554 try:
3ba82c3f4bc3 Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents: 3840
diff changeset
1555 import templater
7874
d812029cda85 cleanup: drop variables for unused return values
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 7850
diff changeset
1556 templater.templater(templater.templatepath("map-cmdline.default"))
3844
3ba82c3f4bc3 Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents: 3840
diff changeset
1557 except Exception, inst:
3ba82c3f4bc3 Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents: 3840
diff changeset
1558 ui.write(" %s\n" % inst)
3848
8cbf060f637e Add some remedies and a username check to debuginstall
Matt Mackall <mpm@selenic.com>
parents: 3846
diff changeset
1559 ui.write(_(" (templates seem to have been installed incorrectly)\n"))
3844
3ba82c3f4bc3 Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents: 3840
diff changeset
1560 problems += 1
3ba82c3f4bc3 Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents: 3840
diff changeset
1561
3ba82c3f4bc3 Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents: 3840
diff changeset
1562 # editor
3ba82c3f4bc3 Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents: 3840
diff changeset
1563 ui.status(_("Checking commit editor...\n"))
5660
3c80ecdc1bcd Use VISUAL in addition to EDITOR when choosing the editor to use.
Osku Salerma <osku@iki.fi>
parents: 5658
diff changeset
1564 editor = ui.geteditor()
4488
62019c4427e3 Introduce find_exe. Use instead of find_in_path for programs.
Bryan O'Sullivan <bos@serpentine.com>
parents: 4438
diff changeset
1565 cmdpath = util.find_exe(editor) or util.find_exe(editor.split()[0])
3844
3ba82c3f4bc3 Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents: 3840
diff changeset
1566 if not cmdpath:
3855
b9cdd6f2aa43 debuginstall: fix a copy/paste error
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 3848
diff changeset
1567 if editor == 'vi':
3844
3ba82c3f4bc3 Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents: 3840
diff changeset
1568 ui.write(_(" No commit editor set and can't find vi in PATH\n"))
12083
ebfc46929f3e help: refer to user configuration file more consistently
Brodie Rao <brodie@bitheap.org>
parents: 12067
diff changeset
1569 ui.write(_(" (specify a commit editor in your configuration"
ebfc46929f3e help: refer to user configuration file more consistently
Brodie Rao <brodie@bitheap.org>
parents: 12067
diff changeset
1570 " file)\n"))
3844
3ba82c3f4bc3 Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents: 3840
diff changeset
1571 else:
3ba82c3f4bc3 Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents: 3840
diff changeset
1572 ui.write(_(" Can't find editor '%s' in PATH\n") % editor)
12083
ebfc46929f3e help: refer to user configuration file more consistently
Brodie Rao <brodie@bitheap.org>
parents: 12067
diff changeset
1573 ui.write(_(" (specify a commit editor in your configuration"
ebfc46929f3e help: refer to user configuration file more consistently
Brodie Rao <brodie@bitheap.org>
parents: 12067
diff changeset
1574 " file)\n"))
3844
3ba82c3f4bc3 Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents: 3840
diff changeset
1575 problems += 1
3ba82c3f4bc3 Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents: 3840
diff changeset
1576
3848
8cbf060f637e Add some remedies and a username check to debuginstall
Matt Mackall <mpm@selenic.com>
parents: 3846
diff changeset
1577 # check username
8cbf060f637e Add some remedies and a username check to debuginstall
Matt Mackall <mpm@selenic.com>
parents: 3846
diff changeset
1578 ui.status(_("Checking username...\n"))
9734
36c388a1aa51 commands: call ui.username carefully in debuginstall
Martin Geisler <mg@lazybytes.net>
parents: 9725
diff changeset
1579 try:
12063
516b000fbb7e cleanup: remove unused variables
Brodie Rao <brodie@bitheap.org>
parents: 12033
diff changeset
1580 ui.username()
9734
36c388a1aa51 commands: call ui.username carefully in debuginstall
Martin Geisler <mg@lazybytes.net>
parents: 9725
diff changeset
1581 except util.Abort, e:
36c388a1aa51 commands: call ui.username carefully in debuginstall
Martin Geisler <mg@lazybytes.net>
parents: 9725
diff changeset
1582 ui.write(" %s\n" % e)
12083
ebfc46929f3e help: refer to user configuration file more consistently
Brodie Rao <brodie@bitheap.org>
parents: 12067
diff changeset
1583 ui.write(_(" (specify a username in your configuration file)\n"))
9734
36c388a1aa51 commands: call ui.username carefully in debuginstall
Martin Geisler <mg@lazybytes.net>
parents: 9725
diff changeset
1584 problems += 1
3848
8cbf060f637e Add some remedies and a username check to debuginstall
Matt Mackall <mpm@selenic.com>
parents: 3846
diff changeset
1585
3844
3ba82c3f4bc3 Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents: 3840
diff changeset
1586 if not problems:
3ba82c3f4bc3 Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents: 3840
diff changeset
1587 ui.status(_("No problems detected\n"))
3ba82c3f4bc3 Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents: 3840
diff changeset
1588 else:
3ba82c3f4bc3 Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents: 3840
diff changeset
1589 ui.write(_("%s problems detected,"
3ba82c3f4bc3 Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents: 3840
diff changeset
1590 " please check your install!\n") % problems)
3ba82c3f4bc3 Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents: 3840
diff changeset
1591
3ba82c3f4bc3 Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents: 3840
diff changeset
1592 return problems
3ba82c3f4bc3 Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents: 3840
diff changeset
1593
3652
f4dece0f7016 refactor debugrenamed
Matt Mackall <mpm@selenic.com>
parents: 3651
diff changeset
1594 def debugrename(ui, repo, file1, *pats, **opts):
1194
c165cbf56bb1 Add doc string for debugrename.
bos@serpentine.internal.keyresearch.com
parents: 1193
diff changeset
1595 """dump rename information"""
3652
f4dece0f7016 refactor debugrenamed
Matt Mackall <mpm@selenic.com>
parents: 3651
diff changeset
1596
12925
6eab8f0df2ca commands: add revset support to most commands
Matt Mackall <mpm@selenic.com>
parents: 12918
diff changeset
1597 ctx = cmdutil.revsingle(repo, opts.get('rev'))
6579
0159b7a36184 walk: pass match object to cmdutil.walk
Matt Mackall <mpm@selenic.com>
parents: 6578
diff changeset
1598 m = cmdutil.match(repo, (file1,) + pats, opts)
6764
8db64464d136 context: add walk method
Matt Mackall <mpm@selenic.com>
parents: 6762
diff changeset
1599 for abs in ctx.walk(m):
8db64464d136 context: add walk method
Matt Mackall <mpm@selenic.com>
parents: 6762
diff changeset
1600 fctx = ctx[abs]
6579
0159b7a36184 walk: pass match object to cmdutil.walk
Matt Mackall <mpm@selenic.com>
parents: 6578
diff changeset
1601 o = fctx.filelog().renamed(fctx.filenode())
6584
29c77e5dfb3c walk: remove rel and exact returns
Matt Mackall <mpm@selenic.com>
parents: 6583
diff changeset
1602 rel = m.rel(abs)
6579
0159b7a36184 walk: pass match object to cmdutil.walk
Matt Mackall <mpm@selenic.com>
parents: 6578
diff changeset
1603 if o:
0159b7a36184 walk: pass match object to cmdutil.walk
Matt Mackall <mpm@selenic.com>
parents: 6578
diff changeset
1604 ui.write(_("%s renamed from %s:%s\n") % (rel, o[0], hex(o[1])))
3652
f4dece0f7016 refactor debugrenamed
Matt Mackall <mpm@selenic.com>
parents: 3651
diff changeset
1605 else:
f4dece0f7016 refactor debugrenamed
Matt Mackall <mpm@selenic.com>
parents: 3651
diff changeset
1606 ui.write(_("%s not renamed\n") % rel)
1116
0cdd73b0767c Add some rename debugging support
mpm@selenic.com
parents: 1114
diff changeset
1607
820
89985a1b3427 Clean up walk and changes code to use normalised names properly.
Bryan O'Sullivan <bos@serpentine.com>
parents: 815
diff changeset
1608 def debugwalk(ui, repo, *pats, **opts):
1053
1539ca091d86 Added missing doc strings for two new debug commmands.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 1052
diff changeset
1609 """show how files match on given patterns"""
6579
0159b7a36184 walk: pass match object to cmdutil.walk
Matt Mackall <mpm@selenic.com>
parents: 6578
diff changeset
1610 m = cmdutil.match(repo, pats, opts)
6585
d3d1d39da2fa walk: remove cmdutil.walk
Matt Mackall <mpm@selenic.com>
parents: 6584
diff changeset
1611 items = list(repo.walk(m))
1065
6e94c0365d98 Cleanups to commands.py
Thomas Arendsen Hein <thomas@intevation.de>
parents: 1062
diff changeset
1612 if not items:
6e94c0365d98 Cleanups to commands.py
Thomas Arendsen Hein <thomas@intevation.de>
parents: 1062
diff changeset
1613 return
6586
d3463007d368 walk: return a single value
Matt Mackall <mpm@selenic.com>
parents: 6585
diff changeset
1614 fmt = 'f %%-%ds %%-%ds %%s' % (
d3463007d368 walk: return a single value
Matt Mackall <mpm@selenic.com>
parents: 6585
diff changeset
1615 max([len(abs) for abs in items]),
d3463007d368 walk: return a single value
Matt Mackall <mpm@selenic.com>
parents: 6585
diff changeset
1616 max([len(m.rel(abs)) for abs in items]))
d3463007d368 walk: return a single value
Matt Mackall <mpm@selenic.com>
parents: 6585
diff changeset
1617 for abs in items:
d3463007d368 walk: return a single value
Matt Mackall <mpm@selenic.com>
parents: 6585
diff changeset
1618 line = fmt % (abs, m.rel(abs), m.exact(abs) and 'exact' or '')
1309
332f225b835c Make debugwalk strip trailing spaces and remove these from test-walk.out
Thomas Arendsen Hein <thomas@intevation.de>
parents: 1285
diff changeset
1619 ui.write("%s\n" % line.rstrip())
820
89985a1b3427 Clean up walk and changes code to use normalised names properly.
Bryan O'Sullivan <bos@serpentine.com>
parents: 815
diff changeset
1620
13720
9c4e04fe267e debug: add debugwireargs to test argument passing over the wire
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 13697
diff changeset
1621 def debugwireargs(ui, repopath, *vals, **opts):
9c4e04fe267e debug: add debugwireargs to test argument passing over the wire
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 13697
diff changeset
1622 repo = hg.repository(hg.remoteui(ui, opts), repopath)
9c4e04fe267e debug: add debugwireargs to test argument passing over the wire
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 13697
diff changeset
1623 for opt in remoteopts:
9c4e04fe267e debug: add debugwireargs to test argument passing over the wire
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 13697
diff changeset
1624 del opts[opt[1]]
9c4e04fe267e debug: add debugwireargs to test argument passing over the wire
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 13697
diff changeset
1625 args = {}
9c4e04fe267e debug: add debugwireargs to test argument passing over the wire
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 13697
diff changeset
1626 for k, v in opts.iteritems():
9c4e04fe267e debug: add debugwireargs to test argument passing over the wire
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 13697
diff changeset
1627 if v:
9c4e04fe267e debug: add debugwireargs to test argument passing over the wire
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 13697
diff changeset
1628 args[k] = v
9c4e04fe267e debug: add debugwireargs to test argument passing over the wire
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 13697
diff changeset
1629 # run twice to check that we don't mess up the stream for the next command
9c4e04fe267e debug: add debugwireargs to test argument passing over the wire
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 13697
diff changeset
1630 res1 = repo.debugwireargs(*vals, **args)
9c4e04fe267e debug: add debugwireargs to test argument passing over the wire
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 13697
diff changeset
1631 res2 = repo.debugwireargs(*vals, **args)
9c4e04fe267e debug: add debugwireargs to test argument passing over the wire
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 13697
diff changeset
1632 ui.write("%s\n" % res1)
9c4e04fe267e debug: add debugwireargs to test argument passing over the wire
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 13697
diff changeset
1633 if res1 != res2:
9c4e04fe267e debug: add debugwireargs to test argument passing over the wire
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 13697
diff changeset
1634 ui.warn("%s\n" % res2)
9c4e04fe267e debug: add debugwireargs to test argument passing over the wire
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 13697
diff changeset
1635
732
ba0b6d17a6de Convert diff command over to using walk code.
Bryan O'Sullivan <bos@serpentine.com>
parents: 731
diff changeset
1636 def diff(ui, repo, *pats, **opts):
1568
1d7d0c07e8f3 make all commands be repo-wide by default
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1567
diff changeset
1637 """diff repository (or selected files)
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
1638
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
1639 Show differences between revisions for the specified files.
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
1640
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
1641 Differences between files are shown using the unified diff format.
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
1642
12389
4ac734b9b3fd Use note admonition
Erik Zielke <ez@aragost.com>
parents: 12386
diff changeset
1643 .. note::
4ac734b9b3fd Use note admonition
Erik Zielke <ez@aragost.com>
parents: 12386
diff changeset
1644 diff may generate unexpected results for merges, as it will
4ac734b9b3fd Use note admonition
Erik Zielke <ez@aragost.com>
parents: 12386
diff changeset
1645 default to comparing against the working directory's first
4ac734b9b3fd Use note admonition
Erik Zielke <ez@aragost.com>
parents: 12386
diff changeset
1646 parent changeset if no revisions are specified.
3822
28134d82db9b Add notes about diff/merge asymmetry to export, diff, and log
Matt Mackall <mpm@selenic.com>
parents: 3815
diff changeset
1647
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
1648 When two revision arguments are given, then changes are shown
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
1649 between those revisions. If only one revision is specified then
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
1650 that revision is compared to the working directory, and, when no
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
1651 revisions are specified, the working directory files are compared
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
1652 to its parent.
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
1653
10527
9c0ba837dc65 commands: correct diff -c explanation
timeless <timeless@mozdev.org>
parents: 10520
diff changeset
1654 Alternatively you can specify -c/--change with a revision to see
9c0ba837dc65 commands: correct diff -c explanation
timeless <timeless@mozdev.org>
parents: 10520
diff changeset
1655 the changes in that changeset relative to its first parent.
10520
75361931884d commands: mention diff -c
timeless <timeless@mozdev.org>
parents: 10515
diff changeset
1656
8033
aeb4a5c7a28e commands: consistently write switches as -a/--abc
Martin Geisler <mg@lazybytes.net>
parents: 8032
diff changeset
1657 Without the -a/--text option, diff will avoid generating diffs of
aeb4a5c7a28e commands: consistently write switches as -a/--abc
Martin Geisler <mg@lazybytes.net>
parents: 8032
diff changeset
1658 files it detects as binary. With -a, diff will generate a diff
aeb4a5c7a28e commands: consistently write switches as -a/--abc
Martin Geisler <mg@lazybytes.net>
parents: 8032
diff changeset
1659 anyway, probably with undesirable results.
aeb4a5c7a28e commands: consistently write switches as -a/--abc
Martin Geisler <mg@lazybytes.net>
parents: 8032
diff changeset
1660
aeb4a5c7a28e commands: consistently write switches as -a/--abc
Martin Geisler <mg@lazybytes.net>
parents: 8032
diff changeset
1661 Use the -g/--git option to generate diffs in the git extended diff
10973
49a07f441496 Use hg role in help strings
Martin Geisler <mg@aragost.com>
parents: 10963
diff changeset
1662 format. For more information, read :hg:`help diffs`.
11177
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
1663
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
1664 Returns 0 on success.
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
1665 """
7628
9c6ae2e09e11 diff: add --change option to display single changeset diff (issue1420)
Stepan Koltsov <yozh@mx1.ru>
parents: 7622
diff changeset
1666
9c6ae2e09e11 diff: add --change option to display single changeset diff (issue1420)
Stepan Koltsov <yozh@mx1.ru>
parents: 7622
diff changeset
1667 revs = opts.get('rev')
9c6ae2e09e11 diff: add --change option to display single changeset diff (issue1420)
Stepan Koltsov <yozh@mx1.ru>
parents: 7622
diff changeset
1668 change = opts.get('change')
9640
9e76232fbfbe diff: add --stat for diffstat output
Brodie Rao <me+hg@dackz.net>
parents: 9636
diff changeset
1669 stat = opts.get('stat')
9857
24bc6e414610 diff: change --inverse to --reverse
Martin Geisler <mg@lazybytes.net>
parents: 9839
diff changeset
1670 reverse = opts.get('reverse')
7628
9c6ae2e09e11 diff: add --change option to display single changeset diff (issue1420)
Stepan Koltsov <yozh@mx1.ru>
parents: 7622
diff changeset
1671
9c6ae2e09e11 diff: add --change option to display single changeset diff (issue1420)
Stepan Koltsov <yozh@mx1.ru>
parents: 7622
diff changeset
1672 if revs and change:
9c6ae2e09e11 diff: add --change option to display single changeset diff (issue1420)
Stepan Koltsov <yozh@mx1.ru>
parents: 7622
diff changeset
1673 msg = _('cannot specify --rev and --change at the same time')
9c6ae2e09e11 diff: add --change option to display single changeset diff (issue1420)
Stepan Koltsov <yozh@mx1.ru>
parents: 7622
diff changeset
1674 raise util.Abort(msg)
9c6ae2e09e11 diff: add --change option to display single changeset diff (issue1420)
Stepan Koltsov <yozh@mx1.ru>
parents: 7622
diff changeset
1675 elif change:
13639
595dba23d337 diff: make diff -c aware of revision sets
Steve Borho <steve@borho.org>
parents: 13623
diff changeset
1676 node2 = cmdutil.revsingle(repo, change, None).node()
7628
9c6ae2e09e11 diff: add --change option to display single changeset diff (issue1420)
Stepan Koltsov <yozh@mx1.ru>
parents: 7622
diff changeset
1677 node1 = repo[node2].parents()[0].node()
9c6ae2e09e11 diff: add --change option to display single changeset diff (issue1420)
Stepan Koltsov <yozh@mx1.ru>
parents: 7622
diff changeset
1678 else:
9c6ae2e09e11 diff: add --change option to display single changeset diff (issue1420)
Stepan Koltsov <yozh@mx1.ru>
parents: 7622
diff changeset
1679 node1, node2 = cmdutil.revpair(repo, revs)
245
fef0f8e041aa big heap of command clean-up work
mpm@selenic.com
parents: 241
diff changeset
1680
9857
24bc6e414610 diff: change --inverse to --reverse
Martin Geisler <mg@lazybytes.net>
parents: 9839
diff changeset
1681 if reverse:
9725
3f522d2fa633 diff: add --inverse option
Yannick Gingras <ygingras@ygingras.net>
parents: 9718
diff changeset
1682 node1, node2 = node2, node1
3f522d2fa633 diff: add --inverse option
Yannick Gingras <ygingras@ygingras.net>
parents: 9718
diff changeset
1683
9642
7d17794f08a9 diffstat: with --git, mark binary files with Bin
Brodie Rao <me+hg@dackz.net>
parents: 9640
diff changeset
1684 diffopts = patch.diffopts(ui, opts)
6582
5acbdd3941c4 walk: remove remaining users of cmdutils.matchpats
Matt Mackall <mpm@selenic.com>
parents: 6579
diff changeset
1685 m = cmdutil.match(repo, pats, opts)
12167
d2c5b0927c28 diff: recurse into subrepositories with --subrepos/-S flag
Martin Geisler <mg@lazybytes.net>
parents: 12166
diff changeset
1686 cmdutil.diffordiffstat(ui, repo, diffopts, node1, node2, m, stat=stat,
d2c5b0927c28 diff: recurse into subrepositories with --subrepos/-S flag
Martin Geisler <mg@lazybytes.net>
parents: 12166
diff changeset
1687 listsubrepos=opts.get('subrepos'))
396
8f8bb77d560e Show revisions in diffs like CVS, based on a patch from Goffredo Baroncelli.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 395
diff changeset
1688
580
353a2ce50423 [PATCH] New export patch
mpm@selenic.com
parents: 577
diff changeset
1689 def export(ui, repo, *changesets, **opts):
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
1690 """dump the header and diffs for one or more changesets
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
1691
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
1692 Print the changeset header and diffs for one or more revisions.
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
1693
10334
3d75c691b77d commands: fix the list of changeset header information in 'hg help export'
Steve Losh <steve@stevelosh.com>
parents: 10331
diff changeset
1694 The information shown in the changeset header is: author, date,
10335
6ae4f390ec61 commands: fix more changeset header information in 'hg help export'
Steve Losh <steve@stevelosh.com>
parents: 10334
diff changeset
1695 branch name (if non-default), changeset hash, parent(s) and commit
6ae4f390ec61 commands: fix more changeset header information in 'hg help export'
Steve Losh <steve@stevelosh.com>
parents: 10334
diff changeset
1696 comment.
3822
28134d82db9b Add notes about diff/merge asymmetry to export, diff, and log
Matt Mackall <mpm@selenic.com>
parents: 3815
diff changeset
1697
12390
aff4afdcfd2b Use more note admonitions in help texts
Christian Ebert <blacktrash@gmx.net>
parents: 12389
diff changeset
1698 .. note::
aff4afdcfd2b Use more note admonitions in help texts
Christian Ebert <blacktrash@gmx.net>
parents: 12389
diff changeset
1699 export may generate unexpected diff output for merge
aff4afdcfd2b Use more note admonitions in help texts
Christian Ebert <blacktrash@gmx.net>
parents: 12389
diff changeset
1700 changesets, as it will compare the merge changeset against its
aff4afdcfd2b Use more note admonitions in help texts
Christian Ebert <blacktrash@gmx.net>
parents: 12389
diff changeset
1701 first parent only.
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
1702
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
1703 Output may be to a file, in which case the name of the file is
9892
4322e39bd525 commands: use field lists instead of literal blocks in docstrings
Martin Geisler <mg@lazybytes.net>
parents: 9891
diff changeset
1704 given using a format string. The formatting rules are as follows:
4322e39bd525 commands: use field lists instead of literal blocks in docstrings
Martin Geisler <mg@lazybytes.net>
parents: 9891
diff changeset
1705
4322e39bd525 commands: use field lists instead of literal blocks in docstrings
Martin Geisler <mg@lazybytes.net>
parents: 9891
diff changeset
1706 :``%%``: literal "%" character
11718
3e979f47a4c9 help: fix bytes/digit confusion for hashes
Matt Mackall <mpm@selenic.com>
parents: 11697
diff changeset
1707 :``%H``: changeset hash (40 hexadecimal digits)
9892
4322e39bd525 commands: use field lists instead of literal blocks in docstrings
Martin Geisler <mg@lazybytes.net>
parents: 9891
diff changeset
1708 :``%N``: number of patches being generated
4322e39bd525 commands: use field lists instead of literal blocks in docstrings
Martin Geisler <mg@lazybytes.net>
parents: 9891
diff changeset
1709 :``%R``: changeset revision number
4322e39bd525 commands: use field lists instead of literal blocks in docstrings
Martin Geisler <mg@lazybytes.net>
parents: 9891
diff changeset
1710 :``%b``: basename of the exporting repository
11718
3e979f47a4c9 help: fix bytes/digit confusion for hashes
Matt Mackall <mpm@selenic.com>
parents: 11697
diff changeset
1711 :``%h``: short-form changeset hash (12 hexadecimal digits)
9892
4322e39bd525 commands: use field lists instead of literal blocks in docstrings
Martin Geisler <mg@lazybytes.net>
parents: 9891
diff changeset
1712 :``%n``: zero-padded sequence number, starting at 1
4322e39bd525 commands: use field lists instead of literal blocks in docstrings
Martin Geisler <mg@lazybytes.net>
parents: 9891
diff changeset
1713 :``%r``: zero-padded changeset revision number
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
1714
8033
aeb4a5c7a28e commands: consistently write switches as -a/--abc
Martin Geisler <mg@lazybytes.net>
parents: 8032
diff changeset
1715 Without the -a/--text option, export will avoid generating diffs
aeb4a5c7a28e commands: consistently write switches as -a/--abc
Martin Geisler <mg@lazybytes.net>
parents: 8032
diff changeset
1716 of files it detects as binary. With -a, export will generate a
aeb4a5c7a28e commands: consistently write switches as -a/--abc
Martin Geisler <mg@lazybytes.net>
parents: 8032
diff changeset
1717 diff anyway, probably with undesirable results.
aeb4a5c7a28e commands: consistently write switches as -a/--abc
Martin Geisler <mg@lazybytes.net>
parents: 8032
diff changeset
1718
aeb4a5c7a28e commands: consistently write switches as -a/--abc
Martin Geisler <mg@lazybytes.net>
parents: 8032
diff changeset
1719 Use the -g/--git option to generate diffs in the git extended diff
10973
49a07f441496 Use hg role in help strings
Martin Geisler <mg@aragost.com>
parents: 10963
diff changeset
1720 format. See :hg:`help diffs` for more information.
7307
56380212d630 help: commands supporting --git point to the gitdiffs topic (issue1352)
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 7303
diff changeset
1721
8004
d5b1b846f277 commands: word-wrap help texts at 70 characters
Martin Geisler <mg@daimi.au.dk>
parents: 7983
diff changeset
1722 With the --switch-parent option, the diff will be against the
d5b1b846f277 commands: word-wrap help texts at 70 characters
Martin Geisler <mg@daimi.au.dk>
parents: 7983
diff changeset
1723 second parent. It can be useful to review a merge.
11177
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
1724
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
1725 Returns 0 on success.
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
1726 """
10015
b5f352f33520 commands.export: accept -r option as revision specification
Alexander Solovyov <piranha@piranha.org.ua>
parents: 10014
diff changeset
1727 changesets += tuple(opts.get('rev', []))
610
4c02464cb9f0 check export options for changeset before running
shaleh@speakeasy.net
parents: 609
diff changeset
1728 if not changesets:
1402
9d2c2e6b32b5 i18n part2: use '_' for all strings who are part of the user interface
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1400
diff changeset
1729 raise util.Abort(_("export requires at least one changeset"))
3707
67f44b825784 Removed unused ui parameter from revpair/revrange and fix its users.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 3706
diff changeset
1730 revs = cmdutil.revrange(repo, changesets)
2874
4ec58b157265 refactor text diff/patch code.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2871
diff changeset
1731 if len(revs) > 1:
4ec58b157265 refactor text diff/patch code.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2871
diff changeset
1732 ui.note(_('exporting patches:\n'))
4ec58b157265 refactor text diff/patch code.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2871
diff changeset
1733 else:
4ec58b157265 refactor text diff/patch code.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2871
diff changeset
1734 ui.note(_('exporting patch:\n'))
10611
e764f24a45ee patch/diff: move patch.export() to cmdutil.export()
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 10596
diff changeset
1735 cmdutil.export(repo, revs, template=opts.get('output'),
7131
23bd7383891c commands: optional options where possible
Alexander Solovyov <piranha@piranha.org.ua>
parents: 7126
diff changeset
1736 switch_parent=opts.get('switch_parent'),
2888
3848488244fc Move ui.diffopts to patch.diffopts where it belongs
Matt Mackall <mpm@selenic.com>
parents: 2883
diff changeset
1737 opts=patch.diffopts(ui, opts))
246
96cde50a746f Migrate rawcommit, import, export, history, and merge
mpm@selenic.com
parents: 245
diff changeset
1738
8902
b9a8b616521d Add a forget command for easily untracking files.
Steve Losh <steve@stevelosh.com>
parents: 8879
diff changeset
1739 def forget(ui, repo, *pats, **opts):
b9a8b616521d Add a forget command for easily untracking files.
Steve Losh <steve@stevelosh.com>
parents: 8879
diff changeset
1740 """forget the specified files on the next commit
b9a8b616521d Add a forget command for easily untracking files.
Steve Losh <steve@stevelosh.com>
parents: 8879
diff changeset
1741
b9a8b616521d Add a forget command for easily untracking files.
Steve Losh <steve@stevelosh.com>
parents: 8879
diff changeset
1742 Mark the specified files so they will no longer be tracked
b9a8b616521d Add a forget command for easily untracking files.
Steve Losh <steve@stevelosh.com>
parents: 8879
diff changeset
1743 after the next commit.
b9a8b616521d Add a forget command for easily untracking files.
Steve Losh <steve@stevelosh.com>
parents: 8879
diff changeset
1744
b9a8b616521d Add a forget command for easily untracking files.
Steve Losh <steve@stevelosh.com>
parents: 8879
diff changeset
1745 This only removes files from the current branch, not from the
b9a8b616521d Add a forget command for easily untracking files.
Steve Losh <steve@stevelosh.com>
parents: 8879
diff changeset
1746 entire project history, and it does not delete them from the
b9a8b616521d Add a forget command for easily untracking files.
Steve Losh <steve@stevelosh.com>
parents: 8879
diff changeset
1747 working directory.
b9a8b616521d Add a forget command for easily untracking files.
Steve Losh <steve@stevelosh.com>
parents: 8879
diff changeset
1748
11193
687c7d395f20 Use our custom hg reStructuredText role some more
Martin Geisler <mg@aragost.com>
parents: 11185
diff changeset
1749 To undo a forget before the next commit, see :hg:`add`.
11177
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
1750
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
1751 Returns 0 on success.
8902
b9a8b616521d Add a forget command for easily untracking files.
Steve Losh <steve@stevelosh.com>
parents: 8879
diff changeset
1752 """
b9a8b616521d Add a forget command for easily untracking files.
Steve Losh <steve@stevelosh.com>
parents: 8879
diff changeset
1753
b9a8b616521d Add a forget command for easily untracking files.
Steve Losh <steve@stevelosh.com>
parents: 8879
diff changeset
1754 if not pats:
b9a8b616521d Add a forget command for easily untracking files.
Steve Losh <steve@stevelosh.com>
parents: 8879
diff changeset
1755 raise util.Abort(_('no files specified'))
b9a8b616521d Add a forget command for easily untracking files.
Steve Losh <steve@stevelosh.com>
parents: 8879
diff changeset
1756
b9a8b616521d Add a forget command for easily untracking files.
Steve Losh <steve@stevelosh.com>
parents: 8879
diff changeset
1757 m = cmdutil.match(repo, pats, opts)
b9a8b616521d Add a forget command for easily untracking files.
Steve Losh <steve@stevelosh.com>
parents: 8879
diff changeset
1758 s = repo.status(match=m, clean=True)
b9a8b616521d Add a forget command for easily untracking files.
Steve Losh <steve@stevelosh.com>
parents: 8879
diff changeset
1759 forget = sorted(s[0] + s[1] + s[3] + s[6])
11177
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
1760 errs = 0
8902
b9a8b616521d Add a forget command for easily untracking files.
Steve Losh <steve@stevelosh.com>
parents: 8879
diff changeset
1761
b9a8b616521d Add a forget command for easily untracking files.
Steve Losh <steve@stevelosh.com>
parents: 8879
diff changeset
1762 for f in m.files():
b9a8b616521d Add a forget command for easily untracking files.
Steve Losh <steve@stevelosh.com>
parents: 8879
diff changeset
1763 if f not in repo.dirstate and not os.path.isdir(m.rel(f)):
b9a8b616521d Add a forget command for easily untracking files.
Steve Losh <steve@stevelosh.com>
parents: 8879
diff changeset
1764 ui.warn(_('not removing %s: file is already untracked\n')
b9a8b616521d Add a forget command for easily untracking files.
Steve Losh <steve@stevelosh.com>
parents: 8879
diff changeset
1765 % m.rel(f))
11177
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
1766 errs = 1
8902
b9a8b616521d Add a forget command for easily untracking files.
Steve Losh <steve@stevelosh.com>
parents: 8879
diff changeset
1767
b9a8b616521d Add a forget command for easily untracking files.
Steve Losh <steve@stevelosh.com>
parents: 8879
diff changeset
1768 for f in forget:
b9a8b616521d Add a forget command for easily untracking files.
Steve Losh <steve@stevelosh.com>
parents: 8879
diff changeset
1769 if ui.verbose or not m.exact(f):
b9a8b616521d Add a forget command for easily untracking files.
Steve Losh <steve@stevelosh.com>
parents: 8879
diff changeset
1770 ui.status(_('removing %s\n') % m.rel(f))
b9a8b616521d Add a forget command for easily untracking files.
Steve Losh <steve@stevelosh.com>
parents: 8879
diff changeset
1771
11303
a1aad8333864 move working dir/dirstate methods from localrepo to workingctx
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 11302
diff changeset
1772 repo[None].remove(forget, unlink=False)
11177
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
1773 return errs
8902
b9a8b616521d Add a forget command for easily untracking files.
Steve Losh <steve@stevelosh.com>
parents: 8879
diff changeset
1774
1108
7a75d8fbbdaf Remove some options from 'hg grep':
Thomas Arendsen Hein <thomas@intevation.de>
parents: 1106
diff changeset
1775 def grep(ui, repo, pattern, *pats, **opts):
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
1776 """search for a pattern in specified files and revisions
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
1777
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
1778 Search revisions of files for a regular expression.
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
1779
6448
cd3d49ffc6f6 Consistently 1 space after full stops in command doc strings
Christian Ebert <blacktrash@gmx.net>
parents: 6442
diff changeset
1780 This command behaves differently than Unix grep. It only accepts
cd3d49ffc6f6 Consistently 1 space after full stops in command doc strings
Christian Ebert <blacktrash@gmx.net>
parents: 6442
diff changeset
1781 Python/Perl regexps. It searches repository history, not the
8004
d5b1b846f277 commands: word-wrap help texts at 70 characters
Martin Geisler <mg@daimi.au.dk>
parents: 7983
diff changeset
1782 working directory. It always prints the revision number in which a
d5b1b846f277 commands: word-wrap help texts at 70 characters
Martin Geisler <mg@daimi.au.dk>
parents: 7983
diff changeset
1783 match appears.
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
1784
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
1785 By default, grep only prints output for the first revision of a
6448
cd3d49ffc6f6 Consistently 1 space after full stops in command doc strings
Christian Ebert <blacktrash@gmx.net>
parents: 6442
diff changeset
1786 file in which it finds a match. To get it to print every revision
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
1787 that contains a change in match status ("-" for a match that
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
1788 becomes a non-match, or "+" for a non-match that becomes a match),
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
1789 use the --all flag.
11177
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
1790
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
1791 Returns 0 if a match is found, 1 otherwise.
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
1792 """
1057
2fd15d743b3b Add grep command.
Bryan O'Sullivan <bos@serpentine.com>
parents: 1042
diff changeset
1793 reflags = 0
7131
23bd7383891c commands: optional options where possible
Alexander Solovyov <piranha@piranha.org.ua>
parents: 7126
diff changeset
1794 if opts.get('ignore_case'):
1065
6e94c0365d98 Cleanups to commands.py
Thomas Arendsen Hein <thomas@intevation.de>
parents: 1062
diff changeset
1795 reflags |= re.I
4877
242026115e6a hg grep: handle re.compile errors & update tests/test-grep
Giorgos Keramidas <keramida@ceid.upatras.gr>
parents: 4835
diff changeset
1796 try:
242026115e6a hg grep: handle re.compile errors & update tests/test-grep
Giorgos Keramidas <keramida@ceid.upatras.gr>
parents: 4835
diff changeset
1797 regexp = re.compile(pattern, reflags)
12385
9a93f4fb141b grep: only catch re.error when compiling regular expressions
Brodie Rao <brodie@bitheap.org>
parents: 12382
diff changeset
1798 except re.error, inst:
6057
218d5b9aa466 Remove trailing ! from two error messages as this was confusing.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 6048
diff changeset
1799 ui.warn(_("grep: invalid match pattern: %s\n") % inst)
11177
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
1800 return 1
1146
9061f79c6c6f grep: extend functionality, add man page entry, add unit test.
bos@serpentine.internal.keyresearch.com
parents: 1145
diff changeset
1801 sep, eol = ':', '\n'
7131
23bd7383891c commands: optional options where possible
Alexander Solovyov <piranha@piranha.org.ua>
parents: 7126
diff changeset
1802 if opts.get('print0'):
1146
9061f79c6c6f grep: extend functionality, add man page entry, add unit test.
bos@serpentine.internal.keyresearch.com
parents: 1145
diff changeset
1803 sep = eol = '\0'
1057
2fd15d743b3b Add grep command.
Bryan O'Sullivan <bos@serpentine.com>
parents: 1042
diff changeset
1804
9097
431462bd8478 fix memory usage of revlog caches by limiting cache size [issue1639]
Matt Mackall <mpm@selenic.com>
parents: 8995
diff changeset
1805 getfile = util.lrucachefunc(repo.file)
1057
2fd15d743b3b Add grep command.
Bryan O'Sullivan <bos@serpentine.com>
parents: 1042
diff changeset
1806
2fd15d743b3b Add grep command.
Bryan O'Sullivan <bos@serpentine.com>
parents: 1042
diff changeset
1807 def matchlines(body):
1059
4eab07ef66e2 grep: speed up matching, and only return one match per line.
bos@serpentine.internal.keyresearch.com
parents: 1058
diff changeset
1808 begin = 0
4eab07ef66e2 grep: speed up matching, and only return one match per line.
bos@serpentine.internal.keyresearch.com
parents: 1058
diff changeset
1809 linenum = 0
4eab07ef66e2 grep: speed up matching, and only return one match per line.
bos@serpentine.internal.keyresearch.com
parents: 1058
diff changeset
1810 while True:
4eab07ef66e2 grep: speed up matching, and only return one match per line.
bos@serpentine.internal.keyresearch.com
parents: 1058
diff changeset
1811 match = regexp.search(body, begin)
1065
6e94c0365d98 Cleanups to commands.py
Thomas Arendsen Hein <thomas@intevation.de>
parents: 1062
diff changeset
1812 if not match:
6e94c0365d98 Cleanups to commands.py
Thomas Arendsen Hein <thomas@intevation.de>
parents: 1062
diff changeset
1813 break
1059
4eab07ef66e2 grep: speed up matching, and only return one match per line.
bos@serpentine.internal.keyresearch.com
parents: 1058
diff changeset
1814 mstart, mend = match.span()
4eab07ef66e2 grep: speed up matching, and only return one match per line.
bos@serpentine.internal.keyresearch.com
parents: 1058
diff changeset
1815 linenum += body.count('\n', begin, mstart) + 1
4eab07ef66e2 grep: speed up matching, and only return one match per line.
bos@serpentine.internal.keyresearch.com
parents: 1058
diff changeset
1816 lstart = body.rfind('\n', begin, mstart) + 1 or begin
7230
261a9f47b44b grep: avoid infinite loop when trailing newline is missing
Matt Mackall <mpm@selenic.com>
parents: 7228
diff changeset
1817 begin = body.find('\n', mend) + 1 or len(body)
261a9f47b44b grep: avoid infinite loop when trailing newline is missing
Matt Mackall <mpm@selenic.com>
parents: 7228
diff changeset
1818 lend = begin - 1
1059
4eab07ef66e2 grep: speed up matching, and only return one match per line.
bos@serpentine.internal.keyresearch.com
parents: 1058
diff changeset
1819 yield linenum, mstart - lstart, mend - lstart, body[lstart:lend]
1057
2fd15d743b3b Add grep command.
Bryan O'Sullivan <bos@serpentine.com>
parents: 1042
diff changeset
1820
1559
59b3639df0a9 Convert all classes to new-style classes by deriving them from object.
Eric Hopper <hopper@omnifarious.org>
parents: 1552
diff changeset
1821 class linestate(object):
1057
2fd15d743b3b Add grep command.
Bryan O'Sullivan <bos@serpentine.com>
parents: 1042
diff changeset
1822 def __init__(self, line, linenum, colstart, colend):
2fd15d743b3b Add grep command.
Bryan O'Sullivan <bos@serpentine.com>
parents: 1042
diff changeset
1823 self.line = line
2fd15d743b3b Add grep command.
Bryan O'Sullivan <bos@serpentine.com>
parents: 1042
diff changeset
1824 self.linenum = linenum
2fd15d743b3b Add grep command.
Bryan O'Sullivan <bos@serpentine.com>
parents: 1042
diff changeset
1825 self.colstart = colstart
2fd15d743b3b Add grep command.
Bryan O'Sullivan <bos@serpentine.com>
parents: 1042
diff changeset
1826 self.colend = colend
2869
81f351c5264d grep: display correct user/revision for --all in reverse.
Brendan Cully <brendan@kublai.com>
parents: 2854
diff changeset
1827
6469
fb502719c75c python 2.6 compatibility: add __hash__ to classes that have __eq__
Paul Moore <p.f.moore@gmail.com>
parents: 6468
diff changeset
1828 def __hash__(self):
fb502719c75c python 2.6 compatibility: add __hash__ to classes that have __eq__
Paul Moore <p.f.moore@gmail.com>
parents: 6468
diff changeset
1829 return hash((self.linenum, self.line))
fb502719c75c python 2.6 compatibility: add __hash__ to classes that have __eq__
Paul Moore <p.f.moore@gmail.com>
parents: 6468
diff changeset
1830
1065
6e94c0365d98 Cleanups to commands.py
Thomas Arendsen Hein <thomas@intevation.de>
parents: 1062
diff changeset
1831 def __eq__(self, other):
6e94c0365d98 Cleanups to commands.py
Thomas Arendsen Hein <thomas@intevation.de>
parents: 1062
diff changeset
1832 return self.line == other.line
1057
2fd15d743b3b Add grep command.
Bryan O'Sullivan <bos@serpentine.com>
parents: 1042
diff changeset
1833
2fd15d743b3b Add grep command.
Bryan O'Sullivan <bos@serpentine.com>
parents: 1042
diff changeset
1834 matches = {}
2870
8eaaf1321bfe grep: add --follow support.
Brendan Cully <brendan@kublai.com>
parents: 2869
diff changeset
1835 copies = {}
1057
2fd15d743b3b Add grep command.
Bryan O'Sullivan <bos@serpentine.com>
parents: 1042
diff changeset
1836 def grepbody(fn, rev, body):
2869
81f351c5264d grep: display correct user/revision for --all in reverse.
Brendan Cully <brendan@kublai.com>
parents: 2854
diff changeset
1837 matches[rev].setdefault(fn, [])
1057
2fd15d743b3b Add grep command.
Bryan O'Sullivan <bos@serpentine.com>
parents: 1042
diff changeset
1838 m = matches[rev][fn]
2fd15d743b3b Add grep command.
Bryan O'Sullivan <bos@serpentine.com>
parents: 1042
diff changeset
1839 for lnum, cstart, cend, line in matchlines(body):
2fd15d743b3b Add grep command.
Bryan O'Sullivan <bos@serpentine.com>
parents: 1042
diff changeset
1840 s = linestate(line, lnum, cstart, cend)
2869
81f351c5264d grep: display correct user/revision for --all in reverse.
Brendan Cully <brendan@kublai.com>
parents: 2854
diff changeset
1841 m.append(s)
81f351c5264d grep: display correct user/revision for --all in reverse.
Brendan Cully <brendan@kublai.com>
parents: 2854
diff changeset
1842
81f351c5264d grep: display correct user/revision for --all in reverse.
Brendan Cully <brendan@kublai.com>
parents: 2854
diff changeset
1843 def difflinestates(a, b):
81f351c5264d grep: display correct user/revision for --all in reverse.
Brendan Cully <brendan@kublai.com>
parents: 2854
diff changeset
1844 sm = difflib.SequenceMatcher(None, a, b)
81f351c5264d grep: display correct user/revision for --all in reverse.
Brendan Cully <brendan@kublai.com>
parents: 2854
diff changeset
1845 for tag, alo, ahi, blo, bhi in sm.get_opcodes():
81f351c5264d grep: display correct user/revision for --all in reverse.
Brendan Cully <brendan@kublai.com>
parents: 2854
diff changeset
1846 if tag == 'insert':
3472
df7202f6887c use xrange instead of range
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 3471
diff changeset
1847 for i in xrange(blo, bhi):
2869
81f351c5264d grep: display correct user/revision for --all in reverse.
Brendan Cully <brendan@kublai.com>
parents: 2854
diff changeset
1848 yield ('+', b[i])
81f351c5264d grep: display correct user/revision for --all in reverse.
Brendan Cully <brendan@kublai.com>
parents: 2854
diff changeset
1849 elif tag == 'delete':
3472
df7202f6887c use xrange instead of range
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 3471
diff changeset
1850 for i in xrange(alo, ahi):
2869
81f351c5264d grep: display correct user/revision for --all in reverse.
Brendan Cully <brendan@kublai.com>
parents: 2854
diff changeset
1851 yield ('-', a[i])
81f351c5264d grep: display correct user/revision for --all in reverse.
Brendan Cully <brendan@kublai.com>
parents: 2854
diff changeset
1852 elif tag == 'replace':
3472
df7202f6887c use xrange instead of range
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 3471
diff changeset
1853 for i in xrange(alo, ahi):
2869
81f351c5264d grep: display correct user/revision for --all in reverse.
Brendan Cully <brendan@kublai.com>
parents: 2854
diff changeset
1854 yield ('-', a[i])
3472
df7202f6887c use xrange instead of range
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 3471
diff changeset
1855 for i in xrange(blo, bhi):
2869
81f351c5264d grep: display correct user/revision for --all in reverse.
Brendan Cully <brendan@kublai.com>
parents: 2854
diff changeset
1856 yield ('+', b[i])
81f351c5264d grep: display correct user/revision for --all in reverse.
Brendan Cully <brendan@kublai.com>
parents: 2854
diff changeset
1857
9655
6d7d3f849062 walkchangerevs: internalize ctx caching
Matt Mackall <mpm@selenic.com>
parents: 9654
diff changeset
1858 def display(fn, ctx, pstates, states):
6d7d3f849062 walkchangerevs: internalize ctx caching
Matt Mackall <mpm@selenic.com>
parents: 9654
diff changeset
1859 rev = ctx.rev()
6134
7b937b26adf7 Make annotae/grep print short dates with -q/--quiet.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 6133
diff changeset
1860 datefunc = ui.quiet and util.shortdate or util.datestr
3951
cb66641cdee3 grep: remove count handling, simplify, fix issue337
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 3950
diff changeset
1861 found = False
1146
9061f79c6c6f grep: extend functionality, add man page entry, add unit test.
bos@serpentine.internal.keyresearch.com
parents: 1145
diff changeset
1862 filerevmatches = {}
7131
23bd7383891c commands: optional options where possible
Alexander Solovyov <piranha@piranha.org.ua>
parents: 7126
diff changeset
1863 if opts.get('all'):
8849
80cc4b1a62d0 compare grep result between target and its parent
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 8834
diff changeset
1864 iter = difflinestates(pstates, states)
2869
81f351c5264d grep: display correct user/revision for --all in reverse.
Brendan Cully <brendan@kublai.com>
parents: 2854
diff changeset
1865 else:
8849
80cc4b1a62d0 compare grep result between target and its parent
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 8834
diff changeset
1866 iter = [('', l) for l in states]
3951
cb66641cdee3 grep: remove count handling, simplify, fix issue337
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 3950
diff changeset
1867 for change, l in iter:
9655
6d7d3f849062 walkchangerevs: internalize ctx caching
Matt Mackall <mpm@selenic.com>
parents: 9654
diff changeset
1868 cols = [fn, str(rev)]
10816
635d601e8f21 grep: make use of output labeling
Brodie Rao <brodie@bitheap.org>
parents: 10654
diff changeset
1869 before, match, after = None, None, None
7131
23bd7383891c commands: optional options where possible
Alexander Solovyov <piranha@piranha.org.ua>
parents: 7126
diff changeset
1870 if opts.get('line_number'):
1615
83238c1db6de Cleanup of indentation, spacing, newlines, strings and line length
Thomas Arendsen Hein <thomas@intevation.de>
parents: 1607
diff changeset
1871 cols.append(str(l.linenum))
7131
23bd7383891c commands: optional options where possible
Alexander Solovyov <piranha@piranha.org.ua>
parents: 7126
diff changeset
1872 if opts.get('all'):
1615
83238c1db6de Cleanup of indentation, spacing, newlines, strings and line length
Thomas Arendsen Hein <thomas@intevation.de>
parents: 1607
diff changeset
1873 cols.append(change)
7131
23bd7383891c commands: optional options where possible
Alexander Solovyov <piranha@piranha.org.ua>
parents: 7126
diff changeset
1874 if opts.get('user'):
9655
6d7d3f849062 walkchangerevs: internalize ctx caching
Matt Mackall <mpm@selenic.com>
parents: 9654
diff changeset
1875 cols.append(ui.shortuser(ctx.user()))
6133
779f2309d67a Add hg grep -d/--date to list the commit date of matched revisions.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 6109
diff changeset
1876 if opts.get('date'):
9655
6d7d3f849062 walkchangerevs: internalize ctx caching
Matt Mackall <mpm@selenic.com>
parents: 9654
diff changeset
1877 cols.append(datefunc(ctx.date()))
7131
23bd7383891c commands: optional options where possible
Alexander Solovyov <piranha@piranha.org.ua>
parents: 7126
diff changeset
1878 if opts.get('files_with_matches'):
9655
6d7d3f849062 walkchangerevs: internalize ctx caching
Matt Mackall <mpm@selenic.com>
parents: 9654
diff changeset
1879 c = (fn, rev)
1615
83238c1db6de Cleanup of indentation, spacing, newlines, strings and line length
Thomas Arendsen Hein <thomas@intevation.de>
parents: 1607
diff changeset
1880 if c in filerevmatches:
83238c1db6de Cleanup of indentation, spacing, newlines, strings and line length
Thomas Arendsen Hein <thomas@intevation.de>
parents: 1607
diff changeset
1881 continue
1146
9061f79c6c6f grep: extend functionality, add man page entry, add unit test.
bos@serpentine.internal.keyresearch.com
parents: 1145
diff changeset
1882 filerevmatches[c] = 1
9061f79c6c6f grep: extend functionality, add man page entry, add unit test.
bos@serpentine.internal.keyresearch.com
parents: 1145
diff changeset
1883 else:
10816
635d601e8f21 grep: make use of output labeling
Brodie Rao <brodie@bitheap.org>
parents: 10654
diff changeset
1884 before = l.line[:l.colstart]
635d601e8f21 grep: make use of output labeling
Brodie Rao <brodie@bitheap.org>
parents: 10654
diff changeset
1885 match = l.line[l.colstart:l.colend]
635d601e8f21 grep: make use of output labeling
Brodie Rao <brodie@bitheap.org>
parents: 10654
diff changeset
1886 after = l.line[l.colend:]
635d601e8f21 grep: make use of output labeling
Brodie Rao <brodie@bitheap.org>
parents: 10654
diff changeset
1887 ui.write(sep.join(cols))
635d601e8f21 grep: make use of output labeling
Brodie Rao <brodie@bitheap.org>
parents: 10654
diff changeset
1888 if before is not None:
635d601e8f21 grep: make use of output labeling
Brodie Rao <brodie@bitheap.org>
parents: 10654
diff changeset
1889 ui.write(sep + before)
635d601e8f21 grep: make use of output labeling
Brodie Rao <brodie@bitheap.org>
parents: 10654
diff changeset
1890 ui.write(match, label='grep.match')
635d601e8f21 grep: make use of output labeling
Brodie Rao <brodie@bitheap.org>
parents: 10654
diff changeset
1891 ui.write(after)
635d601e8f21 grep: make use of output labeling
Brodie Rao <brodie@bitheap.org>
parents: 10654
diff changeset
1892 ui.write(eol)
3951
cb66641cdee3 grep: remove count handling, simplify, fix issue337
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 3950
diff changeset
1893 found = True
cb66641cdee3 grep: remove count handling, simplify, fix issue337
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 3950
diff changeset
1894 return found
1057
2fd15d743b3b Add grep command.
Bryan O'Sullivan <bos@serpentine.com>
parents: 1042
diff changeset
1895
1145
bd917e1a26dd grep: change default to printing first matching rev.
Bryan O'Sullivan <bos@serpentine.com>
parents: 1116
diff changeset
1896 skip = {}
8849
80cc4b1a62d0 compare grep result between target and its parent
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 8834
diff changeset
1897 revfiles = {}
9652
2cb0cab10d2e walkchangerevs: pull out matchfn
Matt Mackall <mpm@selenic.com>
parents: 9625
diff changeset
1898 matchfn = cmdutil.match(repo, pats, opts)
3951
cb66641cdee3 grep: remove count handling, simplify, fix issue337
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 3950
diff changeset
1899 found = False
2870
8eaaf1321bfe grep: add --follow support.
Brendan Cully <brendan@kublai.com>
parents: 2869
diff changeset
1900 follow = opts.get('follow')
9662
f3d60543924f walkchangerevs: move 'add' to callback
Matt Mackall <mpm@selenic.com>
parents: 9656
diff changeset
1901
f3d60543924f walkchangerevs: move 'add' to callback
Matt Mackall <mpm@selenic.com>
parents: 9656
diff changeset
1902 def prep(ctx, fns):
f3d60543924f walkchangerevs: move 'add' to callback
Matt Mackall <mpm@selenic.com>
parents: 9656
diff changeset
1903 rev = ctx.rev()
f3d60543924f walkchangerevs: move 'add' to callback
Matt Mackall <mpm@selenic.com>
parents: 9656
diff changeset
1904 pctx = ctx.parents()[0]
f3d60543924f walkchangerevs: move 'add' to callback
Matt Mackall <mpm@selenic.com>
parents: 9656
diff changeset
1905 parent = pctx.rev()
f3d60543924f walkchangerevs: move 'add' to callback
Matt Mackall <mpm@selenic.com>
parents: 9656
diff changeset
1906 matches.setdefault(rev, {})
f3d60543924f walkchangerevs: move 'add' to callback
Matt Mackall <mpm@selenic.com>
parents: 9656
diff changeset
1907 matches.setdefault(parent, {})
f3d60543924f walkchangerevs: move 'add' to callback
Matt Mackall <mpm@selenic.com>
parents: 9656
diff changeset
1908 files = revfiles.setdefault(rev, [])
f3d60543924f walkchangerevs: move 'add' to callback
Matt Mackall <mpm@selenic.com>
parents: 9656
diff changeset
1909 for fn in fns:
f3d60543924f walkchangerevs: move 'add' to callback
Matt Mackall <mpm@selenic.com>
parents: 9656
diff changeset
1910 flog = getfile(fn)
f3d60543924f walkchangerevs: move 'add' to callback
Matt Mackall <mpm@selenic.com>
parents: 9656
diff changeset
1911 try:
f3d60543924f walkchangerevs: move 'add' to callback
Matt Mackall <mpm@selenic.com>
parents: 9656
diff changeset
1912 fnode = ctx.filenode(fn)
f3d60543924f walkchangerevs: move 'add' to callback
Matt Mackall <mpm@selenic.com>
parents: 9656
diff changeset
1913 except error.LookupError:
f3d60543924f walkchangerevs: move 'add' to callback
Matt Mackall <mpm@selenic.com>
parents: 9656
diff changeset
1914 continue
f3d60543924f walkchangerevs: move 'add' to callback
Matt Mackall <mpm@selenic.com>
parents: 9656
diff changeset
1915
f3d60543924f walkchangerevs: move 'add' to callback
Matt Mackall <mpm@selenic.com>
parents: 9656
diff changeset
1916 copied = flog.renamed(fnode)
f3d60543924f walkchangerevs: move 'add' to callback
Matt Mackall <mpm@selenic.com>
parents: 9656
diff changeset
1917 copy = follow and copied and copied[0]
f3d60543924f walkchangerevs: move 'add' to callback
Matt Mackall <mpm@selenic.com>
parents: 9656
diff changeset
1918 if copy:
f3d60543924f walkchangerevs: move 'add' to callback
Matt Mackall <mpm@selenic.com>
parents: 9656
diff changeset
1919 copies.setdefault(rev, {})[fn] = copy
f3d60543924f walkchangerevs: move 'add' to callback
Matt Mackall <mpm@selenic.com>
parents: 9656
diff changeset
1920 if fn in skip:
f3d60543924f walkchangerevs: move 'add' to callback
Matt Mackall <mpm@selenic.com>
parents: 9656
diff changeset
1921 if copy:
f3d60543924f walkchangerevs: move 'add' to callback
Matt Mackall <mpm@selenic.com>
parents: 9656
diff changeset
1922 skip[copy] = True
f3d60543924f walkchangerevs: move 'add' to callback
Matt Mackall <mpm@selenic.com>
parents: 9656
diff changeset
1923 continue
f3d60543924f walkchangerevs: move 'add' to callback
Matt Mackall <mpm@selenic.com>
parents: 9656
diff changeset
1924 files.append(fn)
f3d60543924f walkchangerevs: move 'add' to callback
Matt Mackall <mpm@selenic.com>
parents: 9656
diff changeset
1925
f3d60543924f walkchangerevs: move 'add' to callback
Matt Mackall <mpm@selenic.com>
parents: 9656
diff changeset
1926 if fn not in matches[rev]:
f3d60543924f walkchangerevs: move 'add' to callback
Matt Mackall <mpm@selenic.com>
parents: 9656
diff changeset
1927 grepbody(fn, rev, flog.read(fnode))
f3d60543924f walkchangerevs: move 'add' to callback
Matt Mackall <mpm@selenic.com>
parents: 9656
diff changeset
1928
f3d60543924f walkchangerevs: move 'add' to callback
Matt Mackall <mpm@selenic.com>
parents: 9656
diff changeset
1929 pfn = copy or fn
f3d60543924f walkchangerevs: move 'add' to callback
Matt Mackall <mpm@selenic.com>
parents: 9656
diff changeset
1930 if pfn not in matches[parent]:
1057
2fd15d743b3b Add grep command.
Bryan O'Sullivan <bos@serpentine.com>
parents: 1042
diff changeset
1931 try:
9662
f3d60543924f walkchangerevs: move 'add' to callback
Matt Mackall <mpm@selenic.com>
parents: 9656
diff changeset
1932 fnode = pctx.filenode(pfn)
f3d60543924f walkchangerevs: move 'add' to callback
Matt Mackall <mpm@selenic.com>
parents: 9656
diff changeset
1933 grepbody(pfn, parent, flog.read(fnode))
7633
08cabecfa8a8 errors: move revlog errors
Matt Mackall <mpm@selenic.com>
parents: 7632
diff changeset
1934 except error.LookupError:
9662
f3d60543924f walkchangerevs: move 'add' to callback
Matt Mackall <mpm@selenic.com>
parents: 9656
diff changeset
1935 pass
f3d60543924f walkchangerevs: move 'add' to callback
Matt Mackall <mpm@selenic.com>
parents: 9656
diff changeset
1936
9665
1de5ebfa5585 walkchangerevs: drop ui arg
Matt Mackall <mpm@selenic.com>
parents: 9663
diff changeset
1937 for ctx in cmdutil.walkchangerevs(repo, matchfn, opts, prep):
9662
f3d60543924f walkchangerevs: move 'add' to callback
Matt Mackall <mpm@selenic.com>
parents: 9656
diff changeset
1938 rev = ctx.rev()
f3d60543924f walkchangerevs: move 'add' to callback
Matt Mackall <mpm@selenic.com>
parents: 9656
diff changeset
1939 parent = ctx.parents()[0].rev()
f3d60543924f walkchangerevs: move 'add' to callback
Matt Mackall <mpm@selenic.com>
parents: 9656
diff changeset
1940 for fn in sorted(revfiles.get(rev, [])):
f3d60543924f walkchangerevs: move 'add' to callback
Matt Mackall <mpm@selenic.com>
parents: 9656
diff changeset
1941 states = matches[rev][fn]
f3d60543924f walkchangerevs: move 'add' to callback
Matt Mackall <mpm@selenic.com>
parents: 9656
diff changeset
1942 copy = copies.get(rev, {}).get(fn)
f3d60543924f walkchangerevs: move 'add' to callback
Matt Mackall <mpm@selenic.com>
parents: 9656
diff changeset
1943 if fn in skip:
8849
80cc4b1a62d0 compare grep result between target and its parent
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 8834
diff changeset
1944 if copy:
9662
f3d60543924f walkchangerevs: move 'add' to callback
Matt Mackall <mpm@selenic.com>
parents: 9656
diff changeset
1945 skip[copy] = True
f3d60543924f walkchangerevs: move 'add' to callback
Matt Mackall <mpm@selenic.com>
parents: 9656
diff changeset
1946 continue
f3d60543924f walkchangerevs: move 'add' to callback
Matt Mackall <mpm@selenic.com>
parents: 9656
diff changeset
1947 pstates = matches.get(parent, {}).get(copy or fn, [])
f3d60543924f walkchangerevs: move 'add' to callback
Matt Mackall <mpm@selenic.com>
parents: 9656
diff changeset
1948 if pstates or states:
f3d60543924f walkchangerevs: move 'add' to callback
Matt Mackall <mpm@selenic.com>
parents: 9656
diff changeset
1949 r = display(fn, ctx, pstates, states)
f3d60543924f walkchangerevs: move 'add' to callback
Matt Mackall <mpm@selenic.com>
parents: 9656
diff changeset
1950 found = found or r
f3d60543924f walkchangerevs: move 'add' to callback
Matt Mackall <mpm@selenic.com>
parents: 9656
diff changeset
1951 if r and not opts.get('all'):
f3d60543924f walkchangerevs: move 'add' to callback
Matt Mackall <mpm@selenic.com>
parents: 9656
diff changeset
1952 skip[fn] = True
8849
80cc4b1a62d0 compare grep result between target and its parent
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 8834
diff changeset
1953 if copy:
80cc4b1a62d0 compare grep result between target and its parent
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 8834
diff changeset
1954 skip[copy] = True
9662
f3d60543924f walkchangerevs: move 'add' to callback
Matt Mackall <mpm@selenic.com>
parents: 9656
diff changeset
1955 del matches[rev]
f3d60543924f walkchangerevs: move 'add' to callback
Matt Mackall <mpm@selenic.com>
parents: 9656
diff changeset
1956 del revfiles[rev]
1057
2fd15d743b3b Add grep command.
Bryan O'Sullivan <bos@serpentine.com>
parents: 1042
diff changeset
1957
11177
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
1958 return not found
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
1959
4648
8e503fa54d2d Add option to heads to show only heads for current branch.
Eric Hopper <hopper@omnifarious.org>
parents: 4646
diff changeset
1960 def heads(ui, repo, *branchrevs, **opts):
8e503fa54d2d Add option to heads to show only heads for current branch.
Eric Hopper <hopper@omnifarious.org>
parents: 4646
diff changeset
1961 """show current repository heads or show branch heads
8e503fa54d2d Add option to heads to show only heads for current branch.
Eric Hopper <hopper@omnifarious.org>
parents: 4646
diff changeset
1962
10350
fd511e9eeea6 commands: do all branch heads by default, demote topological to -t/--topo
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 10349
diff changeset
1963 With no arguments, show all repository branch heads.
4648
8e503fa54d2d Add option to heads to show only heads for current branch.
Eric Hopper <hopper@omnifarious.org>
parents: 4646
diff changeset
1964
9502
8d7d68dd91fd commands: tweak help for 'heads'.
Greg Ward <greg-hg@gerg.ca>
parents: 9189
diff changeset
1965 Repository "heads" are changesets with no child changesets. They are
8d7d68dd91fd commands: tweak help for 'heads'.
Greg Ward <greg-hg@gerg.ca>
parents: 9189
diff changeset
1966 where development generally takes place and are the usual targets
10350
fd511e9eeea6 commands: do all branch heads by default, demote topological to -t/--topo
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 10349
diff changeset
1967 for update and merge operations. Branch heads are changesets that have
fd511e9eeea6 commands: do all branch heads by default, demote topological to -t/--topo
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 10349
diff changeset
1968 no child changeset on the same branch.
fd511e9eeea6 commands: do all branch heads by default, demote topological to -t/--topo
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 10349
diff changeset
1969
fd511e9eeea6 commands: do all branch heads by default, demote topological to -t/--topo
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 10349
diff changeset
1970 If one or more REVs are given, only branch heads on the branches
fd511e9eeea6 commands: do all branch heads by default, demote topological to -t/--topo
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 10349
diff changeset
1971 associated with the specified changesets are shown.
9502
8d7d68dd91fd commands: tweak help for 'heads'.
Greg Ward <greg-hg@gerg.ca>
parents: 9189
diff changeset
1972
8d7d68dd91fd commands: tweak help for 'heads'.
Greg Ward <greg-hg@gerg.ca>
parents: 9189
diff changeset
1973 If -c/--closed is specified, also show branch heads marked closed
11193
687c7d395f20 Use our custom hg reStructuredText role some more
Martin Geisler <mg@aragost.com>
parents: 11185
diff changeset
1974 (see :hg:`commit --close-branch`).
9502
8d7d68dd91fd commands: tweak help for 'heads'.
Greg Ward <greg-hg@gerg.ca>
parents: 9189
diff changeset
1975
8d7d68dd91fd commands: tweak help for 'heads'.
Greg Ward <greg-hg@gerg.ca>
parents: 9189
diff changeset
1976 If STARTREV is specified, only those heads that are descendants of
8d7d68dd91fd commands: tweak help for 'heads'.
Greg Ward <greg-hg@gerg.ca>
parents: 9189
diff changeset
1977 STARTREV will be displayed.
10350
fd511e9eeea6 commands: do all branch heads by default, demote topological to -t/--topo
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 10349
diff changeset
1978
fd511e9eeea6 commands: do all branch heads by default, demote topological to -t/--topo
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 10349
diff changeset
1979 If -t/--topo is specified, named branch mechanics will be ignored and only
fd511e9eeea6 commands: do all branch heads by default, demote topological to -t/--topo
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 10349
diff changeset
1980 changesets without children will be shown.
11177
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
1981
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
1982 Returns 0 if matching heads are found, 1 if not.
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
1983 """
10328
0798a3d5f812 commands: simplify heads a little bit before I start hacking it up
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 10326
diff changeset
1984
12925
6eab8f0df2ca commands: add revset support to most commands
Matt Mackall <mpm@selenic.com>
parents: 12918
diff changeset
1985 start = None
6eab8f0df2ca commands: add revset support to most commands
Matt Mackall <mpm@selenic.com>
parents: 12918
diff changeset
1986 if 'rev' in opts:
6eab8f0df2ca commands: add revset support to most commands
Matt Mackall <mpm@selenic.com>
parents: 12918
diff changeset
1987 start = cmdutil.revsingle(repo, opts['rev'], None).node()
10328
0798a3d5f812 commands: simplify heads a little bit before I start hacking it up
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 10326
diff changeset
1988
10350
fd511e9eeea6 commands: do all branch heads by default, demote topological to -t/--topo
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 10349
diff changeset
1989 if opts.get('topo'):
fd511e9eeea6 commands: do all branch heads by default, demote topological to -t/--topo
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 10349
diff changeset
1990 heads = [repo[h] for h in repo.heads(start)]
1550
ccb9b62de892 add a -r/--rev option to heads to show only heads descendant from rev
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1547
diff changeset
1991 else:
10348
0fc5222c0951 commands: externalize branchheads so we can do it for all branches at once
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 10347
diff changeset
1992 heads = []
0fc5222c0951 commands: externalize branchheads so we can do it for all branches at once
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 10347
diff changeset
1993 for b, ls in repo.branchmap().iteritems():
0fc5222c0951 commands: externalize branchheads so we can do it for all branches at once
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 10347
diff changeset
1994 if start is None:
10350
fd511e9eeea6 commands: do all branch heads by default, demote topological to -t/--topo
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 10349
diff changeset
1995 heads += [repo[h] for h in ls]
10348
0fc5222c0951 commands: externalize branchheads so we can do it for all branches at once
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 10347
diff changeset
1996 continue
0fc5222c0951 commands: externalize branchheads so we can do it for all branches at once
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 10347
diff changeset
1997 startrev = repo.changelog.rev(start)
0fc5222c0951 commands: externalize branchheads so we can do it for all branches at once
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 10347
diff changeset
1998 descendants = set(repo.changelog.descendants(startrev))
0fc5222c0951 commands: externalize branchheads so we can do it for all branches at once
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 10347
diff changeset
1999 descendants.add(startrev)
10350
fd511e9eeea6 commands: do all branch heads by default, demote topological to -t/--topo
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 10349
diff changeset
2000 rev = repo.changelog.rev
fd511e9eeea6 commands: do all branch heads by default, demote topological to -t/--topo
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 10349
diff changeset
2001 heads += [repo[h] for h in ls if rev(h) in descendants]
fd511e9eeea6 commands: do all branch heads by default, demote topological to -t/--topo
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 10349
diff changeset
2002
fd511e9eeea6 commands: do all branch heads by default, demote topological to -t/--topo
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 10349
diff changeset
2003 if branchrevs:
13047
6c375e07d673 branch: operate on branch names in local string space where possible
Matt Mackall <mpm@selenic.com>
parents: 13022
diff changeset
2004 branches = set(repo[br].branch() for br in branchrevs)
10350
fd511e9eeea6 commands: do all branch heads by default, demote topological to -t/--topo
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 10349
diff changeset
2005 heads = [h for h in heads if h.branch() in branches]
10328
0798a3d5f812 commands: simplify heads a little bit before I start hacking it up
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 10326
diff changeset
2006
10349
20356e69710c commands: actually implement --closed for topological heads
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 10348
diff changeset
2007 if not opts.get('closed'):
10350
fd511e9eeea6 commands: do all branch heads by default, demote topological to -t/--topo
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 10349
diff changeset
2008 heads = [h for h in heads if not h.extra().get('close')]
10349
20356e69710c commands: actually implement --closed for topological heads
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 10348
diff changeset
2009
20356e69710c commands: actually implement --closed for topological heads
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 10348
diff changeset
2010 if opts.get('active') and branchrevs:
20356e69710c commands: actually implement --closed for topological heads
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 10348
diff changeset
2011 dagheads = repo.heads(start)
10350
fd511e9eeea6 commands: do all branch heads by default, demote topological to -t/--topo
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 10349
diff changeset
2012 heads = [h for h in heads if h.node() in dagheads]
10349
20356e69710c commands: actually implement --closed for topological heads
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 10348
diff changeset
2013
20356e69710c commands: actually implement --closed for topological heads
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 10348
diff changeset
2014 if branchrevs:
10350
fd511e9eeea6 commands: do all branch heads by default, demote topological to -t/--topo
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 10349
diff changeset
2015 haveheads = set(h.branch() for h in heads)
10346
e2db50cae6e6 commands: don't do too much work for error messages
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 10345
diff changeset
2016 if branches - haveheads:
13047
6c375e07d673 branch: operate on branch names in local string space where possible
Matt Mackall <mpm@selenic.com>
parents: 13022
diff changeset
2017 headless = ', '.join(b for b in branches - haveheads)
10346
e2db50cae6e6 commands: don't do too much work for error messages
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 10345
diff changeset
2018 msg = _('no open branch heads found on branches %s')
e2db50cae6e6 commands: don't do too much work for error messages
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 10345
diff changeset
2019 if opts.get('rev'):
e2db50cae6e6 commands: don't do too much work for error messages
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 10345
diff changeset
2020 msg += _(' (started at %s)' % opts['rev'])
e2db50cae6e6 commands: don't do too much work for error messages
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 10345
diff changeset
2021 ui.warn((msg + '\n') % headless)
e2db50cae6e6 commands: don't do too much work for error messages
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 10345
diff changeset
2022
4648
8e503fa54d2d Add option to heads to show only heads for current branch.
Eric Hopper <hopper@omnifarious.org>
parents: 4646
diff changeset
2023 if not heads:
8e503fa54d2d Add option to heads to show only heads for current branch.
Eric Hopper <hopper@omnifarious.org>
parents: 4646
diff changeset
2024 return 1
10328
0798a3d5f812 commands: simplify heads a little bit before I start hacking it up
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 10326
diff changeset
2025
10350
fd511e9eeea6 commands: do all branch heads by default, demote topological to -t/--topo
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 10349
diff changeset
2026 heads = sorted(heads, key=lambda x: -x.rev())
3643
b4ad640a3bcf templates: move changeset templating bits to cmdutils
Matt Mackall <mpm@selenic.com>
parents: 3631
diff changeset
2027 displayer = cmdutil.show_changeset(ui, repo, opts)
10331
ec5240a22f4a commands: always order heads recent to oldest
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 10330
diff changeset
2028 for ctx in heads:
ec5240a22f4a commands: always order heads recent to oldest
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 10330
diff changeset
2029 displayer.show(ctx)
10152
56284451a22c Added support for templatevar "footer" to cmdutil.py
Robert Bachmann <rbachm@gmail.com>
parents: 10111
diff changeset
2030 displayer.close()
221
2bfe525ef6ca Beginning of multi-head support
mpm@selenic.com
parents: 220
diff changeset
2031
10364
de1e7099d100 dispatch: provide help for disabled extensions and commands
Brodie Rao <me+hg@dackz.net>
parents: 10355
diff changeset
2032 def help_(ui, name=None, with_version=False, unknowncmd=False):
7210
833d1250ce00 help: update help
Matt Mackall <mpm@selenic.com>
parents: 7197
diff changeset
2033 """show help for a given topic or a help overview
3655
da361aa7a118 alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents: 3654
diff changeset
2034
8779
708938509732 Improve English for help text of many core hg commands.
timeless <timeless@gmail.com>
parents: 8778
diff changeset
2035 With no arguments, print a list of commands with short help messages.
3655
da361aa7a118 alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents: 3654
diff changeset
2036
8004
d5b1b846f277 commands: word-wrap help texts at 70 characters
Martin Geisler <mg@daimi.au.dk>
parents: 7983
diff changeset
2037 Given a topic, extension, or command name, print help for that
11177
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
2038 topic.
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
2039
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
2040 Returns 0 if successful.
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
2041 """
3655
da361aa7a118 alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents: 3654
diff changeset
2042 option_lists = []
13608
63ab6b0ccedc help: limit documentation width to at most 80 characters
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 13601
diff changeset
2043 textwidth = min(ui.termwidth(), 80) - 2
3655
da361aa7a118 alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents: 3654
diff changeset
2044
4315
bc6f5a1d8b7b Add a pointer to "hg -v help" to the bottom of hg help {,cmd} output
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 4267
diff changeset
2045 def addglobalopts(aliases):
bc6f5a1d8b7b Add a pointer to "hg -v help" to the bottom of hg help {,cmd} output
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 4267
diff changeset
2046 if ui.verbose:
bc6f5a1d8b7b Add a pointer to "hg -v help" to the bottom of hg help {,cmd} output
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 4267
diff changeset
2047 option_lists.append((_("global options:"), globalopts))
bc6f5a1d8b7b Add a pointer to "hg -v help" to the bottom of hg help {,cmd} output
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 4267
diff changeset
2048 if name == 'shortlist':
bc6f5a1d8b7b Add a pointer to "hg -v help" to the bottom of hg help {,cmd} output
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 4267
diff changeset
2049 option_lists.append((_('use "hg help" for the full list '
bc6f5a1d8b7b Add a pointer to "hg -v help" to the bottom of hg help {,cmd} output
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 4267
diff changeset
2050 'of commands'), ()))
bc6f5a1d8b7b Add a pointer to "hg -v help" to the bottom of hg help {,cmd} output
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 4267
diff changeset
2051 else:
bc6f5a1d8b7b Add a pointer to "hg -v help" to the bottom of hg help {,cmd} output
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 4267
diff changeset
2052 if name == 'shortlist':
bc6f5a1d8b7b Add a pointer to "hg -v help" to the bottom of hg help {,cmd} output
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 4267
diff changeset
2053 msg = _('use "hg help" for the full list of commands '
bc6f5a1d8b7b Add a pointer to "hg -v help" to the bottom of hg help {,cmd} output
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 4267
diff changeset
2054 'or "hg -v" for details')
bc6f5a1d8b7b Add a pointer to "hg -v help" to the bottom of hg help {,cmd} output
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 4267
diff changeset
2055 elif aliases:
13230
827a1cc127bf commands: clarify which aliases "hg help -v" show (issue2572)
Martin Geisler <mg@aragost.com>
parents: 13135
diff changeset
2056 msg = _('use "hg -v help%s" to show builtin aliases and '
4315
bc6f5a1d8b7b Add a pointer to "hg -v help" to the bottom of hg help {,cmd} output
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 4267
diff changeset
2057 'global options') % (name and " " + name or "")
bc6f5a1d8b7b Add a pointer to "hg -v help" to the bottom of hg help {,cmd} output
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 4267
diff changeset
2058 else:
bc6f5a1d8b7b Add a pointer to "hg -v help" to the bottom of hg help {,cmd} output
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 4267
diff changeset
2059 msg = _('use "hg -v help %s" to show global options') % name
bc6f5a1d8b7b Add a pointer to "hg -v help" to the bottom of hg help {,cmd} output
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 4267
diff changeset
2060 option_lists.append((msg, ()))
bc6f5a1d8b7b Add a pointer to "hg -v help" to the bottom of hg help {,cmd} output
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 4267
diff changeset
2061
3655
da361aa7a118 alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents: 3654
diff changeset
2062 def helpcmd(name):
da361aa7a118 alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents: 3654
diff changeset
2063 if with_version:
da361aa7a118 alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents: 3654
diff changeset
2064 version_(ui)
da361aa7a118 alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents: 3654
diff changeset
2065 ui.write('\n')
6652
ffcf8e82f647 help: enable listing of a subset of the command list
Johannes Stezenbach <js@sig21.net>
parents: 6642
diff changeset
2066
ffcf8e82f647 help: enable listing of a subset of the command list
Johannes Stezenbach <js@sig21.net>
parents: 6642
diff changeset
2067 try:
10364
de1e7099d100 dispatch: provide help for disabled extensions and commands
Brodie Rao <me+hg@dackz.net>
parents: 10355
diff changeset
2068 aliases, entry = cmdutil.findcmd(name, table, strict=unknowncmd)
7643
9a1ea6587557 error: move UnknownCommand and AmbiguousCommand
Matt Mackall <mpm@selenic.com>
parents: 7637
diff changeset
2069 except error.AmbiguousCommand, inst:
9035
8e34f363dd77 compat: don't reference an exception var inside a lambda
Alejandro Santos <alejolp@alejolp.com>
parents: 9031
diff changeset
2070 # py3k fix: except vars can't be used outside the scope of the
8e34f363dd77 compat: don't reference an exception var inside a lambda
Alejandro Santos <alejolp@alejolp.com>
parents: 9031
diff changeset
2071 # except block, nor can be used inside a lambda. python issue4617
8e34f363dd77 compat: don't reference an exception var inside a lambda
Alejandro Santos <alejolp@alejolp.com>
parents: 9031
diff changeset
2072 prefix = inst.args[0]
8e34f363dd77 compat: don't reference an exception var inside a lambda
Alejandro Santos <alejolp@alejolp.com>
parents: 9031
diff changeset
2073 select = lambda c: c.lstrip('^').startswith(prefix)
6652
ffcf8e82f647 help: enable listing of a subset of the command list
Johannes Stezenbach <js@sig21.net>
parents: 6642
diff changeset
2074 helplist(_('list of commands:\n\n'), select)
ffcf8e82f647 help: enable listing of a subset of the command list
Johannes Stezenbach <js@sig21.net>
parents: 6642
diff changeset
2075 return
ffcf8e82f647 help: enable listing of a subset of the command list
Johannes Stezenbach <js@sig21.net>
parents: 6642
diff changeset
2076
10021
0022f5c5459e help: don't display bogus help messages for invalid aliases
Brodie Rao <me+hg@dackz.net>
parents: 10015
diff changeset
2077 # check if it's an invalid alias and display its error if it is
0022f5c5459e help: don't display bogus help messages for invalid aliases
Brodie Rao <me+hg@dackz.net>
parents: 10015
diff changeset
2078 if getattr(entry[0], 'badalias', False):
10364
de1e7099d100 dispatch: provide help for disabled extensions and commands
Brodie Rao <me+hg@dackz.net>
parents: 10355
diff changeset
2079 if not unknowncmd:
de1e7099d100 dispatch: provide help for disabled extensions and commands
Brodie Rao <me+hg@dackz.net>
parents: 10355
diff changeset
2080 entry[0](ui)
10021
0022f5c5459e help: don't display bogus help messages for invalid aliases
Brodie Rao <me+hg@dackz.net>
parents: 10015
diff changeset
2081 return
0022f5c5459e help: don't display bogus help messages for invalid aliases
Brodie Rao <me+hg@dackz.net>
parents: 10015
diff changeset
2082
3655
da361aa7a118 alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents: 3654
diff changeset
2083 # synopsis
9901
cb2a1836c50a commands: minor refactoring
Henri Wiechers <hwiechers@gmail.com>
parents: 9894
diff changeset
2084 if len(entry) > 2:
cb2a1836c50a commands: minor refactoring
Henri Wiechers <hwiechers@gmail.com>
parents: 9894
diff changeset
2085 if entry[2].startswith('hg'):
cb2a1836c50a commands: minor refactoring
Henri Wiechers <hwiechers@gmail.com>
parents: 9894
diff changeset
2086 ui.write("%s\n" % entry[2])
7364
ad7f736f3214 help: remove redundant 'hg <command>' from command synopses
Matt Mackall <mpm@selenic.com>
parents: 7361
diff changeset
2087 else:
9901
cb2a1836c50a commands: minor refactoring
Henri Wiechers <hwiechers@gmail.com>
parents: 9894
diff changeset
2088 ui.write('hg %s %s\n' % (aliases[0], entry[2]))
7364
ad7f736f3214 help: remove redundant 'hg <command>' from command synopses
Matt Mackall <mpm@selenic.com>
parents: 7361
diff changeset
2089 else:
ad7f736f3214 help: remove redundant 'hg <command>' from command synopses
Matt Mackall <mpm@selenic.com>
parents: 7361
diff changeset
2090 ui.write('hg %s\n' % aliases[0])
5783
28d9f8cd02f2 Move aliases section in help below synopsis (issue362)
Thomas Arendsen Hein <thomas@intevation.de>
parents: 5781
diff changeset
2091
28d9f8cd02f2 Move aliases section in help below synopsis (issue362)
Thomas Arendsen Hein <thomas@intevation.de>
parents: 5781
diff changeset
2092 # aliases
28d9f8cd02f2 Move aliases section in help below synopsis (issue362)
Thomas Arendsen Hein <thomas@intevation.de>
parents: 5781
diff changeset
2093 if not ui.quiet and len(aliases) > 1:
28d9f8cd02f2 Move aliases section in help below synopsis (issue362)
Thomas Arendsen Hein <thomas@intevation.de>
parents: 5781
diff changeset
2094 ui.write(_("\naliases: %s\n") % ', '.join(aliases[1:]))
3655
da361aa7a118 alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents: 3654
diff changeset
2095
da361aa7a118 alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents: 3654
diff changeset
2096 # description
9901
cb2a1836c50a commands: minor refactoring
Henri Wiechers <hwiechers@gmail.com>
parents: 9894
diff changeset
2097 doc = gettext(entry[0].__doc__)
3655
da361aa7a118 alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents: 3654
diff changeset
2098 if not doc:
7598
26adfaccdf73 lowercase help output
Martin Geisler <mg@daimi.au.dk>
parents: 7596
diff changeset
2099 doc = _("(no help text available)")
10564
6ded6243bde2 alias: fixes exception when displaying translated help text
Yuya Nishihara <yuya@tcha.org>
parents: 10559
diff changeset
2100 if hasattr(entry[0], 'definition'): # aliased command
11524
24965bb270b7 dispatch: add shell aliases
Steve Losh <steve@stevelosh.com>
parents: 11515
diff changeset
2101 if entry[0].definition.startswith('!'): # shell alias
24965bb270b7 dispatch: add shell aliases
Steve Losh <steve@stevelosh.com>
parents: 11515
diff changeset
2102 doc = _('shell alias for::\n\n %s') % entry[0].definition[1:]
24965bb270b7 dispatch: add shell aliases
Steve Losh <steve@stevelosh.com>
parents: 11515
diff changeset
2103 else:
24965bb270b7 dispatch: add shell aliases
Steve Losh <steve@stevelosh.com>
parents: 11515
diff changeset
2104 doc = _('alias for: hg %s\n\n%s') % (entry[0].definition, doc)
3655
da361aa7a118 alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents: 3654
diff changeset
2105 if ui.quiet:
9136
31177742f54a for calls expecting bool args, pass bool instead of int
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 9102
diff changeset
2106 doc = doc.splitlines()[0]
10445
8b45102934e2 commands: support verbose help
Martin Geisler <mg@lazybytes.net>
parents: 10413
diff changeset
2107 keep = ui.verbose and ['verbose'] or []
8b45102934e2 commands: support verbose help
Martin Geisler <mg@lazybytes.net>
parents: 10413
diff changeset
2108 formatted, pruned = minirst.format(doc, textwidth, keep=keep)
8b45102934e2 commands: support verbose help
Martin Geisler <mg@lazybytes.net>
parents: 10413
diff changeset
2109 ui.write("\n%s\n" % formatted)
8b45102934e2 commands: support verbose help
Martin Geisler <mg@lazybytes.net>
parents: 10413
diff changeset
2110 if pruned:
8b45102934e2 commands: support verbose help
Martin Geisler <mg@lazybytes.net>
parents: 10413
diff changeset
2111 ui.write(_('\nuse "hg -v help %s" to show verbose help\n') % name)
3655
da361aa7a118 alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents: 3654
diff changeset
2112
da361aa7a118 alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents: 3654
diff changeset
2113 if not ui.quiet:
da361aa7a118 alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents: 3654
diff changeset
2114 # options
9901
cb2a1836c50a commands: minor refactoring
Henri Wiechers <hwiechers@gmail.com>
parents: 9894
diff changeset
2115 if entry[1]:
cb2a1836c50a commands: minor refactoring
Henri Wiechers <hwiechers@gmail.com>
parents: 9894
diff changeset
2116 option_lists.append((_("options:\n"), entry[1]))
4315
bc6f5a1d8b7b Add a pointer to "hg -v help" to the bottom of hg help {,cmd} output
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 4267
diff changeset
2117
bc6f5a1d8b7b Add a pointer to "hg -v help" to the bottom of hg help {,cmd} output
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 4267
diff changeset
2118 addglobalopts(False)
3655
da361aa7a118 alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents: 3654
diff changeset
2119
4950
93b7e2fa7ee3 help: avoid traceback if an extension has only debug commands
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 4942
diff changeset
2120 def helplist(header, select=None):
3655
da361aa7a118 alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents: 3654
diff changeset
2121 h = {}
da361aa7a118 alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents: 3654
diff changeset
2122 cmds = {}
7622
4dd7b28003d2 use dict.iteritems() rather than dict.items()
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 7598
diff changeset
2123 for c, e in table.iteritems():
3655
da361aa7a118 alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents: 3654
diff changeset
2124 f = c.split("|", 1)[0]
da361aa7a118 alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents: 3654
diff changeset
2125 if select and not select(f):
da361aa7a118 alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents: 3654
diff changeset
2126 continue
7197
f60730693efc help: show extension commands in short list, separate extension list in help
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 7196
diff changeset
2127 if (not select and name != 'shortlist' and
f60730693efc help: show extension commands in short list, separate extension list in help
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 7196
diff changeset
2128 e[0].__module__ != __name__):
7126
111813de4188 remove extension commands from global help
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 7125
diff changeset
2129 continue
3655
da361aa7a118 alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents: 3654
diff changeset
2130 if name == "shortlist" and not f.startswith("^"):
da361aa7a118 alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents: 3654
diff changeset
2131 continue
da361aa7a118 alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents: 3654
diff changeset
2132 f = f.lstrip("^")
da361aa7a118 alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents: 3654
diff changeset
2133 if not ui.debugflag and f.startswith("debug"):
da361aa7a118 alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents: 3654
diff changeset
2134 continue
9128
98d90ad54749 commands: hide deprecated commands.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 9097
diff changeset
2135 doc = e[0].__doc__
98d90ad54749 commands: hide deprecated commands.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 9097
diff changeset
2136 if doc and 'DEPRECATED' in doc and not ui.verbose:
98d90ad54749 commands: hide deprecated commands.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 9097
diff changeset
2137 continue
98d90ad54749 commands: hide deprecated commands.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents: 9097
diff changeset
2138 doc = gettext(doc)
3655
da361aa7a118 alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents: 3654
diff changeset
2139 if not doc:
7598
26adfaccdf73 lowercase help output
Martin Geisler <mg@daimi.au.dk>
parents: 7596
diff changeset
2140 doc = _("(no help text available)")
9136
31177742f54a for calls expecting bool args, pass bool instead of int
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 9102
diff changeset
2141 h[f] = doc.splitlines()[0].rstrip()
3655
da361aa7a118 alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents: 3654
diff changeset
2142 cmds[f] = c.lstrip("^")
da361aa7a118 alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents: 3654
diff changeset
2143
4950
93b7e2fa7ee3 help: avoid traceback if an extension has only debug commands
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 4942
diff changeset
2144 if not h:
93b7e2fa7ee3 help: avoid traceback if an extension has only debug commands
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 4942
diff changeset
2145 ui.status(_('no commands defined\n'))
93b7e2fa7ee3 help: avoid traceback if an extension has only debug commands
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 4942
diff changeset
2146 return
93b7e2fa7ee3 help: avoid traceback if an extension has only debug commands
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 4942
diff changeset
2147
93b7e2fa7ee3 help: avoid traceback if an extension has only debug commands
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 4942
diff changeset
2148 ui.status(header)
8209
a1a5a57efe90 replace util.sort with sorted built-in
Matt Mackall <mpm@selenic.com>
parents: 8190
diff changeset
2149 fns = sorted(h)
3655
da361aa7a118 alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents: 3654
diff changeset
2150 m = max(map(len, fns))
da361aa7a118 alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents: 3654
diff changeset
2151 for f in fns:
da361aa7a118 alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents: 3654
diff changeset
2152 if ui.verbose:
da361aa7a118 alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents: 3654
diff changeset
2153 commands = cmds[f].replace("|",", ")
da361aa7a118 alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents: 3654
diff changeset
2154 ui.write(" %s:\n %s\n"%(commands, h[f]))
da361aa7a118 alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents: 3654
diff changeset
2155 else:
12698
7aef77e74cf3 util: make wrap() require a width argument
Matt Mackall <mpm@selenic.com>
parents: 12697
diff changeset
2156 ui.write('%s\n' % (util.wrap(h[f], textwidth,
11297
d320e70442a5 replace Python standard textwrap by MBCS sensitive one for i18n text
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11276
diff changeset
2157 initindent=' %-*s ' % (m, f),
d320e70442a5 replace Python standard textwrap by MBCS sensitive one for i18n text
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11276
diff changeset
2158 hangindent=' ' * (m + 4))))
3655
da361aa7a118 alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents: 3654
diff changeset
2159
4315
bc6f5a1d8b7b Add a pointer to "hg -v help" to the bottom of hg help {,cmd} output
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 4267
diff changeset
2160 if not ui.quiet:
bc6f5a1d8b7b Add a pointer to "hg -v help" to the bottom of hg help {,cmd} output
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 4267
diff changeset
2161 addglobalopts(True)
bc6f5a1d8b7b Add a pointer to "hg -v help" to the bottom of hg help {,cmd} output
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 4267
diff changeset
2162
3795
17a11f4ff260 Add basic support for help topics and a dates topic
Matt Mackall <mpm@selenic.com>
parents: 3786
diff changeset
2163 def helptopic(name):
7012
78341ea65d16 restructure helptable
Martin Geisler <mg@daimi.au.dk>
parents: 7006
diff changeset
2164 for names, header, doc in help.helptable:
78341ea65d16 restructure helptable
Martin Geisler <mg@daimi.au.dk>
parents: 7006
diff changeset
2165 if name in names:
78341ea65d16 restructure helptable
Martin Geisler <mg@daimi.au.dk>
parents: 7006
diff changeset
2166 break
78341ea65d16 restructure helptable
Martin Geisler <mg@daimi.au.dk>
parents: 7006
diff changeset
2167 else:
7643
9a1ea6587557 error: move UnknownCommand and AmbiguousCommand
Matt Mackall <mpm@selenic.com>
parents: 7637
diff changeset
2168 raise error.UnknownCommand(name)
3795
17a11f4ff260 Add basic support for help topics and a dates topic
Matt Mackall <mpm@selenic.com>
parents: 3786
diff changeset
2169
17a11f4ff260 Add basic support for help topics and a dates topic
Matt Mackall <mpm@selenic.com>
parents: 3786
diff changeset
2170 # description
17a11f4ff260 Add basic support for help topics and a dates topic
Matt Mackall <mpm@selenic.com>
parents: 3786
diff changeset
2171 if not doc:
7598
26adfaccdf73 lowercase help output
Martin Geisler <mg@daimi.au.dk>
parents: 7596
diff changeset
2172 doc = _("(no help text available)")
8366
0bf0045000b5 some modernization cleanups, forward compatibility
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 8313
diff changeset
2173 if hasattr(doc, '__call__'):
3796
58133ba5847d Allow topics to be callables
Matt Mackall <mpm@selenic.com>
parents: 3795
diff changeset
2174 doc = doc()
3795
17a11f4ff260 Add basic support for help topics and a dates topic
Matt Mackall <mpm@selenic.com>
parents: 3786
diff changeset
2175
9157
9261667e9b82 commands: use minirst parser when displaying help
Martin Geisler <mg@lazybytes.net>
parents: 9142
diff changeset
2176 ui.write("%s\n\n" % header)
9540
cad36e496640 help: un-indent help topics
Martin Geisler <mg@lazybytes.net>
parents: 9537
diff changeset
2177 ui.write("%s\n" % minirst.format(doc, textwidth, indent=4))
3795
17a11f4ff260 Add basic support for help topics and a dates topic
Matt Mackall <mpm@selenic.com>
parents: 3786
diff changeset
2178
3655
da361aa7a118 alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents: 3654
diff changeset
2179 def helpext(name):
da361aa7a118 alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents: 3654
diff changeset
2180 try:
4544
930ed513c864 Create a separate module for managing extensions
Matt Mackall <mpm@selenic.com>
parents: 4543
diff changeset
2181 mod = extensions.find(name)
10364
de1e7099d100 dispatch: provide help for disabled extensions and commands
Brodie Rao <me+hg@dackz.net>
parents: 10355
diff changeset
2182 doc = gettext(mod.__doc__) or _('no help text available')
3655
da361aa7a118 alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents: 3654
diff changeset
2183 except KeyError:
10364
de1e7099d100 dispatch: provide help for disabled extensions and commands
Brodie Rao <me+hg@dackz.net>
parents: 10355
diff changeset
2184 mod = None
de1e7099d100 dispatch: provide help for disabled extensions and commands
Brodie Rao <me+hg@dackz.net>
parents: 10355
diff changeset
2185 doc = extensions.disabledext(name)
de1e7099d100 dispatch: provide help for disabled extensions and commands
Brodie Rao <me+hg@dackz.net>
parents: 10355
diff changeset
2186 if not doc:
de1e7099d100 dispatch: provide help for disabled extensions and commands
Brodie Rao <me+hg@dackz.net>
parents: 10355
diff changeset
2187 raise error.UnknownCommand(name)
de1e7099d100 dispatch: provide help for disabled extensions and commands
Brodie Rao <me+hg@dackz.net>
parents: 10355
diff changeset
2188
9280
b694531a5aa7 commands: Check if helptext contains a newline before we split
David Soria Parra <dsp@php.net>
parents: 9249
diff changeset
2189 if '\n' not in doc:
b694531a5aa7 commands: Check if helptext contains a newline before we split
David Soria Parra <dsp@php.net>
parents: 9249
diff changeset
2190 head, tail = doc, ""
b694531a5aa7 commands: Check if helptext contains a newline before we split
David Soria Parra <dsp@php.net>
parents: 9249
diff changeset
2191 else:
b694531a5aa7 commands: Check if helptext contains a newline before we split
David Soria Parra <dsp@php.net>
parents: 9249
diff changeset
2192 head, tail = doc.split('\n', 1)
9157
9261667e9b82 commands: use minirst parser when displaying help
Martin Geisler <mg@lazybytes.net>
parents: 9142
diff changeset
2193 ui.write(_('%s extension - %s\n\n') % (name.split('.')[-1], head))
9261667e9b82 commands: use minirst parser when displaying help
Martin Geisler <mg@lazybytes.net>
parents: 9142
diff changeset
2194 if tail:
9261667e9b82 commands: use minirst parser when displaying help
Martin Geisler <mg@lazybytes.net>
parents: 9142
diff changeset
2195 ui.write(minirst.format(tail, textwidth))
9261667e9b82 commands: use minirst parser when displaying help
Martin Geisler <mg@lazybytes.net>
parents: 9142
diff changeset
2196 ui.status('\n\n')
4009
86098ec4b77a fix hg help <ext> for extension that do not define any command
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 3915
diff changeset
2197
10364
de1e7099d100 dispatch: provide help for disabled extensions and commands
Brodie Rao <me+hg@dackz.net>
parents: 10355
diff changeset
2198 if mod:
de1e7099d100 dispatch: provide help for disabled extensions and commands
Brodie Rao <me+hg@dackz.net>
parents: 10355
diff changeset
2199 try:
de1e7099d100 dispatch: provide help for disabled extensions and commands
Brodie Rao <me+hg@dackz.net>
parents: 10355
diff changeset
2200 ct = mod.cmdtable
de1e7099d100 dispatch: provide help for disabled extensions and commands
Brodie Rao <me+hg@dackz.net>
parents: 10355
diff changeset
2201 except AttributeError:
de1e7099d100 dispatch: provide help for disabled extensions and commands
Brodie Rao <me+hg@dackz.net>
parents: 10355
diff changeset
2202 ct = {}
de1e7099d100 dispatch: provide help for disabled extensions and commands
Brodie Rao <me+hg@dackz.net>
parents: 10355
diff changeset
2203 modcmds = set([c.split('|', 1)[0] for c in ct])
de1e7099d100 dispatch: provide help for disabled extensions and commands
Brodie Rao <me+hg@dackz.net>
parents: 10355
diff changeset
2204 helplist(_('list of commands:\n\n'), modcmds.__contains__)
de1e7099d100 dispatch: provide help for disabled extensions and commands
Brodie Rao <me+hg@dackz.net>
parents: 10355
diff changeset
2205 else:
de1e7099d100 dispatch: provide help for disabled extensions and commands
Brodie Rao <me+hg@dackz.net>
parents: 10355
diff changeset
2206 ui.write(_('use "hg help extensions" for information on enabling '
de1e7099d100 dispatch: provide help for disabled extensions and commands
Brodie Rao <me+hg@dackz.net>
parents: 10355
diff changeset
2207 'extensions\n'))
de1e7099d100 dispatch: provide help for disabled extensions and commands
Brodie Rao <me+hg@dackz.net>
parents: 10355
diff changeset
2208
de1e7099d100 dispatch: provide help for disabled extensions and commands
Brodie Rao <me+hg@dackz.net>
parents: 10355
diff changeset
2209 def helpextcmd(name):
13191
1aea66b71f4f extensions: warn about invalid extensions when listing disabled commands
Mads Kiilerich <mads@kiilerich.com>
parents: 13136
diff changeset
2210 cmd, ext, mod = extensions.disabledcmd(ui, name, ui.config('ui', 'strict'))
10364
de1e7099d100 dispatch: provide help for disabled extensions and commands
Brodie Rao <me+hg@dackz.net>
parents: 10355
diff changeset
2211 doc = gettext(mod.__doc__).splitlines()[0]
de1e7099d100 dispatch: provide help for disabled extensions and commands
Brodie Rao <me+hg@dackz.net>
parents: 10355
diff changeset
2212
de1e7099d100 dispatch: provide help for disabled extensions and commands
Brodie Rao <me+hg@dackz.net>
parents: 10355
diff changeset
2213 msg = help.listexts(_("'%s' is provided by the following "
de1e7099d100 dispatch: provide help for disabled extensions and commands
Brodie Rao <me+hg@dackz.net>
parents: 10355
diff changeset
2214 "extension:") % cmd, {ext: doc}, len(ext),
de1e7099d100 dispatch: provide help for disabled extensions and commands
Brodie Rao <me+hg@dackz.net>
parents: 10355
diff changeset
2215 indent=4)
de1e7099d100 dispatch: provide help for disabled extensions and commands
Brodie Rao <me+hg@dackz.net>
parents: 10355
diff changeset
2216 ui.write(minirst.format(msg, textwidth))
de1e7099d100 dispatch: provide help for disabled extensions and commands
Brodie Rao <me+hg@dackz.net>
parents: 10355
diff changeset
2217 ui.write('\n\n')
de1e7099d100 dispatch: provide help for disabled extensions and commands
Brodie Rao <me+hg@dackz.net>
parents: 10355
diff changeset
2218 ui.write(_('use "hg help extensions" for information on enabling '
de1e7099d100 dispatch: provide help for disabled extensions and commands
Brodie Rao <me+hg@dackz.net>
parents: 10355
diff changeset
2219 'extensions\n'))
3655
da361aa7a118 alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents: 3654
diff changeset
2220
12821
165079e564f0 revsets: generate predicate help dynamically
Patrick Mezard <pmezard@gmail.com>
parents: 12810
diff changeset
2221 help.addtopichook('revsets', revset.makedoc)
13585
2e80d495592a templates: generate keyword help dynamically
Patrick Mezard <pmezard@gmail.com>
parents: 13576
diff changeset
2222 help.addtopichook('templates', templatekw.makedoc)
13591
264f292a0c6f templatefilters: move doc from templates.txt to docstrings
Patrick Mezard <pmezard@gmail.com>
parents: 13585
diff changeset
2223 help.addtopichook('templates', templatefilters.makedoc)
12821
165079e564f0 revsets: generate predicate help dynamically
Patrick Mezard <pmezard@gmail.com>
parents: 12810
diff changeset
2224
3655
da361aa7a118 alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents: 3654
diff changeset
2225 if name and name != 'shortlist':
3795
17a11f4ff260 Add basic support for help topics and a dates topic
Matt Mackall <mpm@selenic.com>
parents: 3786
diff changeset
2226 i = None
10364
de1e7099d100 dispatch: provide help for disabled extensions and commands
Brodie Rao <me+hg@dackz.net>
parents: 10355
diff changeset
2227 if unknowncmd:
de1e7099d100 dispatch: provide help for disabled extensions and commands
Brodie Rao <me+hg@dackz.net>
parents: 10355
diff changeset
2228 queries = (helpextcmd,)
de1e7099d100 dispatch: provide help for disabled extensions and commands
Brodie Rao <me+hg@dackz.net>
parents: 10355
diff changeset
2229 else:
de1e7099d100 dispatch: provide help for disabled extensions and commands
Brodie Rao <me+hg@dackz.net>
parents: 10355
diff changeset
2230 queries = (helptopic, helpcmd, helpext, helpextcmd)
de1e7099d100 dispatch: provide help for disabled extensions and commands
Brodie Rao <me+hg@dackz.net>
parents: 10355
diff changeset
2231 for f in queries:
3795
17a11f4ff260 Add basic support for help topics and a dates topic
Matt Mackall <mpm@selenic.com>
parents: 3786
diff changeset
2232 try:
17a11f4ff260 Add basic support for help topics and a dates topic
Matt Mackall <mpm@selenic.com>
parents: 3786
diff changeset
2233 f(name)
17a11f4ff260 Add basic support for help topics and a dates topic
Matt Mackall <mpm@selenic.com>
parents: 3786
diff changeset
2234 i = None
17a11f4ff260 Add basic support for help topics and a dates topic
Matt Mackall <mpm@selenic.com>
parents: 3786
diff changeset
2235 break
7643
9a1ea6587557 error: move UnknownCommand and AmbiguousCommand
Matt Mackall <mpm@selenic.com>
parents: 7637
diff changeset
2236 except error.UnknownCommand, inst:
3795
17a11f4ff260 Add basic support for help topics and a dates topic
Matt Mackall <mpm@selenic.com>
parents: 3786
diff changeset
2237 i = inst
17a11f4ff260 Add basic support for help topics and a dates topic
Matt Mackall <mpm@selenic.com>
parents: 3786
diff changeset
2238 if i:
17a11f4ff260 Add basic support for help topics and a dates topic
Matt Mackall <mpm@selenic.com>
parents: 3786
diff changeset
2239 raise i
3655
da361aa7a118 alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents: 3654
diff changeset
2240
da361aa7a118 alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents: 3654
diff changeset
2241 else:
da361aa7a118 alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents: 3654
diff changeset
2242 # program name
da361aa7a118 alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents: 3654
diff changeset
2243 if ui.verbose or with_version:
da361aa7a118 alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents: 3654
diff changeset
2244 version_(ui)
da361aa7a118 alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents: 3654
diff changeset
2245 else:
da361aa7a118 alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents: 3654
diff changeset
2246 ui.status(_("Mercurial Distributed SCM\n"))
da361aa7a118 alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents: 3654
diff changeset
2247 ui.status('\n')
da361aa7a118 alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents: 3654
diff changeset
2248
da361aa7a118 alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents: 3654
diff changeset
2249 # list of commands
da361aa7a118 alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents: 3654
diff changeset
2250 if name == "shortlist":
4950
93b7e2fa7ee3 help: avoid traceback if an extension has only debug commands
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 4942
diff changeset
2251 header = _('basic commands:\n\n')
4315
bc6f5a1d8b7b Add a pointer to "hg -v help" to the bottom of hg help {,cmd} output
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 4267
diff changeset
2252 else:
4950
93b7e2fa7ee3 help: avoid traceback if an extension has only debug commands
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 4942
diff changeset
2253 header = _('list of commands:\n\n')
93b7e2fa7ee3 help: avoid traceback if an extension has only debug commands
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 4942
diff changeset
2254
93b7e2fa7ee3 help: avoid traceback if an extension has only debug commands
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 4942
diff changeset
2255 helplist(header)
9839
0a3fc37261ab help: don't show extension list on extension help
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 9831
diff changeset
2256 if name != 'shortlist':
0a3fc37261ab help: don't show extension list on extension help
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 9831
diff changeset
2257 exts, maxlength = extensions.enabled()
0a3fc37261ab help: don't show extension list on extension help
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 9831
diff changeset
2258 text = help.listexts(_('enabled extensions:'), exts, maxlength)
0a3fc37261ab help: don't show extension list on extension help
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 9831
diff changeset
2259 if text:
0a3fc37261ab help: don't show extension list on extension help
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 9831
diff changeset
2260 ui.write("\n%s\n" % minirst.format(text, textwidth))
3655
da361aa7a118 alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents: 3654
diff changeset
2261
da361aa7a118 alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents: 3654
diff changeset
2262 # list all option lists
da361aa7a118 alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents: 3654
diff changeset
2263 opt_output = []
11321
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
2264 multioccur = False
3655
da361aa7a118 alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents: 3654
diff changeset
2265 for title, options in option_lists:
4315
bc6f5a1d8b7b Add a pointer to "hg -v help" to the bottom of hg help {,cmd} output
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 4267
diff changeset
2266 opt_output.append(("\n%s" % title, None))
11321
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
2267 for option in options:
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
2268 if len(option) == 5:
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
2269 shortopt, longopt, default, desc, optlabel = option
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
2270 else:
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
2271 shortopt, longopt, default, desc = option
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
2272 optlabel = _("VALUE") # default label
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
2273
10282
08a0f04b56bd many, many trivial check-code fixups
Matt Mackall <mpm@selenic.com>
parents: 10270
diff changeset
2274 if _("DEPRECATED") in desc and not ui.verbose:
10339
23e608f42f2c fix spaces/identation issues
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 10331
diff changeset
2275 continue
11321
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
2276 if isinstance(default, list):
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
2277 numqualifier = " %s [+]" % optlabel
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
2278 multioccur = True
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
2279 elif (default is not None) and not isinstance(default, bool):
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
2280 numqualifier = " %s" % optlabel
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
2281 else:
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
2282 numqualifier = ""
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
2283 opt_output.append(("%2s%s" %
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
2284 (shortopt and "-%s" % shortopt,
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
2285 longopt and " --%s%s" %
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
2286 (longopt, numqualifier)),
3655
da361aa7a118 alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents: 3654
diff changeset
2287 "%s%s" % (desc,
da361aa7a118 alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents: 3654
diff changeset
2288 default
da361aa7a118 alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents: 3654
diff changeset
2289 and _(" (default: %s)") % default
da361aa7a118 alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents: 3654
diff changeset
2290 or "")))
11321
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
2291 if multioccur:
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
2292 msg = _("\n[+] marked option can be specified multiple times")
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
2293 if ui.verbose and name != 'shortlist':
11611
4f5a6df2af92 i18n: use encoding.colwidth() for correct column width
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11518
diff changeset
2294 opt_output.append((msg, None))
11321
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
2295 else:
11611
4f5a6df2af92 i18n: use encoding.colwidth() for correct column width
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11518
diff changeset
2296 opt_output.insert(-1, (msg, None))
3655
da361aa7a118 alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents: 3654
diff changeset
2297
7196
3f6a4f1de43f help: show help topics by default in 'hg help', with longest available id
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 7185
diff changeset
2298 if not name:
7210
833d1250ce00 help: update help
Matt Mackall <mpm@selenic.com>
parents: 7197
diff changeset
2299 ui.write(_("\nadditional help topics:\n\n"))
6653
a78d8edaeedd help: list special help topics with -v
Johannes Stezenbach <js@sig21.net>
parents: 6652
diff changeset
2300 topics = []
7012
78341ea65d16 restructure helptable
Martin Geisler <mg@daimi.au.dk>
parents: 7006
diff changeset
2301 for names, header, doc in help.helptable:
9537
460e410c39be commands: simpler sort of help topic names
Martin Geisler <mg@lazybytes.net>
parents: 9508
diff changeset
2302 topics.append((sorted(names, key=len, reverse=True)[0], header))
6653
a78d8edaeedd help: list special help topics with -v
Johannes Stezenbach <js@sig21.net>
parents: 6652
diff changeset
2303 topics_len = max([len(s[0]) for s in topics])
a78d8edaeedd help: list special help topics with -v
Johannes Stezenbach <js@sig21.net>
parents: 6652
diff changeset
2304 for t, desc in topics:
a78d8edaeedd help: list special help topics with -v
Johannes Stezenbach <js@sig21.net>
parents: 6652
diff changeset
2305 ui.write(" %-*s %s\n" % (topics_len, t, desc))
a78d8edaeedd help: list special help topics with -v
Johannes Stezenbach <js@sig21.net>
parents: 6652
diff changeset
2306
3655
da361aa7a118 alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents: 3654
diff changeset
2307 if opt_output:
11611
4f5a6df2af92 i18n: use encoding.colwidth() for correct column width
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11518
diff changeset
2308 colwidth = encoding.colwidth
4f5a6df2af92 i18n: use encoding.colwidth() for correct column width
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11518
diff changeset
2309 # normalize: (opt or message, desc or None, width of opt)
4f5a6df2af92 i18n: use encoding.colwidth() for correct column width
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11518
diff changeset
2310 entries = [desc and (opt, desc, colwidth(opt)) or (opt, None, 0)
4f5a6df2af92 i18n: use encoding.colwidth() for correct column width
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11518
diff changeset
2311 for opt, desc in opt_output]
4f5a6df2af92 i18n: use encoding.colwidth() for correct column width
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11518
diff changeset
2312 hanging = max([e[2] for e in entries])
4f5a6df2af92 i18n: use encoding.colwidth() for correct column width
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11518
diff changeset
2313 for opt, desc, width in entries:
4f5a6df2af92 i18n: use encoding.colwidth() for correct column width
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11518
diff changeset
2314 if desc:
4f5a6df2af92 i18n: use encoding.colwidth() for correct column width
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11518
diff changeset
2315 initindent = ' %s%s ' % (opt, ' ' * (hanging - width))
4f5a6df2af92 i18n: use encoding.colwidth() for correct column width
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11518
diff changeset
2316 hangindent = ' ' * (hanging + 3)
12698
7aef77e74cf3 util: make wrap() require a width argument
Matt Mackall <mpm@selenic.com>
parents: 12697
diff changeset
2317 ui.write('%s\n' % (util.wrap(desc, textwidth,
11297
d320e70442a5 replace Python standard textwrap by MBCS sensitive one for i18n text
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11276
diff changeset
2318 initindent=initindent,
d320e70442a5 replace Python standard textwrap by MBCS sensitive one for i18n text
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11276
diff changeset
2319 hangindent=hangindent)))
3655
da361aa7a118 alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents: 3654
diff changeset
2320 else:
11611
4f5a6df2af92 i18n: use encoding.colwidth() for correct column width
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11518
diff changeset
2321 ui.write("%s\n" % opt)
221
2bfe525ef6ca Beginning of multi-head support
mpm@selenic.com
parents: 220
diff changeset
2322
13477
0fb2ff949790 id: add bookmarks to id
Kevin Bullock <kbullock@ringworld.org>
parents: 13473
diff changeset
2323 def identify(ui, repo, source=None, rev=None,
0fb2ff949790 id: add bookmarks to id
Kevin Bullock <kbullock@ringworld.org>
parents: 13473
diff changeset
2324 num=None, id=None, branch=None, tags=None, bookmarks=None):
4665
091c9e54d306 identify: accept a revision argument
Matt Mackall <mpm@selenic.com>
parents: 4664
diff changeset
2325 """identify the working copy or specified revision
091c9e54d306 identify: accept a revision argument
Matt Mackall <mpm@selenic.com>
parents: 4664
diff changeset
2326
8004
d5b1b846f277 commands: word-wrap help texts at 70 characters
Martin Geisler <mg@daimi.au.dk>
parents: 7983
diff changeset
2327 With no revision, print a summary of the current state of the
8027
9c7ca86fc658 expand "repo" to "repository" in help texts
Martin Geisler <mg@lazybytes.net>
parents: 8026
diff changeset
2328 repository.
4671
150afe6becf6 identify: take a path to a remote repo
Matt Mackall <mpm@selenic.com>
parents: 4667
diff changeset
2329
8779
708938509732 Improve English for help text of many core hg commands.
timeless <timeless@gmail.com>
parents: 8778
diff changeset
2330 Specifying a path to a repository root or Mercurial bundle will
708938509732 Improve English for help text of many core hg commands.
timeless <timeless@gmail.com>
parents: 8778
diff changeset
2331 cause lookup to operate on that repository/bundle.
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
2332
8004
d5b1b846f277 commands: word-wrap help texts at 70 characters
Martin Geisler <mg@daimi.au.dk>
parents: 7983
diff changeset
2333 This summary identifies the repository state using one or two
d5b1b846f277 commands: word-wrap help texts at 70 characters
Martin Geisler <mg@daimi.au.dk>
parents: 7983
diff changeset
2334 parent hash identifiers, followed by a "+" if there are
d5b1b846f277 commands: word-wrap help texts at 70 characters
Martin Geisler <mg@daimi.au.dk>
parents: 7983
diff changeset
2335 uncommitted changes in the working directory, a list of tags for
d5b1b846f277 commands: word-wrap help texts at 70 characters
Martin Geisler <mg@daimi.au.dk>
parents: 7983
diff changeset
2336 this revision and a branch name for non-default branches.
11177
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
2337
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
2338 Returns 0 if successful.
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
2339 """
4662
f9b8ea362b49 identify: show nullid for empty repo
Matt Mackall <mpm@selenic.com>
parents: 4659
diff changeset
2340
5330
4528858e7202 make identify an optionalrepo command
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 5329
diff changeset
2341 if not repo and not source:
12067
a4fbbe0fbc38 Lowercase error messages
Martin Geisler <mg@lazybytes.net>
parents: 11881
diff changeset
2342 raise util.Abort(_("there is no Mercurial repository here "
5330
4528858e7202 make identify an optionalrepo command
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 5329
diff changeset
2343 "(.hg not found)"))
4528858e7202 make identify an optionalrepo command
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 5329
diff changeset
2344
2966
fb493241d7f6 Only show long hashes with --debug, not --verbose
Matt Mackall <mpm@selenic.com>
parents: 2963
diff changeset
2345 hexfunc = ui.debugflag and hex or short
13477
0fb2ff949790 id: add bookmarks to id
Kevin Bullock <kbullock@ringworld.org>
parents: 13473
diff changeset
2346 default = not (num or id or branch or tags or bookmarks)
4666
48c94bffdb28 identify: add support for output flags
Matt Mackall <mpm@selenic.com>
parents: 4665
diff changeset
2347 output = []
4664
dedb8abfd0e1 identify: use contexts
Matt Mackall <mpm@selenic.com>
parents: 4662
diff changeset
2348
7757
af6a63438a8a identify: have consistent output for local repositories
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 7743
diff changeset
2349 revs = []
13644
7e6c2f58ad56 identify: list bookmarks for remote repositories
Nils Adermann <naderman@naderman.de>
parents: 13639
diff changeset
2350 bms = []
4671
150afe6becf6 identify: take a path to a remote repo
Matt Mackall <mpm@selenic.com>
parents: 4667
diff changeset
2351 if source:
10365
d757bc0c7865 interpret repo#name url syntax as branch instead of revision
Sune Foldager <cryo@cyanite.org>
parents: 10364
diff changeset
2352 source, branches = hg.parseurl(ui.expandpath(source))
7757
af6a63438a8a identify: have consistent output for local repositories
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 7743
diff changeset
2353 repo = hg.repository(ui, source)
10365
d757bc0c7865 interpret repo#name url syntax as branch instead of revision
Sune Foldager <cryo@cyanite.org>
parents: 10364
diff changeset
2354 revs, checkout = hg.addbranchrevs(repo, repo, branches, None)
7757
af6a63438a8a identify: have consistent output for local repositories
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 7743
diff changeset
2355
af6a63438a8a identify: have consistent output for local repositories
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 7743
diff changeset
2356 if not repo.local():
4671
150afe6becf6 identify: take a path to a remote repo
Matt Mackall <mpm@selenic.com>
parents: 4667
diff changeset
2357 if not rev and revs:
150afe6becf6 identify: take a path to a remote repo
Matt Mackall <mpm@selenic.com>
parents: 4667
diff changeset
2358 rev = revs[0]
4667
c7a81e3ae80f identify: work with remote repos
Matt Mackall <mpm@selenic.com>
parents: 4666
diff changeset
2359 if not rev:
c7a81e3ae80f identify: work with remote repos
Matt Mackall <mpm@selenic.com>
parents: 4666
diff changeset
2360 rev = "tip"
13644
7e6c2f58ad56 identify: list bookmarks for remote repositories
Nils Adermann <naderman@naderman.de>
parents: 13639
diff changeset
2361 if num or branch or tags:
7e6c2f58ad56 identify: list bookmarks for remote repositories
Nils Adermann <naderman@naderman.de>
parents: 13639
diff changeset
2362 raise util.Abort(
7e6c2f58ad56 identify: list bookmarks for remote repositories
Nils Adermann <naderman@naderman.de>
parents: 13639
diff changeset
2363 _("can't query remote revision number, branch, or tags"))
7e6c2f58ad56 identify: list bookmarks for remote repositories
Nils Adermann <naderman@naderman.de>
parents: 13639
diff changeset
2364
7e6c2f58ad56 identify: list bookmarks for remote repositories
Nils Adermann <naderman@naderman.de>
parents: 13639
diff changeset
2365 remoterev = repo.lookup(rev)
7e6c2f58ad56 identify: list bookmarks for remote repositories
Nils Adermann <naderman@naderman.de>
parents: 13639
diff changeset
2366 if default or id:
7e6c2f58ad56 identify: list bookmarks for remote repositories
Nils Adermann <naderman@naderman.de>
parents: 13639
diff changeset
2367 output = [hexfunc(remoterev)]
7e6c2f58ad56 identify: list bookmarks for remote repositories
Nils Adermann <naderman@naderman.de>
parents: 13639
diff changeset
2368
7e6c2f58ad56 identify: list bookmarks for remote repositories
Nils Adermann <naderman@naderman.de>
parents: 13639
diff changeset
2369 if 'bookmarks' in repo.listkeys('namespaces'):
7e6c2f58ad56 identify: list bookmarks for remote repositories
Nils Adermann <naderman@naderman.de>
parents: 13639
diff changeset
2370 hexremoterev = hex(remoterev)
7e6c2f58ad56 identify: list bookmarks for remote repositories
Nils Adermann <naderman@naderman.de>
parents: 13639
diff changeset
2371 bms = [bm for bm, bmrev in repo.listkeys('bookmarks').iteritems()
7e6c2f58ad56 identify: list bookmarks for remote repositories
Nils Adermann <naderman@naderman.de>
parents: 13639
diff changeset
2372 if bmrev == hexremoterev]
7e6c2f58ad56 identify: list bookmarks for remote repositories
Nils Adermann <naderman@naderman.de>
parents: 13639
diff changeset
2373
4667
c7a81e3ae80f identify: work with remote repos
Matt Mackall <mpm@selenic.com>
parents: 4666
diff changeset
2374 elif not rev:
6747
f6c00b17387c use repo[changeid] to get a changectx
Matt Mackall <mpm@selenic.com>
parents: 6746
diff changeset
2375 ctx = repo[None]
4665
091c9e54d306 identify: accept a revision argument
Matt Mackall <mpm@selenic.com>
parents: 4664
diff changeset
2376 parents = ctx.parents()
4666
48c94bffdb28 identify: add support for output flags
Matt Mackall <mpm@selenic.com>
parents: 4665
diff changeset
2377 changed = False
48c94bffdb28 identify: add support for output flags
Matt Mackall <mpm@selenic.com>
parents: 4665
diff changeset
2378 if default or id or num:
10515
98bc3e195720 identify: don't include unknown in status
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 10505
diff changeset
2379 changed = util.any(repo.status())
4666
48c94bffdb28 identify: add support for output flags
Matt Mackall <mpm@selenic.com>
parents: 4665
diff changeset
2380 if default or id:
48c94bffdb28 identify: add support for output flags
Matt Mackall <mpm@selenic.com>
parents: 4665
diff changeset
2381 output = ["%s%s" % ('+'.join([hexfunc(p.node()) for p in parents]),
48c94bffdb28 identify: add support for output flags
Matt Mackall <mpm@selenic.com>
parents: 4665
diff changeset
2382 (changed) and "+" or "")]
48c94bffdb28 identify: add support for output flags
Matt Mackall <mpm@selenic.com>
parents: 4665
diff changeset
2383 if num:
48c94bffdb28 identify: add support for output flags
Matt Mackall <mpm@selenic.com>
parents: 4665
diff changeset
2384 output.append("%s%s" % ('+'.join([str(p.rev()) for p in parents]),
48c94bffdb28 identify: add support for output flags
Matt Mackall <mpm@selenic.com>
parents: 4665
diff changeset
2385 (changed) and "+" or ""))
4665
091c9e54d306 identify: accept a revision argument
Matt Mackall <mpm@selenic.com>
parents: 4664
diff changeset
2386 else:
12925
6eab8f0df2ca commands: add revset support to most commands
Matt Mackall <mpm@selenic.com>
parents: 12918
diff changeset
2387 ctx = cmdutil.revsingle(repo, rev)
4666
48c94bffdb28 identify: add support for output flags
Matt Mackall <mpm@selenic.com>
parents: 4665
diff changeset
2388 if default or id:
48c94bffdb28 identify: add support for output flags
Matt Mackall <mpm@selenic.com>
parents: 4665
diff changeset
2389 output = [hexfunc(ctx.node())]
48c94bffdb28 identify: add support for output flags
Matt Mackall <mpm@selenic.com>
parents: 4665
diff changeset
2390 if num:
48c94bffdb28 identify: add support for output flags
Matt Mackall <mpm@selenic.com>
parents: 4665
diff changeset
2391 output.append(str(ctx.rev()))
48c94bffdb28 identify: add support for output flags
Matt Mackall <mpm@selenic.com>
parents: 4665
diff changeset
2392
13644
7e6c2f58ad56 identify: list bookmarks for remote repositories
Nils Adermann <naderman@naderman.de>
parents: 13639
diff changeset
2393 if repo.local():
7e6c2f58ad56 identify: list bookmarks for remote repositories
Nils Adermann <naderman@naderman.de>
parents: 13639
diff changeset
2394 bms = ctx.bookmarks()
7e6c2f58ad56 identify: list bookmarks for remote repositories
Nils Adermann <naderman@naderman.de>
parents: 13639
diff changeset
2395
7757
af6a63438a8a identify: have consistent output for local repositories
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 7743
diff changeset
2396 if repo.local() and default and not ui.quiet:
13047
6c375e07d673 branch: operate on branch names in local string space where possible
Matt Mackall <mpm@selenic.com>
parents: 13022
diff changeset
2397 b = ctx.branch()
4666
48c94bffdb28 identify: add support for output flags
Matt Mackall <mpm@selenic.com>
parents: 4665
diff changeset
2398 if b != 'default':
48c94bffdb28 identify: add support for output flags
Matt Mackall <mpm@selenic.com>
parents: 4665
diff changeset
2399 output.append("(%s)" % b)
3415
9a6491770b04 Report branch for hg id
Matt Mackall <mpm@selenic.com>
parents: 3414
diff changeset
2400
386
494c8e3f47f3 Improvements for hg identify:
Thomas Arendsen Hein <thomas@intevation.de>
parents: 371
diff changeset
2401 # multiple tags for a single parent separated by '/'
4666
48c94bffdb28 identify: add support for output flags
Matt Mackall <mpm@selenic.com>
parents: 4665
diff changeset
2402 t = "/".join(ctx.tags())
48c94bffdb28 identify: add support for output flags
Matt Mackall <mpm@selenic.com>
parents: 4665
diff changeset
2403 if t:
48c94bffdb28 identify: add support for output flags
Matt Mackall <mpm@selenic.com>
parents: 4665
diff changeset
2404 output.append(t)
48c94bffdb28 identify: add support for output flags
Matt Mackall <mpm@selenic.com>
parents: 4665
diff changeset
2405
13644
7e6c2f58ad56 identify: list bookmarks for remote repositories
Nils Adermann <naderman@naderman.de>
parents: 13639
diff changeset
2406 if default and not ui.quiet:
13477
0fb2ff949790 id: add bookmarks to id
Kevin Bullock <kbullock@ringworld.org>
parents: 13473
diff changeset
2407 # multiple bookmarks for a single parent separated by '/'
13644
7e6c2f58ad56 identify: list bookmarks for remote repositories
Nils Adermann <naderman@naderman.de>
parents: 13639
diff changeset
2408 bm = '/'.join(bms)
13477
0fb2ff949790 id: add bookmarks to id
Kevin Bullock <kbullock@ringworld.org>
parents: 13473
diff changeset
2409 if bm:
0fb2ff949790 id: add bookmarks to id
Kevin Bullock <kbullock@ringworld.org>
parents: 13473
diff changeset
2410 output.append(bm)
0fb2ff949790 id: add bookmarks to id
Kevin Bullock <kbullock@ringworld.org>
parents: 13473
diff changeset
2411
4666
48c94bffdb28 identify: add support for output flags
Matt Mackall <mpm@selenic.com>
parents: 4665
diff changeset
2412 if branch:
13047
6c375e07d673 branch: operate on branch names in local string space where possible
Matt Mackall <mpm@selenic.com>
parents: 13022
diff changeset
2413 output.append(ctx.branch())
4666
48c94bffdb28 identify: add support for output flags
Matt Mackall <mpm@selenic.com>
parents: 4665
diff changeset
2414
48c94bffdb28 identify: add support for output flags
Matt Mackall <mpm@selenic.com>
parents: 4665
diff changeset
2415 if tags:
48c94bffdb28 identify: add support for output flags
Matt Mackall <mpm@selenic.com>
parents: 4665
diff changeset
2416 output.extend(ctx.tags())
339
a76fc9c4b67b added hg identify|id (based on a patch from Andrew Thompson)
Thomas Arendsen Hein <thomas@intevation.de>
parents: 338
diff changeset
2417
13477
0fb2ff949790 id: add bookmarks to id
Kevin Bullock <kbullock@ringworld.org>
parents: 13473
diff changeset
2418 if bookmarks:
13644
7e6c2f58ad56 identify: list bookmarks for remote repositories
Nils Adermann <naderman@naderman.de>
parents: 13639
diff changeset
2419 output.extend(bms)
13477
0fb2ff949790 id: add bookmarks to id
Kevin Bullock <kbullock@ringworld.org>
parents: 13473
diff changeset
2420
386
494c8e3f47f3 Improvements for hg identify:
Thomas Arendsen Hein <thomas@intevation.de>
parents: 371
diff changeset
2421 ui.write("%s\n" % ' '.join(output))
339
a76fc9c4b67b added hg identify|id (based on a patch from Andrew Thompson)
Thomas Arendsen Hein <thomas@intevation.de>
parents: 338
diff changeset
2422
437
5b38a5af4019 Commands cleanup
mpm@selenic.com
parents: 429
diff changeset
2423 def import_(ui, repo, patch1, *patches, **opts):
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
2424 """import an ordered set of patches
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
2425
9649
20b91f91f9ca minor documentation improvements
timeless@mozdev.org
parents: 9646
diff changeset
2426 Import a list of patches and commit them individually (unless
20b91f91f9ca minor documentation improvements
timeless@mozdev.org
parents: 9646
diff changeset
2427 --no-commit is specified).
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
2428
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
2429 If there are outstanding changes in the working directory, import
8033
aeb4a5c7a28e commands: consistently write switches as -a/--abc
Martin Geisler <mg@lazybytes.net>
parents: 8032
diff changeset
2430 will abort unless given the -f/--force flag.
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
2431
6448
cd3d49ffc6f6 Consistently 1 space after full stops in command doc strings
Christian Ebert <blacktrash@gmx.net>
parents: 6442
diff changeset
2432 You can import a patch straight from a mail message. Even patches
8779
708938509732 Improve English for help text of many core hg commands.
timeless <timeless@gmail.com>
parents: 8778
diff changeset
2433 as attachments work (to use the body part, it must have type
708938509732 Improve English for help text of many core hg commands.
timeless <timeless@gmail.com>
parents: 8778
diff changeset
2434 text/plain or text/x-patch). From and Subject headers of email
6448
cd3d49ffc6f6 Consistently 1 space after full stops in command doc strings
Christian Ebert <blacktrash@gmx.net>
parents: 6442
diff changeset
2435 message are used as default committer and commit message. All
2515
a6700c222314 import: make help clearer. suggested by asak.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2513
diff changeset
2436 text/plain body parts before first diff are added to commit
a6700c222314 import: make help clearer. suggested by asak.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2513
diff changeset
2437 message.
2504
158d3d2ae070 import: parse email messages
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2494
diff changeset
2438
11193
687c7d395f20 Use our custom hg reStructuredText role some more
Martin Geisler <mg@aragost.com>
parents: 11185
diff changeset
2439 If the imported patch was generated by :hg:`export`, user and
8004
d5b1b846f277 commands: word-wrap help texts at 70 characters
Martin Geisler <mg@daimi.au.dk>
parents: 7983
diff changeset
2440 description from patch override values from message headers and
8033
aeb4a5c7a28e commands: consistently write switches as -a/--abc
Martin Geisler <mg@lazybytes.net>
parents: 8032
diff changeset
2441 body. Values given on command line with -m/--message and -u/--user
aeb4a5c7a28e commands: consistently write switches as -a/--abc
Martin Geisler <mg@lazybytes.net>
parents: 8032
diff changeset
2442 override these.
8004
d5b1b846f277 commands: word-wrap help texts at 70 characters
Martin Geisler <mg@daimi.au.dk>
parents: 7983
diff changeset
2443
d5b1b846f277 commands: word-wrap help texts at 70 characters
Martin Geisler <mg@daimi.au.dk>
parents: 7983
diff changeset
2444 If --exact is specified, import will set the working directory to
d5b1b846f277 commands: word-wrap help texts at 70 characters
Martin Geisler <mg@daimi.au.dk>
parents: 7983
diff changeset
2445 the parent of each patch before applying it, and will abort if the
d5b1b846f277 commands: word-wrap help texts at 70 characters
Martin Geisler <mg@daimi.au.dk>
parents: 7983
diff changeset
2446 resulting changeset has a different ID than the one recorded in
d5b1b846f277 commands: word-wrap help texts at 70 characters
Martin Geisler <mg@daimi.au.dk>
parents: 7983
diff changeset
2447 the patch. This may happen due to character set problems or other
d5b1b846f277 commands: word-wrap help texts at 70 characters
Martin Geisler <mg@daimi.au.dk>
parents: 7983
diff changeset
2448 deficiencies in the text patch format.
4263
47ba52121433 Add import --exact.
Brendan Cully <brendan@kublai.com>
parents: 4256
diff changeset
2449
8033
aeb4a5c7a28e commands: consistently write switches as -a/--abc
Martin Geisler <mg@lazybytes.net>
parents: 8032
diff changeset
2450 With -s/--similarity, hg will attempt to discover renames and
aeb4a5c7a28e commands: consistently write switches as -a/--abc
Martin Geisler <mg@lazybytes.net>
parents: 8032
diff changeset
2451 copies in the patch in the same way as 'addremove'.
7402
bffdab64dfbb import: add similarity option (issue295)
Brendan Cully <brendan@kublai.com>
parents: 7372
diff changeset
2452
8931
4c99eafb101e commands: add note about import retrieving patches from URLs
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 8927
diff changeset
2453 To read a patch from standard input, use "-" as the patch name. If
4c99eafb101e commands: add note about import retrieving patches from URLs
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 8927
diff changeset
2454 a URL is specified, the patch will be downloaded from it.
10973
49a07f441496 Use hg role in help strings
Martin Geisler <mg@aragost.com>
parents: 10963
diff changeset
2455 See :hg:`help dates` for a list of formats valid for -d/--date.
11177
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
2456
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
2457 Returns 0 on success.
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
2458 """
437
5b38a5af4019 Commands cleanup
mpm@selenic.com
parents: 429
diff changeset
2459 patches = (patch1,) + patches
500
ebc4714a7632 [PATCH] Clean up destination directory if a clone fails.
mpm@selenic.com
parents: 499
diff changeset
2460
6139
989467e8e3a9 Fix bad behaviour when specifying an invalid date (issue700)
Thomas Arendsen Hein <thomas@intevation.de>
parents: 6134
diff changeset
2461 date = opts.get('date')
989467e8e3a9 Fix bad behaviour when specifying an invalid date (issue700)
Thomas Arendsen Hein <thomas@intevation.de>
parents: 6134
diff changeset
2462 if date:
989467e8e3a9 Fix bad behaviour when specifying an invalid date (issue700)
Thomas Arendsen Hein <thomas@intevation.de>
parents: 6134
diff changeset
2463 opts['date'] = util.parsedate(date)
989467e8e3a9 Fix bad behaviour when specifying an invalid date (issue700)
Thomas Arendsen Hein <thomas@intevation.de>
parents: 6134
diff changeset
2464
7402
bffdab64dfbb import: add similarity option (issue295)
Brendan Cully <brendan@kublai.com>
parents: 7372
diff changeset
2465 try:
bffdab64dfbb import: add similarity option (issue295)
Brendan Cully <brendan@kublai.com>
parents: 7372
diff changeset
2466 sim = float(opts.get('similarity') or 0)
bffdab64dfbb import: add similarity option (issue295)
Brendan Cully <brendan@kublai.com>
parents: 7372
diff changeset
2467 except ValueError:
bffdab64dfbb import: add similarity option (issue295)
Brendan Cully <brendan@kublai.com>
parents: 7372
diff changeset
2468 raise util.Abort(_('similarity must be a number'))
bffdab64dfbb import: add similarity option (issue295)
Brendan Cully <brendan@kublai.com>
parents: 7372
diff changeset
2469 if sim < 0 or sim > 100:
bffdab64dfbb import: add similarity option (issue295)
Brendan Cully <brendan@kublai.com>
parents: 7372
diff changeset
2470 raise util.Abort(_('similarity must be between 0 and 100'))
bffdab64dfbb import: add similarity option (issue295)
Brendan Cully <brendan@kublai.com>
parents: 7372
diff changeset
2471
7131
23bd7383891c commands: optional options where possible
Alexander Solovyov <piranha@piranha.org.ua>
parents: 7126
diff changeset
2472 if opts.get('exact') or not opts.get('force'):
4549
0c61124ad877 dispatch: move dispatching code to cmdutil
Matt Mackall <mpm@selenic.com>
parents: 4548
diff changeset
2473 cmdutil.bail_if_changed(repo)
966
022bcc738389 hg import: abort with uncommitted changes, override with --force
mpm@selenic.com
parents: 965
diff changeset
2474
437
5b38a5af4019 Commands cleanup
mpm@selenic.com
parents: 429
diff changeset
2475 d = opts["base"]
5b38a5af4019 Commands cleanup
mpm@selenic.com
parents: 429
diff changeset
2476 strip = opts["strip"]
4915
97b734fb9c6f Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents: 4914
diff changeset
2477 wlock = lock = None
12913
0e0a52bd58f9 import: --no-commit should update .hg/last-message.txt
Steve Borho <steve@borho.org>
parents: 12893
diff changeset
2478 msgs = []
10384
832f35386067 import: import each patch in a file or stream as a separate change
Brendan Cully <brendan@kublai.com>
parents: 10379
diff changeset
2479
832f35386067 import: import each patch in a file or stream as a separate change
Brendan Cully <brendan@kublai.com>
parents: 10379
diff changeset
2480 def tryone(ui, hunk):
10413
e433002acb05 fix up a bunch of check-code warnings
Matt Mackall <mpm@selenic.com>
parents: 10405
diff changeset
2481 tmpname, message, user, date, branch, nodeid, p1, p2 = \
e433002acb05 fix up a bunch of check-code warnings
Matt Mackall <mpm@selenic.com>
parents: 10405
diff changeset
2482 patch.extract(ui, hunk)
10384
832f35386067 import: import each patch in a file or stream as a separate change
Brendan Cully <brendan@kublai.com>
parents: 10379
diff changeset
2483
832f35386067 import: import each patch in a file or stream as a separate change
Brendan Cully <brendan@kublai.com>
parents: 10379
diff changeset
2484 if not tmpname:
832f35386067 import: import each patch in a file or stream as a separate change
Brendan Cully <brendan@kublai.com>
parents: 10379
diff changeset
2485 return None
832f35386067 import: import each patch in a file or stream as a separate change
Brendan Cully <brendan@kublai.com>
parents: 10379
diff changeset
2486 commitid = _('to working directory')
832f35386067 import: import each patch in a file or stream as a separate change
Brendan Cully <brendan@kublai.com>
parents: 10379
diff changeset
2487
832f35386067 import: import each patch in a file or stream as a separate change
Brendan Cully <brendan@kublai.com>
parents: 10379
diff changeset
2488 try:
832f35386067 import: import each patch in a file or stream as a separate change
Brendan Cully <brendan@kublai.com>
parents: 10379
diff changeset
2489 cmdline_message = cmdutil.logmessage(opts)
832f35386067 import: import each patch in a file or stream as a separate change
Brendan Cully <brendan@kublai.com>
parents: 10379
diff changeset
2490 if cmdline_message:
832f35386067 import: import each patch in a file or stream as a separate change
Brendan Cully <brendan@kublai.com>
parents: 10379
diff changeset
2491 # pickup the cmdline msg
832f35386067 import: import each patch in a file or stream as a separate change
Brendan Cully <brendan@kublai.com>
parents: 10379
diff changeset
2492 message = cmdline_message
832f35386067 import: import each patch in a file or stream as a separate change
Brendan Cully <brendan@kublai.com>
parents: 10379
diff changeset
2493 elif message:
832f35386067 import: import each patch in a file or stream as a separate change
Brendan Cully <brendan@kublai.com>
parents: 10379
diff changeset
2494 # pickup the patch msg
832f35386067 import: import each patch in a file or stream as a separate change
Brendan Cully <brendan@kublai.com>
parents: 10379
diff changeset
2495 message = message.strip()
832f35386067 import: import each patch in a file or stream as a separate change
Brendan Cully <brendan@kublai.com>
parents: 10379
diff changeset
2496 else:
832f35386067 import: import each patch in a file or stream as a separate change
Brendan Cully <brendan@kublai.com>
parents: 10379
diff changeset
2497 # launch the editor
832f35386067 import: import each patch in a file or stream as a separate change
Brendan Cully <brendan@kublai.com>
parents: 10379
diff changeset
2498 message = None
832f35386067 import: import each patch in a file or stream as a separate change
Brendan Cully <brendan@kublai.com>
parents: 10379
diff changeset
2499 ui.debug('message:\n%s\n' % message)
832f35386067 import: import each patch in a file or stream as a separate change
Brendan Cully <brendan@kublai.com>
parents: 10379
diff changeset
2500
832f35386067 import: import each patch in a file or stream as a separate change
Brendan Cully <brendan@kublai.com>
parents: 10379
diff changeset
2501 wp = repo.parents()
832f35386067 import: import each patch in a file or stream as a separate change
Brendan Cully <brendan@kublai.com>
parents: 10379
diff changeset
2502 if opts.get('exact'):
832f35386067 import: import each patch in a file or stream as a separate change
Brendan Cully <brendan@kublai.com>
parents: 10379
diff changeset
2503 if not nodeid or not p1:
832f35386067 import: import each patch in a file or stream as a separate change
Brendan Cully <brendan@kublai.com>
parents: 10379
diff changeset
2504 raise util.Abort(_('not a Mercurial patch'))
832f35386067 import: import each patch in a file or stream as a separate change
Brendan Cully <brendan@kublai.com>
parents: 10379
diff changeset
2505 p1 = repo.lookup(p1)
832f35386067 import: import each patch in a file or stream as a separate change
Brendan Cully <brendan@kublai.com>
parents: 10379
diff changeset
2506 p2 = repo.lookup(p2 or hex(nullid))
832f35386067 import: import each patch in a file or stream as a separate change
Brendan Cully <brendan@kublai.com>
parents: 10379
diff changeset
2507
832f35386067 import: import each patch in a file or stream as a separate change
Brendan Cully <brendan@kublai.com>
parents: 10379
diff changeset
2508 if p1 != wp[0].node():
832f35386067 import: import each patch in a file or stream as a separate change
Brendan Cully <brendan@kublai.com>
parents: 10379
diff changeset
2509 hg.clean(repo, p1)
832f35386067 import: import each patch in a file or stream as a separate change
Brendan Cully <brendan@kublai.com>
parents: 10379
diff changeset
2510 repo.dirstate.setparents(p1, p2)
832f35386067 import: import each patch in a file or stream as a separate change
Brendan Cully <brendan@kublai.com>
parents: 10379
diff changeset
2511 elif p2:
832f35386067 import: import each patch in a file or stream as a separate change
Brendan Cully <brendan@kublai.com>
parents: 10379
diff changeset
2512 try:
832f35386067 import: import each patch in a file or stream as a separate change
Brendan Cully <brendan@kublai.com>
parents: 10379
diff changeset
2513 p1 = repo.lookup(p1)
832f35386067 import: import each patch in a file or stream as a separate change
Brendan Cully <brendan@kublai.com>
parents: 10379
diff changeset
2514 p2 = repo.lookup(p2)
832f35386067 import: import each patch in a file or stream as a separate change
Brendan Cully <brendan@kublai.com>
parents: 10379
diff changeset
2515 if p1 == wp[0].node():
832f35386067 import: import each patch in a file or stream as a separate change
Brendan Cully <brendan@kublai.com>
parents: 10379
diff changeset
2516 repo.dirstate.setparents(p1, p2)
832f35386067 import: import each patch in a file or stream as a separate change
Brendan Cully <brendan@kublai.com>
parents: 10379
diff changeset
2517 except error.RepoError:
832f35386067 import: import each patch in a file or stream as a separate change
Brendan Cully <brendan@kublai.com>
parents: 10379
diff changeset
2518 pass
832f35386067 import: import each patch in a file or stream as a separate change
Brendan Cully <brendan@kublai.com>
parents: 10379
diff changeset
2519 if opts.get('exact') or opts.get('import_branch'):
832f35386067 import: import each patch in a file or stream as a separate change
Brendan Cully <brendan@kublai.com>
parents: 10379
diff changeset
2520 repo.dirstate.setbranch(branch or 'default')
832f35386067 import: import each patch in a file or stream as a separate change
Brendan Cully <brendan@kublai.com>
parents: 10379
diff changeset
2521
832f35386067 import: import each patch in a file or stream as a separate change
Brendan Cully <brendan@kublai.com>
parents: 10379
diff changeset
2522 files = {}
832f35386067 import: import each patch in a file or stream as a separate change
Brendan Cully <brendan@kublai.com>
parents: 10379
diff changeset
2523 try:
832f35386067 import: import each patch in a file or stream as a separate change
Brendan Cully <brendan@kublai.com>
parents: 10379
diff changeset
2524 patch.patch(tmpname, ui, strip=strip, cwd=repo.root,
832f35386067 import: import each patch in a file or stream as a separate change
Brendan Cully <brendan@kublai.com>
parents: 10379
diff changeset
2525 files=files, eolmode=None)
832f35386067 import: import each patch in a file or stream as a separate change
Brendan Cully <brendan@kublai.com>
parents: 10379
diff changeset
2526 finally:
12266
00658492e2aa patch: break import cycle with cmdutil
Martin Geisler <mg@lazybytes.net>
parents: 12179
diff changeset
2527 files = cmdutil.updatedir(ui, repo, files,
00658492e2aa patch: break import cycle with cmdutil
Martin Geisler <mg@lazybytes.net>
parents: 12179
diff changeset
2528 similarity=sim / 100.0)
12913
0e0a52bd58f9 import: --no-commit should update .hg/last-message.txt
Steve Borho <steve@borho.org>
parents: 12893
diff changeset
2529 if opts.get('no_commit'):
0e0a52bd58f9 import: --no-commit should update .hg/last-message.txt
Steve Borho <steve@borho.org>
parents: 12893
diff changeset
2530 if message:
0e0a52bd58f9 import: --no-commit should update .hg/last-message.txt
Steve Borho <steve@borho.org>
parents: 12893
diff changeset
2531 msgs.append(message)
0e0a52bd58f9 import: --no-commit should update .hg/last-message.txt
Steve Borho <steve@borho.org>
parents: 12893
diff changeset
2532 else:
10384
832f35386067 import: import each patch in a file or stream as a separate change
Brendan Cully <brendan@kublai.com>
parents: 10379
diff changeset
2533 if opts.get('exact'):
832f35386067 import: import each patch in a file or stream as a separate change
Brendan Cully <brendan@kublai.com>
parents: 10379
diff changeset
2534 m = None
832f35386067 import: import each patch in a file or stream as a separate change
Brendan Cully <brendan@kublai.com>
parents: 10379
diff changeset
2535 else:
832f35386067 import: import each patch in a file or stream as a separate change
Brendan Cully <brendan@kublai.com>
parents: 10379
diff changeset
2536 m = cmdutil.matchfiles(repo, files or [])
832f35386067 import: import each patch in a file or stream as a separate change
Brendan Cully <brendan@kublai.com>
parents: 10379
diff changeset
2537 n = repo.commit(message, opts.get('user') or user,
832f35386067 import: import each patch in a file or stream as a separate change
Brendan Cully <brendan@kublai.com>
parents: 10379
diff changeset
2538 opts.get('date') or date, match=m,
832f35386067 import: import each patch in a file or stream as a separate change
Brendan Cully <brendan@kublai.com>
parents: 10379
diff changeset
2539 editor=cmdutil.commiteditor)
832f35386067 import: import each patch in a file or stream as a separate change
Brendan Cully <brendan@kublai.com>
parents: 10379
diff changeset
2540 if opts.get('exact'):
832f35386067 import: import each patch in a file or stream as a separate change
Brendan Cully <brendan@kublai.com>
parents: 10379
diff changeset
2541 if hex(n) != nodeid:
832f35386067 import: import each patch in a file or stream as a separate change
Brendan Cully <brendan@kublai.com>
parents: 10379
diff changeset
2542 repo.rollback()
832f35386067 import: import each patch in a file or stream as a separate change
Brendan Cully <brendan@kublai.com>
parents: 10379
diff changeset
2543 raise util.Abort(_('patch is damaged'
832f35386067 import: import each patch in a file or stream as a separate change
Brendan Cully <brendan@kublai.com>
parents: 10379
diff changeset
2544 ' or loses information'))
832f35386067 import: import each patch in a file or stream as a separate change
Brendan Cully <brendan@kublai.com>
parents: 10379
diff changeset
2545 # Force a dirstate write so that the next transaction
832f35386067 import: import each patch in a file or stream as a separate change
Brendan Cully <brendan@kublai.com>
parents: 10379
diff changeset
2546 # backups an up-do-date file.
832f35386067 import: import each patch in a file or stream as a separate change
Brendan Cully <brendan@kublai.com>
parents: 10379
diff changeset
2547 repo.dirstate.write()
832f35386067 import: import each patch in a file or stream as a separate change
Brendan Cully <brendan@kublai.com>
parents: 10379
diff changeset
2548 if n:
832f35386067 import: import each patch in a file or stream as a separate change
Brendan Cully <brendan@kublai.com>
parents: 10379
diff changeset
2549 commitid = short(n)
832f35386067 import: import each patch in a file or stream as a separate change
Brendan Cully <brendan@kublai.com>
parents: 10379
diff changeset
2550
832f35386067 import: import each patch in a file or stream as a separate change
Brendan Cully <brendan@kublai.com>
parents: 10379
diff changeset
2551 return commitid
832f35386067 import: import each patch in a file or stream as a separate change
Brendan Cully <brendan@kublai.com>
parents: 10379
diff changeset
2552 finally:
832f35386067 import: import each patch in a file or stream as a separate change
Brendan Cully <brendan@kublai.com>
parents: 10379
diff changeset
2553 os.unlink(tmpname)
10405
2d30d66a89ad whitespace cleanup
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 10394
diff changeset
2554
4915
97b734fb9c6f Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents: 4914
diff changeset
2555 try:
97b734fb9c6f Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents: 4914
diff changeset
2556 wlock = repo.wlock()
97b734fb9c6f Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents: 4914
diff changeset
2557 lock = repo.lock()
10384
832f35386067 import: import each patch in a file or stream as a separate change
Brendan Cully <brendan@kublai.com>
parents: 10379
diff changeset
2558 lastcommit = None
4915
97b734fb9c6f Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents: 4914
diff changeset
2559 for p in patches:
97b734fb9c6f Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents: 4914
diff changeset
2560 pf = os.path.join(d, p)
97b734fb9c6f Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents: 4914
diff changeset
2561
97b734fb9c6f Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents: 4914
diff changeset
2562 if pf == '-':
97b734fb9c6f Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents: 4914
diff changeset
2563 ui.status(_("applying patch from stdin\n"))
7271
8046f0a070a6 use our urlopener (proxy handling, etc) instead of urllib
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 7270
diff changeset
2564 pf = sys.stdin
2400
2e90024e1471 import: allow to import stdin with file name "-"
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2397
diff changeset
2565 else:
4915
97b734fb9c6f Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents: 4914
diff changeset
2566 ui.status(_("applying %s\n") % p)
7271
8046f0a070a6 use our urlopener (proxy handling, etc) instead of urllib
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 7270
diff changeset
2567 pf = url.open(ui, pf)
10384
832f35386067 import: import each patch in a file or stream as a separate change
Brendan Cully <brendan@kublai.com>
parents: 10379
diff changeset
2568
832f35386067 import: import each patch in a file or stream as a separate change
Brendan Cully <brendan@kublai.com>
parents: 10379
diff changeset
2569 haspatch = False
832f35386067 import: import each patch in a file or stream as a separate change
Brendan Cully <brendan@kublai.com>
parents: 10379
diff changeset
2570 for hunk in patch.split(pf):
832f35386067 import: import each patch in a file or stream as a separate change
Brendan Cully <brendan@kublai.com>
parents: 10379
diff changeset
2571 commitid = tryone(ui, hunk)
832f35386067 import: import each patch in a file or stream as a separate change
Brendan Cully <brendan@kublai.com>
parents: 10379
diff changeset
2572 if commitid:
832f35386067 import: import each patch in a file or stream as a separate change
Brendan Cully <brendan@kublai.com>
parents: 10379
diff changeset
2573 haspatch = True
832f35386067 import: import each patch in a file or stream as a separate change
Brendan Cully <brendan@kublai.com>
parents: 10379
diff changeset
2574 if lastcommit:
832f35386067 import: import each patch in a file or stream as a separate change
Brendan Cully <brendan@kublai.com>
parents: 10379
diff changeset
2575 ui.status(_('applied %s\n') % lastcommit)
832f35386067 import: import each patch in a file or stream as a separate change
Brendan Cully <brendan@kublai.com>
parents: 10379
diff changeset
2576 lastcommit = commitid
832f35386067 import: import each patch in a file or stream as a separate change
Brendan Cully <brendan@kublai.com>
parents: 10379
diff changeset
2577
832f35386067 import: import each patch in a file or stream as a separate change
Brendan Cully <brendan@kublai.com>
parents: 10379
diff changeset
2578 if not haspatch:
4915
97b734fb9c6f Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents: 4914
diff changeset
2579 raise util.Abort(_('no diffs found'))
97b734fb9c6f Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents: 4914
diff changeset
2580
12913
0e0a52bd58f9 import: --no-commit should update .hg/last-message.txt
Steve Borho <steve@borho.org>
parents: 12893
diff changeset
2581 if msgs:
12918
5c3e5cd141ea import: add another line feed to message join string
Steve Borho <steve@borho.org>
parents: 12913
diff changeset
2582 repo.opener('last-message.txt', 'wb').write('\n* * *\n'.join(msgs))
4915
97b734fb9c6f Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents: 4914
diff changeset
2583 finally:
8109
496ae1ea4698 switch lock releasing in the core from gc to explicit
Ronny Pfannschmidt <Ronny.Pfannschmidt@gmx.de>
parents: 8088
diff changeset
2584 release(lock, wlock)
437
5b38a5af4019 Commands cleanup
mpm@selenic.com
parents: 429
diff changeset
2585
1192
6e165de907c5 Add -p to incoming and outgoing commands to show patch
TK Soh <teekaysoh@yahoo.com>
parents: 1191
diff changeset
2586 def incoming(ui, repo, source="default", **opts):
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
2587 """show new changesets found in source
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
2588
1979
d545fa1426b9 More detailed documentation about ssh:// URLs; fixes issue170.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 1974
diff changeset
2589 Show new changesets found in the specified path/URL or the default
8779
708938509732 Improve English for help text of many core hg commands.
timeless <timeless@gmail.com>
parents: 8778
diff changeset
2590 pull location. These are the changesets that would have been pulled
708938509732 Improve English for help text of many core hg commands.
timeless <timeless@gmail.com>
parents: 8778
diff changeset
2591 if a pull at the time you issued this command.
8004
d5b1b846f277 commands: word-wrap help texts at 70 characters
Martin Geisler <mg@daimi.au.dk>
parents: 7983
diff changeset
2592
d5b1b846f277 commands: word-wrap help texts at 70 characters
Martin Geisler <mg@daimi.au.dk>
parents: 7983
diff changeset
2593 For remote repository, using --bundle avoids downloading the
d5b1b846f277 commands: word-wrap help texts at 70 characters
Martin Geisler <mg@daimi.au.dk>
parents: 7983
diff changeset
2594 changesets twice if the incoming is followed by a pull.
1979
d545fa1426b9 More detailed documentation about ssh:// URLs; fixes issue170.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 1974
diff changeset
2595
d545fa1426b9 More detailed documentation about ssh:// URLs; fixes issue170.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 1974
diff changeset
2596 See pull for valid source format details.
11177
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
2597
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
2598 Returns 0 if there are incoming changes, 1 otherwise.
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
2599 """
12274
c02e1ed3d407 incoming: recurse into subrepositories with --subrepos/-S flag
Martin Geisler <mg@lazybytes.net>
parents: 12273
diff changeset
2600 if opts.get('bundle') and opts.get('subrepos'):
c02e1ed3d407 incoming: recurse into subrepositories with --subrepos/-S flag
Martin Geisler <mg@lazybytes.net>
parents: 12273
diff changeset
2601 raise util.Abort(_('cannot combine --bundle and --subrepos'))
c02e1ed3d407 incoming: recurse into subrepositories with --subrepos/-S flag
Martin Geisler <mg@lazybytes.net>
parents: 12273
diff changeset
2602
13366
c756e9166417 bookmarks: merge incoming/outgoing into core
Matt Mackall <mpm@selenic.com>
parents: 13344
diff changeset
2603 if opts.get('bookmarks'):
c756e9166417 bookmarks: merge incoming/outgoing into core
Matt Mackall <mpm@selenic.com>
parents: 13344
diff changeset
2604 source, branches = hg.parseurl(ui.expandpath(source),
c756e9166417 bookmarks: merge incoming/outgoing into core
Matt Mackall <mpm@selenic.com>
parents: 13344
diff changeset
2605 opts.get('branch'))
c756e9166417 bookmarks: merge incoming/outgoing into core
Matt Mackall <mpm@selenic.com>
parents: 13344
diff changeset
2606 other = hg.repository(hg.remoteui(repo, opts), source)
13453
c1b808020819 bookmarks: issue a warning if remote doesn't support comparing bookmarks
David Soria Parra <dsp@php.net>
parents: 13448
diff changeset
2607 if 'bookmarks' not in other.listkeys('namespaces'):
c1b808020819 bookmarks: issue a warning if remote doesn't support comparing bookmarks
David Soria Parra <dsp@php.net>
parents: 13448
diff changeset
2608 ui.warn(_("remote doesn't support bookmarks\n"))
c1b808020819 bookmarks: issue a warning if remote doesn't support comparing bookmarks
David Soria Parra <dsp@php.net>
parents: 13448
diff changeset
2609 return 0
13366
c756e9166417 bookmarks: merge incoming/outgoing into core
Matt Mackall <mpm@selenic.com>
parents: 13344
diff changeset
2610 ui.status(_('comparing with %s\n') % url.hidepassword(source))
c756e9166417 bookmarks: merge incoming/outgoing into core
Matt Mackall <mpm@selenic.com>
parents: 13344
diff changeset
2611 return bookmarks.diff(ui, repo, other)
c756e9166417 bookmarks: merge incoming/outgoing into core
Matt Mackall <mpm@selenic.com>
parents: 13344
diff changeset
2612
12274
c02e1ed3d407 incoming: recurse into subrepositories with --subrepos/-S flag
Martin Geisler <mg@lazybytes.net>
parents: 12273
diff changeset
2613 ret = hg.incoming(ui, repo, source, opts)
c02e1ed3d407 incoming: recurse into subrepositories with --subrepos/-S flag
Martin Geisler <mg@lazybytes.net>
parents: 12273
diff changeset
2614 return ret
1944
fdf40c9b3306 incoming: add support for remote repo using bundlerepo
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1943
diff changeset
2615
2598
b898afee9d0d Add ui method to set --ssh/--remotecmd, use it in init/clone/pull/push/in/out.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 2597
diff changeset
2616 def init(ui, dest=".", **opts):
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
2617 """create a new repository in the given directory
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
2618
6448
cd3d49ffc6f6 Consistently 1 space after full stops in command doc strings
Christian Ebert <blacktrash@gmx.net>
parents: 6442
diff changeset
2619 Initialize a new repository in the given directory. If the given
8779
708938509732 Improve English for help text of many core hg commands.
timeless <timeless@gmail.com>
parents: 8778
diff changeset
2620 directory does not exist, it will be created.
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
2621
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
2622 If no directory is given, the current directory is used.
2590
911b56853fdd Additional information about URLs in pull/push/clone/init:
Thomas Arendsen Hein <thomas@intevation.de>
parents: 2589
diff changeset
2623
9970
36760956f6d3 commands: mark "ssh://" as inline literals in help texts
Martin Geisler <mg@lazybytes.net>
parents: 9952
diff changeset
2624 It is possible to specify an ``ssh://`` URL as the destination.
10973
49a07f441496 Use hg role in help strings
Martin Geisler <mg@aragost.com>
parents: 10963
diff changeset
2625 See :hg:`help urls` for more information.
11177
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
2626
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
2627 Returns 0 on success.
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
2628 """
12584
fb24b491e06a init: expand destination url as a configured paths
Mads Kiilerich <mads@kiilerich.com>
parents: 12582
diff changeset
2629 hg.repository(hg.remoteui(ui, opts), ui.expandpath(dest), create=1)
338
1e091b3293d5 default path support with .hg/hgrc
mpm@selenic.com
parents: 335
diff changeset
2630
627
b6c42714d900 Add locate command.
Bryan O'Sullivan <bos@serpentine.com>
parents: 625
diff changeset
2631 def locate(ui, repo, *pats, **opts):
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
2632 """locate files matching specific patterns
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
2633
8779
708938509732 Improve English for help text of many core hg commands.
timeless <timeless@gmail.com>
parents: 8778
diff changeset
2634 Print files under Mercurial control in the working directory whose
708938509732 Improve English for help text of many core hg commands.
timeless <timeless@gmail.com>
parents: 8778
diff changeset
2635 names match the given patterns.
708938509732 Improve English for help text of many core hg commands.
timeless <timeless@gmail.com>
parents: 8778
diff changeset
2636
708938509732 Improve English for help text of many core hg commands.
timeless <timeless@gmail.com>
parents: 8778
diff changeset
2637 By default, this command searches all directories in the working
708938509732 Improve English for help text of many core hg commands.
timeless <timeless@gmail.com>
parents: 8778
diff changeset
2638 directory. To search just the current directory and its
708938509732 Improve English for help text of many core hg commands.
timeless <timeless@gmail.com>
parents: 8778
diff changeset
2639 subdirectories, use "--include .".
708938509732 Improve English for help text of many core hg commands.
timeless <timeless@gmail.com>
parents: 8778
diff changeset
2640
708938509732 Improve English for help text of many core hg commands.
timeless <timeless@gmail.com>
parents: 8778
diff changeset
2641 If no patterns are given to match, this command prints the names
708938509732 Improve English for help text of many core hg commands.
timeless <timeless@gmail.com>
parents: 8778
diff changeset
2642 of all files under Mercurial control in the working directory.
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
2643
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
2644 If you want to feed the output of this command into the "xargs"
8032
4726a522a182 commands: use double quotes consistently in help texts
Martin Geisler <mg@lazybytes.net>
parents: 8031
diff changeset
2645 command, use the -0 option to both this command and "xargs". This
4726a522a182 commands: use double quotes consistently in help texts
Martin Geisler <mg@lazybytes.net>
parents: 8031
diff changeset
2646 will avoid the problem of "xargs" treating single filenames that
8779
708938509732 Improve English for help text of many core hg commands.
timeless <timeless@gmail.com>
parents: 8778
diff changeset
2647 contain whitespace as multiple filenames.
11177
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
2648
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
2649 Returns 0 if a match is found, 1 otherwise.
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
2650 """
7131
23bd7383891c commands: optional options where possible
Alexander Solovyov <piranha@piranha.org.ua>
parents: 7126
diff changeset
2651 end = opts.get('print0') and '\0' or '\n'
12925
6eab8f0df2ca commands: add revset support to most commands
Matt Mackall <mpm@selenic.com>
parents: 12918
diff changeset
2652 rev = cmdutil.revsingle(repo, opts.get('rev'), None).node()
742
092937de2ad7 Refactor matchpats and walk
mpm@selenic.com
parents: 740
diff changeset
2653
4196
1c69c73d85d9 locate: exit(1) if we didn't print any file
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 4195
diff changeset
2654 ret = 1
6579
0159b7a36184 walk: pass match object to cmdutil.walk
Matt Mackall <mpm@selenic.com>
parents: 6578
diff changeset
2655 m = cmdutil.match(repo, pats, opts, default='relglob')
10282
08a0f04b56bd many, many trivial check-code fixups
Matt Mackall <mpm@selenic.com>
parents: 10270
diff changeset
2656 m.bad = lambda x, y: False
6764
8db64464d136 context: add walk method
Matt Mackall <mpm@selenic.com>
parents: 6762
diff changeset
2657 for abs in repo[rev].walk(m):
8db64464d136 context: add walk method
Matt Mackall <mpm@selenic.com>
parents: 6762
diff changeset
2658 if not rev and abs not in repo.dirstate:
4308
a5cde03cd019 locate: don't print "file not found" messages.
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 4252
diff changeset
2659 continue
7131
23bd7383891c commands: optional options where possible
Alexander Solovyov <piranha@piranha.org.ua>
parents: 7126
diff changeset
2660 if opts.get('fullpath'):
7570
e05aa73ce2b7 use repo.wjoin(f) instead of os.path.join(repo.root, f)
Martin Geisler <mg@daimi.au.dk>
parents: 7540
diff changeset
2661 ui.write(repo.wjoin(abs), end)
724
1c0c413cccdd Get add and locate to use new repo and dirstate walk code.
Bryan O'Sullivan <bos@serpentine.com>
parents: 723
diff changeset
2662 else:
6584
29c77e5dfb3c walk: remove rel and exact returns
Matt Mackall <mpm@selenic.com>
parents: 6583
diff changeset
2663 ui.write(((pats and m.rel(abs)) or abs), end)
4196
1c69c73d85d9 locate: exit(1) if we didn't print any file
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 4195
diff changeset
2664 ret = 0
1c69c73d85d9 locate: exit(1) if we didn't print any file
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 4195
diff changeset
2665
1c69c73d85d9 locate: exit(1) if we didn't print any file
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 4195
diff changeset
2666 return ret
627
b6c42714d900 Add locate command.
Bryan O'Sullivan <bos@serpentine.com>
parents: 625
diff changeset
2667
1031
503aaf19a040 Rewrite log command. New version is faster and more featureful.
Bryan O'Sullivan <bos@serpentine.com>
parents: 1030
diff changeset
2668 def log(ui, repo, *pats, **opts):
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
2669 """show revision history of entire repository or files
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
2670
2741
ae5ce3454ef5 log: add -f/--follow option, to follow rename/copy
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2739
diff changeset
2671 Print the revision history of the specified files or the entire
ae5ce3454ef5 log: add -f/--follow option, to follow rename/copy
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2739
diff changeset
2672 project.
ae5ce3454ef5 log: add -f/--follow option, to follow rename/copy
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2739
diff changeset
2673
ae5ce3454ef5 log: add -f/--follow option, to follow rename/copy
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2739
diff changeset
2674 File history is shown without following rename or copy history of
8761
0289f384e1e5 Generally replace "file name" with "filename" in help and comments.
timeless <timeless@gmail.com>
parents: 8760
diff changeset
2675 files. Use -f/--follow with a filename to follow history across
0289f384e1e5 Generally replace "file name" with "filename" in help and comments.
timeless <timeless@gmail.com>
parents: 8760
diff changeset
2676 renames and copies. --follow without a filename will only show
2784
12a7bfcafd8f Add log option --follow-first to follow only the first parent of
Brendan Cully <brendan@kublai.com>
parents: 2783
diff changeset
2677 ancestors or descendants of the starting revision. --follow-first
12a7bfcafd8f Add log option --follow-first to follow only the first parent of
Brendan Cully <brendan@kublai.com>
parents: 2783
diff changeset
2678 only follows the first parent of merge revisions.
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
2679
12803
a6a0698960cc commands: mark tip:0 as literal text
Martin Geisler <mg@lazybytes.net>
parents: 12788
diff changeset
2680 If no revision range is specified, the default is ``tip:0`` unless
2783
2e0cd25fe4ac Make log --follow revision range start default to working dir parent.
Brendan Cully <brendan@kublai.com>
parents: 2782
diff changeset
2681 --follow is set, in which case the working directory parent is
11384
c04084753990 commands: advertise "hg help revsets" in help for log
Martin Geisler <mg@lazybytes.net>
parents: 11371
diff changeset
2682 used as the starting revision. You can specify a revision set for
c04084753990 commands: advertise "hg help revsets" in help for log
Martin Geisler <mg@lazybytes.net>
parents: 11371
diff changeset
2683 log, see :hg:`help revsets` for more information.
2783
2e0cd25fe4ac Make log --follow revision range start default to working dir parent.
Brendan Cully <brendan@kublai.com>
parents: 2782
diff changeset
2684
10973
49a07f441496 Use hg role in help strings
Martin Geisler <mg@aragost.com>
parents: 10963
diff changeset
2685 See :hg:`help dates` for a list of formats valid for -d/--date.
6163
1f733c2f0165 Document log date ranges and mention 'hg help dates' for all commands (issue998)
Thomas Arendsen Hein <thomas@intevation.de>
parents: 6161
diff changeset
2686
8779
708938509732 Improve English for help text of many core hg commands.
timeless <timeless@gmail.com>
parents: 8778
diff changeset
2687 By default this command prints revision number and changeset id,
708938509732 Improve English for help text of many core hg commands.
timeless <timeless@gmail.com>
parents: 8778
diff changeset
2688 tags, non-trivial parents, user, date and time, and a summary for
708938509732 Improve English for help text of many core hg commands.
timeless <timeless@gmail.com>
parents: 8778
diff changeset
2689 each commit. When the -v/--verbose switch is used, the list of
708938509732 Improve English for help text of many core hg commands.
timeless <timeless@gmail.com>
parents: 8778
diff changeset
2690 changed files and full commit message are shown.
3822
28134d82db9b Add notes about diff/merge asymmetry to export, diff, and log
Matt Mackall <mpm@selenic.com>
parents: 3815
diff changeset
2691
12390
aff4afdcfd2b Use more note admonitions in help texts
Christian Ebert <blacktrash@gmx.net>
parents: 12389
diff changeset
2692 .. note::
aff4afdcfd2b Use more note admonitions in help texts
Christian Ebert <blacktrash@gmx.net>
parents: 12389
diff changeset
2693 log -p/--patch may generate unexpected diff output for merge
aff4afdcfd2b Use more note admonitions in help texts
Christian Ebert <blacktrash@gmx.net>
parents: 12389
diff changeset
2694 changesets, as it will only compare the merge changeset against
aff4afdcfd2b Use more note admonitions in help texts
Christian Ebert <blacktrash@gmx.net>
parents: 12389
diff changeset
2695 its first parent. Also, only files different from BOTH parents
aff4afdcfd2b Use more note admonitions in help texts
Christian Ebert <blacktrash@gmx.net>
parents: 12389
diff changeset
2696 will appear in files:.
11177
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
2697
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
2698 Returns 0 on success.
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
2699 """
1756
f29857aaa053 add -l,--limit to log command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 1747
diff changeset
2700
9652
2cb0cab10d2e walkchangerevs: pull out matchfn
Matt Mackall <mpm@selenic.com>
parents: 9625
diff changeset
2701 matchfn = cmdutil.match(repo, pats, opts)
6190
a79d9408806f Move finding/checking the log limit to cmdutil
Thomas Arendsen Hein <thomas@intevation.de>
parents: 6189
diff changeset
2702 limit = cmdutil.loglimit(opts)
1756
f29857aaa053 add -l,--limit to log command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 1747
diff changeset
2703 count = 0
f29857aaa053 add -l,--limit to log command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 1747
diff changeset
2704
10060
f780b1098efc templatekw: change {file_copies} behaviour, add {file_copies_switch}
Patrick Mezard <pmezard@gmail.com>
parents: 10021
diff changeset
2705 endrev = None
7131
23bd7383891c commands: optional options where possible
Alexander Solovyov <piranha@piranha.org.ua>
parents: 7126
diff changeset
2706 if opts.get('copies') and opts.get('rev'):
23bd7383891c commands: optional options where possible
Alexander Solovyov <piranha@piranha.org.ua>
parents: 7126
diff changeset
2707 endrev = max(cmdutil.revrange(repo, opts.get('rev'))) + 1
3197
e18c3d08528d Show copies in hg log.
Brendan Cully <brendan@kublai.com>
parents: 3194
diff changeset
2708
3813
fc5ba0ab7f45 Add --date support to log
Matt Mackall <mpm@selenic.com>
parents: 3812
diff changeset
2709 df = False
fc5ba0ab7f45 Add --date support to log
Matt Mackall <mpm@selenic.com>
parents: 3812
diff changeset
2710 if opts["date"]:
fc5ba0ab7f45 Add --date support to log
Matt Mackall <mpm@selenic.com>
parents: 3812
diff changeset
2711 df = util.matchdate(opts["date"])
fc5ba0ab7f45 Add --date support to log
Matt Mackall <mpm@selenic.com>
parents: 3812
diff changeset
2712
10963
9e314c5e6890 log -b: use opts.get() instead of assuming opts is correctly filled
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 10962
diff changeset
2713 branches = opts.get('branch', []) + opts.get('only_branch', [])
9e314c5e6890 log -b: use opts.get() instead of assuming opts is correctly filled
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 10962
diff changeset
2714 opts['branch'] = [repo.lookupbranch(b) for b in branches]
10957
0d5f139b23c1 commands: Add 'hg log --branch' and deprecate 'hg log --only-branch'
Steve Losh <steve@stevelosh.com>
parents: 10934
diff changeset
2715
11488
f786fc4b8764 log: follow filenames through renames (issue647)
Mads Kiilerich <mads@kiilerich.com>
parents: 11459
diff changeset
2716 displayer = cmdutil.show_changeset(ui, repo, opts, True)
9662
f3d60543924f walkchangerevs: move 'add' to callback
Matt Mackall <mpm@selenic.com>
parents: 9656
diff changeset
2717 def prep(ctx, fns):
9655
6d7d3f849062 walkchangerevs: internalize ctx caching
Matt Mackall <mpm@selenic.com>
parents: 9654
diff changeset
2718 rev = ctx.rev()
9662
f3d60543924f walkchangerevs: move 'add' to callback
Matt Mackall <mpm@selenic.com>
parents: 9656
diff changeset
2719 parents = [p for p in repo.changelog.parentrevs(rev)
f3d60543924f walkchangerevs: move 'add' to callback
Matt Mackall <mpm@selenic.com>
parents: 9656
diff changeset
2720 if p != nullrev]
f3d60543924f walkchangerevs: move 'add' to callback
Matt Mackall <mpm@selenic.com>
parents: 9656
diff changeset
2721 if opts.get('no_merges') and len(parents) == 2:
f3d60543924f walkchangerevs: move 'add' to callback
Matt Mackall <mpm@selenic.com>
parents: 9656
diff changeset
2722 return
f3d60543924f walkchangerevs: move 'add' to callback
Matt Mackall <mpm@selenic.com>
parents: 9656
diff changeset
2723 if opts.get('only_merges') and len(parents) != 2:
f3d60543924f walkchangerevs: move 'add' to callback
Matt Mackall <mpm@selenic.com>
parents: 9656
diff changeset
2724 return
10957
0d5f139b23c1 commands: Add 'hg log --branch' and deprecate 'hg log --only-branch'
Steve Losh <steve@stevelosh.com>
parents: 10934
diff changeset
2725 if opts.get('branch') and ctx.branch() not in opts['branch']:
9662
f3d60543924f walkchangerevs: move 'add' to callback
Matt Mackall <mpm@selenic.com>
parents: 9656
diff changeset
2726 return
f3d60543924f walkchangerevs: move 'add' to callback
Matt Mackall <mpm@selenic.com>
parents: 9656
diff changeset
2727 if df and not df(ctx.date()[0]):
f3d60543924f walkchangerevs: move 'add' to callback
Matt Mackall <mpm@selenic.com>
parents: 9656
diff changeset
2728 return
12863
60d9692921ea log: do case insensitive search for --user option
Gilles Moris <gilles.moris@free.fr>
parents: 12852
diff changeset
2729 if opts['user'] and not [k for k in opts['user']
60d9692921ea log: do case insensitive search for --user option
Gilles Moris <gilles.moris@free.fr>
parents: 12852
diff changeset
2730 if k.lower() in ctx.user().lower()]:
9663
4164a17e7126 log: tidy up some filter tests
Matt Mackall <mpm@selenic.com>
parents: 9662
diff changeset
2731 return
9662
f3d60543924f walkchangerevs: move 'add' to callback
Matt Mackall <mpm@selenic.com>
parents: 9656
diff changeset
2732 if opts.get('keyword'):
f3d60543924f walkchangerevs: move 'add' to callback
Matt Mackall <mpm@selenic.com>
parents: 9656
diff changeset
2733 for k in [kw.lower() for kw in opts['keyword']]:
9663
4164a17e7126 log: tidy up some filter tests
Matt Mackall <mpm@selenic.com>
parents: 9662
diff changeset
2734 if (k in ctx.user().lower() or
4164a17e7126 log: tidy up some filter tests
Matt Mackall <mpm@selenic.com>
parents: 9662
diff changeset
2735 k in ctx.description().lower() or
4164a17e7126 log: tidy up some filter tests
Matt Mackall <mpm@selenic.com>
parents: 9662
diff changeset
2736 k in " ".join(ctx.files()).lower()):
9662
f3d60543924f walkchangerevs: move 'add' to callback
Matt Mackall <mpm@selenic.com>
parents: 9656
diff changeset
2737 break
9663
4164a17e7126 log: tidy up some filter tests
Matt Mackall <mpm@selenic.com>
parents: 9662
diff changeset
2738 else:
9662
f3d60543924f walkchangerevs: move 'add' to callback
Matt Mackall <mpm@selenic.com>
parents: 9656
diff changeset
2739 return
f3d60543924f walkchangerevs: move 'add' to callback
Matt Mackall <mpm@selenic.com>
parents: 9656
diff changeset
2740
10060
f780b1098efc templatekw: change {file_copies} behaviour, add {file_copies_switch}
Patrick Mezard <pmezard@gmail.com>
parents: 10021
diff changeset
2741 copies = None
9662
f3d60543924f walkchangerevs: move 'add' to callback
Matt Mackall <mpm@selenic.com>
parents: 9656
diff changeset
2742 if opts.get('copies') and rev:
10060
f780b1098efc templatekw: change {file_copies} behaviour, add {file_copies_switch}
Patrick Mezard <pmezard@gmail.com>
parents: 10021
diff changeset
2743 copies = []
f780b1098efc templatekw: change {file_copies} behaviour, add {file_copies_switch}
Patrick Mezard <pmezard@gmail.com>
parents: 10021
diff changeset
2744 getrenamed = templatekw.getrenamedfn(repo, endrev=endrev)
9662
f3d60543924f walkchangerevs: move 'add' to callback
Matt Mackall <mpm@selenic.com>
parents: 9656
diff changeset
2745 for fn in ctx.files():
f3d60543924f walkchangerevs: move 'add' to callback
Matt Mackall <mpm@selenic.com>
parents: 9656
diff changeset
2746 rename = getrenamed(fn, rev)
f3d60543924f walkchangerevs: move 'add' to callback
Matt Mackall <mpm@selenic.com>
parents: 9656
diff changeset
2747 if rename:
f3d60543924f walkchangerevs: move 'add' to callback
Matt Mackall <mpm@selenic.com>
parents: 9656
diff changeset
2748 copies.append((fn, rename[0]))
f3d60543924f walkchangerevs: move 'add' to callback
Matt Mackall <mpm@selenic.com>
parents: 9656
diff changeset
2749
11488
f786fc4b8764 log: follow filenames through renames (issue647)
Mads Kiilerich <mads@kiilerich.com>
parents: 11459
diff changeset
2750 revmatchfn = None
f786fc4b8764 log: follow filenames through renames (issue647)
Mads Kiilerich <mads@kiilerich.com>
parents: 11459
diff changeset
2751 if opts.get('patch') or opts.get('stat'):
12382
28ddf67198b2 log: include unmodified-in-merge files in log diff/stat (issue2383)
Mads Kiilerich <mads@kiilerich.com>
parents: 12129
diff changeset
2752 if opts.get('follow') or opts.get('follow_first'):
28ddf67198b2 log: include unmodified-in-merge files in log diff/stat (issue2383)
Mads Kiilerich <mads@kiilerich.com>
parents: 12129
diff changeset
2753 # note: this might be wrong when following through merges
28ddf67198b2 log: include unmodified-in-merge files in log diff/stat (issue2383)
Mads Kiilerich <mads@kiilerich.com>
parents: 12129
diff changeset
2754 revmatchfn = cmdutil.match(repo, fns, default='path')
28ddf67198b2 log: include unmodified-in-merge files in log diff/stat (issue2383)
Mads Kiilerich <mads@kiilerich.com>
parents: 12129
diff changeset
2755 else:
28ddf67198b2 log: include unmodified-in-merge files in log diff/stat (issue2383)
Mads Kiilerich <mads@kiilerich.com>
parents: 12129
diff changeset
2756 revmatchfn = matchfn
11488
f786fc4b8764 log: follow filenames through renames (issue647)
Mads Kiilerich <mads@kiilerich.com>
parents: 11459
diff changeset
2757
f786fc4b8764 log: follow filenames through renames (issue647)
Mads Kiilerich <mads@kiilerich.com>
parents: 11459
diff changeset
2758 displayer.show(ctx, copies=copies, matchfn=revmatchfn)
9662
f3d60543924f walkchangerevs: move 'add' to callback
Matt Mackall <mpm@selenic.com>
parents: 9656
diff changeset
2759
9665
1de5ebfa5585 walkchangerevs: drop ui arg
Matt Mackall <mpm@selenic.com>
parents: 9663
diff changeset
2760 for ctx in cmdutil.walkchangerevs(repo, matchfn, opts, prep):
9687
c6da1cb3b255 log --limit: break after a limited number of csets (broken by f3d60543924f)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 9679
diff changeset
2761 if count == limit:
c6da1cb3b255 log --limit: break after a limited number of csets (broken by f3d60543924f)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 9679
diff changeset
2762 break
c6da1cb3b255 log --limit: break after a limited number of csets (broken by f3d60543924f)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 9679
diff changeset
2763 if displayer.flush(ctx.rev()):
c6da1cb3b255 log --limit: break after a limited number of csets (broken by f3d60543924f)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 9679
diff changeset
2764 count += 1
10152
56284451a22c Added support for templatevar "footer" to cmdutil.py
Robert Bachmann <rbachm@gmail.com>
parents: 10111
diff changeset
2765 displayer.close()
255
20a44c82795f hg help: use docstrings only
mpm@selenic.com
parents: 254
diff changeset
2766
5155
13d23d66a6cd manifest: accept -r for rev specification
Bryan O'Sullivan <bos@serpentine.com>
parents: 5148
diff changeset
2767 def manifest(ui, repo, node=None, rev=None):
3914
283ee8971570 doc string fix: hg cat and manifest default to current parent revision.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 3900
diff changeset
2768 """output the current or given revision of the project manifest
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
2769
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
2770 Print a list of version controlled files for the given revision.
8041
87c5a4af0b5a Fix manifest default rev doc when no rev is checked out (issue1603)
Patrick Mezard <pmezard@gmail.com>
parents: 7850
diff changeset
2771 If no revision is given, the first parent of the working directory
8779
708938509732 Improve English for help text of many core hg commands.
timeless <timeless@gmail.com>
parents: 8778
diff changeset
2772 is used, or the null revision if no revision is checked out.
708938509732 Improve English for help text of many core hg commands.
timeless <timeless@gmail.com>
parents: 8778
diff changeset
2773
708938509732 Improve English for help text of many core hg commands.
timeless <timeless@gmail.com>
parents: 8778
diff changeset
2774 With -v, print file permissions, symlink and executable bits.
708938509732 Improve English for help text of many core hg commands.
timeless <timeless@gmail.com>
parents: 8778
diff changeset
2775 With --debug, print file revision hashes.
11177
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
2776
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
2777 Returns 0 on success.
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
2778 """
3736
ad3d5b4367cb make manifest friendlier
Matt Mackall <mpm@selenic.com>
parents: 3707
diff changeset
2779
5155
13d23d66a6cd manifest: accept -r for rev specification
Bryan O'Sullivan <bos@serpentine.com>
parents: 5148
diff changeset
2780 if rev and node:
13d23d66a6cd manifest: accept -r for rev specification
Bryan O'Sullivan <bos@serpentine.com>
parents: 5148
diff changeset
2781 raise util.Abort(_("please specify just one revision"))
13d23d66a6cd manifest: accept -r for rev specification
Bryan O'Sullivan <bos@serpentine.com>
parents: 5148
diff changeset
2782
13d23d66a6cd manifest: accept -r for rev specification
Bryan O'Sullivan <bos@serpentine.com>
parents: 5148
diff changeset
2783 if not node:
13d23d66a6cd manifest: accept -r for rev specification
Bryan O'Sullivan <bos@serpentine.com>
parents: 5148
diff changeset
2784 node = rev
13d23d66a6cd manifest: accept -r for rev specification
Bryan O'Sullivan <bos@serpentine.com>
parents: 5148
diff changeset
2785
6749
51b0e799352f manifest: remove execf/linkf methods
Matt Mackall <mpm@selenic.com>
parents: 6748
diff changeset
2786 decor = {'l':'644 @ ', 'x':'755 * ', '':'644 '}
12925
6eab8f0df2ca commands: add revset support to most commands
Matt Mackall <mpm@selenic.com>
parents: 12918
diff changeset
2787 ctx = cmdutil.revsingle(repo, node)
6749
51b0e799352f manifest: remove execf/linkf methods
Matt Mackall <mpm@selenic.com>
parents: 6748
diff changeset
2788 for f in ctx:
3736
ad3d5b4367cb make manifest friendlier
Matt Mackall <mpm@selenic.com>
parents: 3707
diff changeset
2789 if ui.debugflag:
6749
51b0e799352f manifest: remove execf/linkf methods
Matt Mackall <mpm@selenic.com>
parents: 6748
diff changeset
2790 ui.write("%40s " % hex(ctx.manifest()[f]))
3736
ad3d5b4367cb make manifest friendlier
Matt Mackall <mpm@selenic.com>
parents: 3707
diff changeset
2791 if ui.verbose:
6749
51b0e799352f manifest: remove execf/linkf methods
Matt Mackall <mpm@selenic.com>
parents: 6748
diff changeset
2792 ui.write(decor[ctx.flags(f)])
3736
ad3d5b4367cb make manifest friendlier
Matt Mackall <mpm@selenic.com>
parents: 3707
diff changeset
2793 ui.write("%s\n" % f)
255
20a44c82795f hg help: use docstrings only
mpm@selenic.com
parents: 254
diff changeset
2794
8387
50b6af595e0c merge: add -S/--show option to review revisions without merging
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 8366
diff changeset
2795 def merge(ui, repo, node=None, **opts):
4014
509342f95564 various doc fixes
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 4013
diff changeset
2796 """merge working directory with another revision
2019
ced2d3620f95 add merge command. means same thing as "update -m".
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 1996
diff changeset
2797
8779
708938509732 Improve English for help text of many core hg commands.
timeless <timeless@gmail.com>
parents: 8778
diff changeset
2798 The current working directory is updated with all changes made in
708938509732 Improve English for help text of many core hg commands.
timeless <timeless@gmail.com>
parents: 8778
diff changeset
2799 the requested revision since the last common predecessor revision.
7977
1cd3775e097c commands: better merge help text
Martin Geisler <mg@daimi.au.dk>
parents: 7976
diff changeset
2800
1cd3775e097c commands: better merge help text
Martin Geisler <mg@daimi.au.dk>
parents: 7976
diff changeset
2801 Files that changed between either parent are marked as changed for
1cd3775e097c commands: better merge help text
Martin Geisler <mg@daimi.au.dk>
parents: 7976
diff changeset
2802 the next commit and a commit must be performed before any further
8779
708938509732 Improve English for help text of many core hg commands.
timeless <timeless@gmail.com>
parents: 8778
diff changeset
2803 updates to the repository are allowed. The next commit will have
708938509732 Improve English for help text of many core hg commands.
timeless <timeless@gmail.com>
parents: 8778
diff changeset
2804 two parents.
2915
013921c753bd merge with other head by default, not tip.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2911
diff changeset
2805
12750
05bd2658bbb3 merge: add --tool argument to merge and resolve
Steve Borho <steve@borho.org>
parents: 12727
diff changeset
2806 ``--tool`` can be used to specify the merge tool used for file
05bd2658bbb3 merge: add --tool argument to merge and resolve
Steve Borho <steve@borho.org>
parents: 12727
diff changeset
2807 merges. It overrides the HGMERGE environment variable and your
05bd2658bbb3 merge: add --tool argument to merge and resolve
Steve Borho <steve@borho.org>
parents: 12727
diff changeset
2808 configuration files.
05bd2658bbb3 merge: add --tool argument to merge and resolve
Steve Borho <steve@borho.org>
parents: 12727
diff changeset
2809
2915
013921c753bd merge with other head by default, not tip.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2911
diff changeset
2810 If no revision is specified, the working directory's parent is a
8004
d5b1b846f277 commands: word-wrap help texts at 70 characters
Martin Geisler <mg@daimi.au.dk>
parents: 7983
diff changeset
2811 head revision, and the current branch contains exactly one other
d5b1b846f277 commands: word-wrap help texts at 70 characters
Martin Geisler <mg@daimi.au.dk>
parents: 7983
diff changeset
2812 head, the other head is merged with by default. Otherwise, an
8779
708938509732 Improve English for help text of many core hg commands.
timeless <timeless@gmail.com>
parents: 8778
diff changeset
2813 explicit revision with which to merge with must be provided.
11177
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
2814
12750
05bd2658bbb3 merge: add --tool argument to merge and resolve
Steve Borho <steve@borho.org>
parents: 12727
diff changeset
2815 :hg:`resolve` must be used to resolve unresolved files.
05bd2658bbb3 merge: add --tool argument to merge and resolve
Steve Borho <steve@borho.org>
parents: 12727
diff changeset
2816
11452
eac141407b85 merge: document how to 'undo' a merge
Matt Mackall <mpm@selenic.com>
parents: 11442
diff changeset
2817 To undo an uncommitted merge, use :hg:`update --clean .` which
eac141407b85 merge: document how to 'undo' a merge
Matt Mackall <mpm@selenic.com>
parents: 11442
diff changeset
2818 will check out a clean copy of the original merge parent, losing
eac141407b85 merge: document how to 'undo' a merge
Matt Mackall <mpm@selenic.com>
parents: 11442
diff changeset
2819 all changes.
eac141407b85 merge: document how to 'undo' a merge
Matt Mackall <mpm@selenic.com>
parents: 11442
diff changeset
2820
11177
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
2821 Returns 0 on success, 1 if there are unresolved files.
2019
ced2d3620f95 add merge command. means same thing as "update -m".
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 1996
diff changeset
2822 """
2806
0bf22c109cc3 Factor doupdate into _lookup + hg.update
Matt Mackall <mpm@selenic.com>
parents: 2803
diff changeset
2823
8387
50b6af595e0c merge: add -S/--show option to review revisions without merging
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 8366
diff changeset
2824 if opts.get('rev') and node:
4450
8fa54b9c6c5a accept -r REV in more places
Daniel Holth <dholth@fastmail.fm>
parents: 4445
diff changeset
2825 raise util.Abort(_("please specify just one revision"))
8fa54b9c6c5a accept -r REV in more places
Daniel Holth <dholth@fastmail.fm>
parents: 4445
diff changeset
2826 if not node:
8387
50b6af595e0c merge: add -S/--show option to review revisions without merging
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 8366
diff changeset
2827 node = opts.get('rev')
4450
8fa54b9c6c5a accept -r REV in more places
Daniel Holth <dholth@fastmail.fm>
parents: 4445
diff changeset
2828
3876
1e0b94cfba0e Remove deprecated old-style branch support
Matt Mackall <mpm@selenic.com>
parents: 3862
diff changeset
2829 if not node:
13047
6c375e07d673 branch: operate on branch names in local string space where possible
Matt Mackall <mpm@selenic.com>
parents: 13022
diff changeset
2830 branch = repo[None].branch()
6844
a38dff85d31f merge: use correct branch name for counting heads
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 6843
diff changeset
2831 bheads = repo.branchheads(branch)
6723
1fe6f365df2e merge: only in-branch merges can be implicit
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 6686
diff changeset
2832 if len(bheads) > 2:
11353
f2b25e8ea6c1 merge: when current branch has 1 or > 2 heads, actually abort.
Greg Ward <greg-hg@gerg.ca>
parents: 11342
diff changeset
2833 raise util.Abort(_(
f2b25e8ea6c1 merge: when current branch has 1 or > 2 heads, actually abort.
Greg Ward <greg-hg@gerg.ca>
parents: 11342
diff changeset
2834 'branch \'%s\' has %d heads - '
f2b25e8ea6c1 merge: when current branch has 1 or > 2 heads, actually abort.
Greg Ward <greg-hg@gerg.ca>
parents: 11342
diff changeset
2835 'please merge with an explicit rev\n'
f2b25e8ea6c1 merge: when current branch has 1 or > 2 heads, actually abort.
Greg Ward <greg-hg@gerg.ca>
parents: 11342
diff changeset
2836 '(run \'hg heads .\' to see heads)')
f2b25e8ea6c1 merge: when current branch has 1 or > 2 heads, actually abort.
Greg Ward <greg-hg@gerg.ca>
parents: 11342
diff changeset
2837 % (branch, len(bheads)))
6723
1fe6f365df2e merge: only in-branch merges can be implicit
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 6686
diff changeset
2838
5242
9cd6578750b9 improve error message for 'hg merge' when repo already at branchtip
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 5205
diff changeset
2839 parent = repo.dirstate.parents()[0]
6723
1fe6f365df2e merge: only in-branch merges can be implicit
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 6686
diff changeset
2840 if len(bheads) == 1:
1fe6f365df2e merge: only in-branch merges can be implicit
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 6686
diff changeset
2841 if len(repo.heads()) > 1:
11353
f2b25e8ea6c1 merge: when current branch has 1 or > 2 heads, actually abort.
Greg Ward <greg-hg@gerg.ca>
parents: 11342
diff changeset
2842 raise util.Abort(_(
f2b25e8ea6c1 merge: when current branch has 1 or > 2 heads, actually abort.
Greg Ward <greg-hg@gerg.ca>
parents: 11342
diff changeset
2843 'branch \'%s\' has one head - '
f2b25e8ea6c1 merge: when current branch has 1 or > 2 heads, actually abort.
Greg Ward <greg-hg@gerg.ca>
parents: 11342
diff changeset
2844 'please merge with an explicit rev\n'
f2b25e8ea6c1 merge: when current branch has 1 or > 2 heads, actually abort.
Greg Ward <greg-hg@gerg.ca>
parents: 11342
diff changeset
2845 '(run \'hg heads\' to see all heads)')
f2b25e8ea6c1 merge: when current branch has 1 or > 2 heads, actually abort.
Greg Ward <greg-hg@gerg.ca>
parents: 11342
diff changeset
2846 % branch)
5242
9cd6578750b9 improve error message for 'hg merge' when repo already at branchtip
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 5205
diff changeset
2847 msg = _('there is nothing to merge')
6747
f6c00b17387c use repo[changeid] to get a changectx
Matt Mackall <mpm@selenic.com>
parents: 6746
diff changeset
2848 if parent != repo.lookup(repo[None].branch()):
5542
253736bb0dc9 i18n: fix complaints from pygettext
Matt Mackall <mpm@selenic.com>
parents: 5525
diff changeset
2849 msg = _('%s - use "hg update" instead') % msg
5242
9cd6578750b9 improve error message for 'hg merge' when repo already at branchtip
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 5205
diff changeset
2850 raise util.Abort(msg)
9cd6578750b9 improve error message for 'hg merge' when repo already at branchtip
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 5205
diff changeset
2851
6723
1fe6f365df2e merge: only in-branch merges can be implicit
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 6686
diff changeset
2852 if parent not in bheads:
2915
013921c753bd merge with other head by default, not tip.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2911
diff changeset
2853 raise util.Abort(_('working dir not at a head rev - '
013921c753bd merge with other head by default, not tip.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2911
diff changeset
2854 'use "hg update" or merge with an explicit rev'))
6723
1fe6f365df2e merge: only in-branch merges can be implicit
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 6686
diff changeset
2855 node = parent == bheads[0] and bheads[-1] or bheads[0]
12925
6eab8f0df2ca commands: add revset support to most commands
Matt Mackall <mpm@selenic.com>
parents: 12918
diff changeset
2856 else:
6eab8f0df2ca commands: add revset support to most commands
Matt Mackall <mpm@selenic.com>
parents: 12918
diff changeset
2857 node = cmdutil.revsingle(repo, node).node()
8387
50b6af595e0c merge: add -S/--show option to review revisions without merging
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 8366
diff changeset
2858
8834
6d36fc70754e merge: rename -S/--show option to -P/--preview
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 8815
diff changeset
2859 if opts.get('preview'):
10505
b3311e26f94f merge: fix --preview to show all nodes that will be merged (issue2043).
Greg Ward <greg-hg@gerg.ca>
parents: 10479
diff changeset
2860 # find nodes that are ancestors of p2 but not of p1
b3311e26f94f merge: fix --preview to show all nodes that will be merged (issue2043).
Greg Ward <greg-hg@gerg.ca>
parents: 10479
diff changeset
2861 p1 = repo.lookup('.')
b3311e26f94f merge: fix --preview to show all nodes that will be merged (issue2043).
Greg Ward <greg-hg@gerg.ca>
parents: 10479
diff changeset
2862 p2 = repo.lookup(node)
b3311e26f94f merge: fix --preview to show all nodes that will be merged (issue2043).
Greg Ward <greg-hg@gerg.ca>
parents: 10479
diff changeset
2863 nodes = repo.changelog.findmissing(common=[p1], heads=[p2])
b3311e26f94f merge: fix --preview to show all nodes that will be merged (issue2043).
Greg Ward <greg-hg@gerg.ca>
parents: 10479
diff changeset
2864
8387
50b6af595e0c merge: add -S/--show option to review revisions without merging
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 8366
diff changeset
2865 displayer = cmdutil.show_changeset(ui, repo, opts)
10505
b3311e26f94f merge: fix --preview to show all nodes that will be merged (issue2043).
Greg Ward <greg-hg@gerg.ca>
parents: 10479
diff changeset
2866 for node in nodes:
b3311e26f94f merge: fix --preview to show all nodes that will be merged (issue2043).
Greg Ward <greg-hg@gerg.ca>
parents: 10479
diff changeset
2867 displayer.show(repo[node])
10152
56284451a22c Added support for templatevar "footer" to cmdutil.py
Robert Bachmann <rbachm@gmail.com>
parents: 10111
diff changeset
2868 displayer.close()
8387
50b6af595e0c merge: add -S/--show option to review revisions without merging
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 8366
diff changeset
2869 return 0
50b6af595e0c merge: add -S/--show option to review revisions without merging
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 8366
diff changeset
2870
12788
de793925862e merge: implement --tool arguments using new ui.forcemerge configurable
Steve Borho <steve@borho.org>
parents: 12765
diff changeset
2871 try:
de793925862e merge: implement --tool arguments using new ui.forcemerge configurable
Steve Borho <steve@borho.org>
parents: 12765
diff changeset
2872 # ui.forcemerge is an internal variable, do not document
de793925862e merge: implement --tool arguments using new ui.forcemerge configurable
Steve Borho <steve@borho.org>
parents: 12765
diff changeset
2873 ui.setconfig('ui', 'forcemerge', opts.get('tool', ''))
de793925862e merge: implement --tool arguments using new ui.forcemerge configurable
Steve Borho <steve@borho.org>
parents: 12765
diff changeset
2874 return hg.merge(repo, node, force=opts.get('force'))
de793925862e merge: implement --tool arguments using new ui.forcemerge configurable
Steve Borho <steve@borho.org>
parents: 12765
diff changeset
2875 finally:
de793925862e merge: implement --tool arguments using new ui.forcemerge configurable
Steve Borho <steve@borho.org>
parents: 12765
diff changeset
2876 ui.setconfig('ui', 'forcemerge', '')
2029
d436b21b20dc rewrite revert command. fix issues 93, 123, 147.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2022
diff changeset
2877
2494
73ac95671788 push, outgoing, bundle: fall back to "default" if "default-push" not defined
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2493
diff changeset
2878 def outgoing(ui, repo, dest=None, **opts):
10376
a2950e053614 help: Improved body text
timeless <timeless@mozdev.org>
parents: 10375
diff changeset
2879 """show changesets not found in the destination
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
2880
8004
d5b1b846f277 commands: word-wrap help texts at 70 characters
Martin Geisler <mg@daimi.au.dk>
parents: 7983
diff changeset
2881 Show changesets not found in the specified destination repository
d5b1b846f277 commands: word-wrap help texts at 70 characters
Martin Geisler <mg@daimi.au.dk>
parents: 7983
diff changeset
2882 or the default push location. These are the changesets that would
d5b1b846f277 commands: word-wrap help texts at 70 characters
Martin Geisler <mg@daimi.au.dk>
parents: 7983
diff changeset
2883 be pushed if a push was requested.
1811
6cb548cffdf5 resync commands.py docstrings with hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1804
diff changeset
2884
10376
a2950e053614 help: Improved body text
timeless <timeless@mozdev.org>
parents: 10375
diff changeset
2885 See pull for details of valid destination formats.
11177
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
2886
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
2887 Returns 0 if there are outgoing changes, 1 otherwise.
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
2888 """
13366
c756e9166417 bookmarks: merge incoming/outgoing into core
Matt Mackall <mpm@selenic.com>
parents: 13344
diff changeset
2889
c756e9166417 bookmarks: merge incoming/outgoing into core
Matt Mackall <mpm@selenic.com>
parents: 13344
diff changeset
2890 if opts.get('bookmarks'):
c756e9166417 bookmarks: merge incoming/outgoing into core
Matt Mackall <mpm@selenic.com>
parents: 13344
diff changeset
2891 dest = ui.expandpath(dest or 'default-push', dest or 'default')
c756e9166417 bookmarks: merge incoming/outgoing into core
Matt Mackall <mpm@selenic.com>
parents: 13344
diff changeset
2892 dest, branches = hg.parseurl(dest, opts.get('branch'))
c756e9166417 bookmarks: merge incoming/outgoing into core
Matt Mackall <mpm@selenic.com>
parents: 13344
diff changeset
2893 other = hg.repository(hg.remoteui(repo, opts), dest)
13453
c1b808020819 bookmarks: issue a warning if remote doesn't support comparing bookmarks
David Soria Parra <dsp@php.net>
parents: 13448
diff changeset
2894 if 'bookmarks' not in other.listkeys('namespaces'):
c1b808020819 bookmarks: issue a warning if remote doesn't support comparing bookmarks
David Soria Parra <dsp@php.net>
parents: 13448
diff changeset
2895 ui.warn(_("remote doesn't support bookmarks\n"))
c1b808020819 bookmarks: issue a warning if remote doesn't support comparing bookmarks
David Soria Parra <dsp@php.net>
parents: 13448
diff changeset
2896 return 0
13366
c756e9166417 bookmarks: merge incoming/outgoing into core
Matt Mackall <mpm@selenic.com>
parents: 13344
diff changeset
2897 ui.status(_('comparing with %s\n') % url.hidepassword(dest))
c756e9166417 bookmarks: merge incoming/outgoing into core
Matt Mackall <mpm@selenic.com>
parents: 13344
diff changeset
2898 return bookmarks.diff(ui, other, repo)
c756e9166417 bookmarks: merge incoming/outgoing into core
Matt Mackall <mpm@selenic.com>
parents: 13344
diff changeset
2899
12272
42ecd56399d7 outgoing: recurse into subrepositories with --subrepos/-S flag
Martin Geisler <mg@lazybytes.net>
parents: 12271
diff changeset
2900 ret = hg.outgoing(ui, repo, dest, opts)
42ecd56399d7 outgoing: recurse into subrepositories with --subrepos/-S flag
Martin Geisler <mg@lazybytes.net>
parents: 12271
diff changeset
2901 return ret
920
270756aa29d5 Add hg outgoing command
mpm@selenic.com
parents: 918
diff changeset
2902
3658
d12c8668b102 remove legacy hg parents REV syntax
Matt Mackall <mpm@selenic.com>
parents: 3657
diff changeset
2903 def parents(ui, repo, file_=None, **opts):
8026
683d8ebcf434 expand "dir" to "directory" in help texts
Martin Geisler <mg@lazybytes.net>
parents: 8021
diff changeset
2904 """show the parents of the working directory or revision
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
2905
8004
d5b1b846f277 commands: word-wrap help texts at 70 characters
Martin Geisler <mg@daimi.au.dk>
parents: 7983
diff changeset
2906 Print the working directory's parent revisions. If a revision is
8033
aeb4a5c7a28e commands: consistently write switches as -a/--abc
Martin Geisler <mg@lazybytes.net>
parents: 8032
diff changeset
2907 given via -r/--rev, the parent of that revision will be printed.
8779
708938509732 Improve English for help text of many core hg commands.
timeless <timeless@gmail.com>
parents: 8778
diff changeset
2908 If a file argument is given, the revision in which the file was
708938509732 Improve English for help text of many core hg commands.
timeless <timeless@gmail.com>
parents: 8778
diff changeset
2909 last changed (before the working directory revision or the
708938509732 Improve English for help text of many core hg commands.
timeless <timeless@gmail.com>
parents: 8778
diff changeset
2910 argument to --rev if given) is printed.
11177
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
2911
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
2912 Returns 0 on success.
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
2913 """
12925
6eab8f0df2ca commands: add revset support to most commands
Matt Mackall <mpm@selenic.com>
parents: 12918
diff changeset
2914
6eab8f0df2ca commands: add revset support to most commands
Matt Mackall <mpm@selenic.com>
parents: 12918
diff changeset
2915 ctx = cmdutil.revsingle(repo, opts.get('rev'), None)
5298
cba2a689117d parents: make it match the doc when called on a file
Patrick Mezard <pmezard@gmail.com>
parents: 5230
diff changeset
2916
4586
1fcc076fcb17 Make parents with a file but not a revision use working directory revision.
Brendan Cully <brendan@kublai.com>
parents: 4451
diff changeset
2917 if file_:
6582
5acbdd3941c4 walk: remove remaining users of cmdutils.matchpats
Matt Mackall <mpm@selenic.com>
parents: 6579
diff changeset
2918 m = cmdutil.match(repo, (file_,), opts)
5acbdd3941c4 walk: remove remaining users of cmdutils.matchpats
Matt Mackall <mpm@selenic.com>
parents: 6579
diff changeset
2919 if m.anypats() or len(m.files()) != 1:
8761
0289f384e1e5 Generally replace "file name" with "filename" in help and comments.
timeless <timeless@gmail.com>
parents: 8760
diff changeset
2920 raise util.Abort(_('can only specify an explicit filename'))
6582
5acbdd3941c4 walk: remove remaining users of cmdutils.matchpats
Matt Mackall <mpm@selenic.com>
parents: 6579
diff changeset
2921 file_ = m.files()[0]
5298
cba2a689117d parents: make it match the doc when called on a file
Patrick Mezard <pmezard@gmail.com>
parents: 5230
diff changeset
2922 filenodes = []
cba2a689117d parents: make it match the doc when called on a file
Patrick Mezard <pmezard@gmail.com>
parents: 5230
diff changeset
2923 for cp in ctx.parents():
cba2a689117d parents: make it match the doc when called on a file
Patrick Mezard <pmezard@gmail.com>
parents: 5230
diff changeset
2924 if not cp:
cba2a689117d parents: make it match the doc when called on a file
Patrick Mezard <pmezard@gmail.com>
parents: 5230
diff changeset
2925 continue
cba2a689117d parents: make it match the doc when called on a file
Patrick Mezard <pmezard@gmail.com>
parents: 5230
diff changeset
2926 try:
cba2a689117d parents: make it match the doc when called on a file
Patrick Mezard <pmezard@gmail.com>
parents: 5230
diff changeset
2927 filenodes.append(cp.filenode(file_))
7633
08cabecfa8a8 errors: move revlog errors
Matt Mackall <mpm@selenic.com>
parents: 7632
diff changeset
2928 except error.LookupError:
5298
cba2a689117d parents: make it match the doc when called on a file
Patrick Mezard <pmezard@gmail.com>
parents: 5230
diff changeset
2929 pass
cba2a689117d parents: make it match the doc when called on a file
Patrick Mezard <pmezard@gmail.com>
parents: 5230
diff changeset
2930 if not filenodes:
cba2a689117d parents: make it match the doc when called on a file
Patrick Mezard <pmezard@gmail.com>
parents: 5230
diff changeset
2931 raise util.Abort(_("'%s' not found in manifest!") % file_)
cba2a689117d parents: make it match the doc when called on a file
Patrick Mezard <pmezard@gmail.com>
parents: 5230
diff changeset
2932 fl = repo.file(file_)
7361
9fe97eea5510 linkrev: take a revision number rather than a hash
Matt Mackall <mpm@selenic.com>
parents: 7308
diff changeset
2933 p = [repo.lookup(fl.linkrev(fl.rev(fn))) for fn in filenodes]
255
20a44c82795f hg help: use docstrings only
mpm@selenic.com
parents: 254
diff changeset
2934 else:
5298
cba2a689117d parents: make it match the doc when called on a file
Patrick Mezard <pmezard@gmail.com>
parents: 5230
diff changeset
2935 p = [cp.node() for cp in ctx.parents()]
255
20a44c82795f hg help: use docstrings only
mpm@selenic.com
parents: 254
diff changeset
2936
3643
b4ad640a3bcf templates: move changeset templating bits to cmdutils
Matt Mackall <mpm@selenic.com>
parents: 3631
diff changeset
2937 displayer = cmdutil.show_changeset(ui, repo, opts)
255
20a44c82795f hg help: use docstrings only
mpm@selenic.com
parents: 254
diff changeset
2938 for n in p:
1092
0a02315976ff commands: use node functions directly
mpm@selenic.com
parents: 1090
diff changeset
2939 if n != nullid:
7743
ec9b726a9428 commands: fix paths command docstring indention
Martin Geisler <mg@daimi.au.dk>
parents: 7739
diff changeset
2940 displayer.show(repo[n])
10152
56284451a22c Added support for templatevar "footer" to cmdutil.py
Robert Bachmann <rbachm@gmail.com>
parents: 10111
diff changeset
2941 displayer.close()
255
20a44c82795f hg help: use docstrings only
mpm@selenic.com
parents: 254
diff changeset
2942
1858
9fab6e903bae Make hg paths and hg debugconfig work with -R/--repository option.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 1857
diff changeset
2943 def paths(ui, repo, search=None):
7691
bcdc2fe3fd07 Clarified 'hg paths' command help
Bill Barry <after.fallout@gmail.com>
parents: 7684
diff changeset
2944 """show aliases for remote repositories
bcdc2fe3fd07 Clarified 'hg paths' command help
Bill Barry <after.fallout@gmail.com>
parents: 7684
diff changeset
2945
8004
d5b1b846f277 commands: word-wrap help texts at 70 characters
Martin Geisler <mg@daimi.au.dk>
parents: 7983
diff changeset
2946 Show definition of symbolic path name NAME. If no name is given,
8779
708938509732 Improve English for help text of many core hg commands.
timeless <timeless@gmail.com>
parents: 8778
diff changeset
2947 show definition of all available names.
7743
ec9b726a9428 commands: fix paths command docstring indention
Martin Geisler <mg@daimi.au.dk>
parents: 7739
diff changeset
2948
12083
ebfc46929f3e help: refer to user configuration file more consistently
Brodie Rao <brodie@bitheap.org>
parents: 12067
diff changeset
2949 Path names are defined in the [paths] section of your
ebfc46929f3e help: refer to user configuration file more consistently
Brodie Rao <brodie@bitheap.org>
parents: 12067
diff changeset
2950 configuration file and in ``/etc/mercurial/hgrc``. If run inside a
11009
4d3288197717 commands: better markup in "hg help paths"
Martin Geisler <mg@lazybytes.net>
parents: 11008
diff changeset
2951 repository, ``.hg/hgrc`` is used, too.
7693
e040f9d6b2f3 consolidated url help into urls help topic and added information about path aliases
Bill Barry <after.fallout@gmail.com>
parents: 7691
diff changeset
2952
11007
a0102da324ab commands: revised documentation of 'default' and 'default-push'
Faheem Mitha <faheem@email.unc.edu>
parents: 10948
diff changeset
2953 The path names ``default`` and ``default-push`` have a special
a0102da324ab commands: revised documentation of 'default' and 'default-push'
Faheem Mitha <faheem@email.unc.edu>
parents: 10948
diff changeset
2954 meaning. When performing a push or pull operation, they are used
a0102da324ab commands: revised documentation of 'default' and 'default-push'
Faheem Mitha <faheem@email.unc.edu>
parents: 10948
diff changeset
2955 as fallbacks if no location is specified on the command-line.
a0102da324ab commands: revised documentation of 'default' and 'default-push'
Faheem Mitha <faheem@email.unc.edu>
parents: 10948
diff changeset
2956 When ``default-push`` is set, it will be used for push and
a0102da324ab commands: revised documentation of 'default' and 'default-push'
Faheem Mitha <faheem@email.unc.edu>
parents: 10948
diff changeset
2957 ``default`` will be used for pull; otherwise ``default`` is used
a0102da324ab commands: revised documentation of 'default' and 'default-push'
Faheem Mitha <faheem@email.unc.edu>
parents: 10948
diff changeset
2958 as the fallback for both. When cloning a repository, the clone
a0102da324ab commands: revised documentation of 'default' and 'default-push'
Faheem Mitha <faheem@email.unc.edu>
parents: 10948
diff changeset
2959 source is written as ``default`` in ``.hg/hgrc``. Note that
11009
4d3288197717 commands: better markup in "hg help paths"
Martin Geisler <mg@lazybytes.net>
parents: 11008
diff changeset
2960 ``default`` and ``default-push`` apply to all inbound (e.g.
4d3288197717 commands: better markup in "hg help paths"
Martin Geisler <mg@lazybytes.net>
parents: 11008
diff changeset
2961 :hg:`incoming`) and outbound (e.g. :hg:`outgoing`, :hg:`email` and
4d3288197717 commands: better markup in "hg help paths"
Martin Geisler <mg@lazybytes.net>
parents: 11008
diff changeset
2962 :hg:`bundle`) operations.
10933
e3396b218e10 Document 'default' and 'default-push' in paths docstring
Faheem Mitha <faheem@email.unc.edu>
parents: 10645
diff changeset
2963
10973
49a07f441496 Use hg role in help strings
Martin Geisler <mg@aragost.com>
parents: 10963
diff changeset
2964 See :hg:`help urls` for more information.
11507
35e2d453cf0d commands: document return values of add and paths commands
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11488
diff changeset
2965
35e2d453cf0d commands: document return values of add and paths commands
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11488
diff changeset
2966 Returns 0 on success.
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
2967 """
779
b3c7cb74d325 Add paths command
TK Soh <teekaysoh@yahoo.com>
parents: 778
diff changeset
2968 if search:
b3c7cb74d325 Add paths command
TK Soh <teekaysoh@yahoo.com>
parents: 778
diff changeset
2969 for name, path in ui.configitems("paths"):
b3c7cb74d325 Add paths command
TK Soh <teekaysoh@yahoo.com>
parents: 778
diff changeset
2970 if name == search:
7270
2db33c1a5654 factor out the url handling from httprepo
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 7236
diff changeset
2971 ui.write("%s\n" % url.hidepassword(path))
779
b3c7cb74d325 Add paths command
TK Soh <teekaysoh@yahoo.com>
parents: 778
diff changeset
2972 return
1402
9d2c2e6b32b5 i18n part2: use '_' for all strings who are part of the user interface
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1400
diff changeset
2973 ui.warn(_("not found!\n"))
779
b3c7cb74d325 Add paths command
TK Soh <teekaysoh@yahoo.com>
parents: 778
diff changeset
2974 return 1
b3c7cb74d325 Add paths command
TK Soh <teekaysoh@yahoo.com>
parents: 778
diff changeset
2975 else:
b3c7cb74d325 Add paths command
TK Soh <teekaysoh@yahoo.com>
parents: 778
diff changeset
2976 for name, path in ui.configitems("paths"):
7270
2db33c1a5654 factor out the url handling from httprepo
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 7236
diff changeset
2977 ui.write("%s = %s\n" % (name, url.hidepassword(path)))
779
b3c7cb74d325 Add paths command
TK Soh <teekaysoh@yahoo.com>
parents: 778
diff changeset
2978
5224
20817af258d8 pull -u: if "url#rev" was given, update to rev
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 5222
diff changeset
2979 def postincoming(ui, repo, modheads, optupdate, checkout):
2019
ced2d3620f95 add merge command. means same thing as "update -m".
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 1996
diff changeset
2980 if modheads == 0:
ced2d3620f95 add merge command. means same thing as "update -m".
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 1996
diff changeset
2981 return
ced2d3620f95 add merge command. means same thing as "update -m".
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 1996
diff changeset
2982 if optupdate:
7372
e17dbf140035 pull: update to branch tip if there is only one head on the current branch
Benoit Allard <benoit@aeteurope.nl>
parents: 7369
diff changeset
2983 if (modheads <= 1 or len(repo.branchheads()) == 1) or checkout:
5224
20817af258d8 pull -u: if "url#rev" was given, update to rev
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 5222
diff changeset
2984 return hg.update(repo, checkout)
2019
ced2d3620f95 add merge command. means same thing as "update -m".
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 1996
diff changeset
2985 else:
ced2d3620f95 add merge command. means same thing as "update -m".
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 1996
diff changeset
2986 ui.status(_("not updating, since new heads added\n"))
ced2d3620f95 add merge command. means same thing as "update -m".
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 1996
diff changeset
2987 if modheads > 1:
ced2d3620f95 add merge command. means same thing as "update -m".
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 1996
diff changeset
2988 ui.status(_("(run 'hg heads' to see heads, 'hg merge' to merge)\n"))
ced2d3620f95 add merge command. means same thing as "update -m".
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 1996
diff changeset
2989 else:
ced2d3620f95 add merge command. means same thing as "update -m".
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 1996
diff changeset
2990 ui.status(_("(run 'hg update' to get a working copy)\n"))
2029
d436b21b20dc rewrite revert command. fix issues 93, 123, 147.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2022
diff changeset
2991
404
a1ecef497721 [PATCH] Unintuive use
mpm@selenic.com
parents: 403
diff changeset
2992 def pull(ui, repo, source="default", **opts):
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
2993 """pull changes from the specified source
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
2994
8779
708938509732 Improve English for help text of many core hg commands.
timeless <timeless@gmail.com>
parents: 8778
diff changeset
2995 Pull changes from a remote repository to a local one.
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
2996
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
2997 This finds all changes from the repository at the specified path
8779
708938509732 Improve English for help text of many core hg commands.
timeless <timeless@gmail.com>
parents: 8778
diff changeset
2998 or URL and adds them to a local repository (the current one unless
708938509732 Improve English for help text of many core hg commands.
timeless <timeless@gmail.com>
parents: 8778
diff changeset
2999 -R is specified). By default, this does not update the copy of the
708938509732 Improve English for help text of many core hg commands.
timeless <timeless@gmail.com>
parents: 8778
diff changeset
3000 project in the working directory.
708938509732 Improve English for help text of many core hg commands.
timeless <timeless@gmail.com>
parents: 8778
diff changeset
3001
11193
687c7d395f20 Use our custom hg reStructuredText role some more
Martin Geisler <mg@aragost.com>
parents: 11185
diff changeset
3002 Use :hg:`incoming` if you want to see what would have been added
687c7d395f20 Use our custom hg reStructuredText role some more
Martin Geisler <mg@aragost.com>
parents: 11185
diff changeset
3003 by a pull at the time you issued this command. If you then decide
687c7d395f20 Use our custom hg reStructuredText role some more
Martin Geisler <mg@aragost.com>
parents: 11185
diff changeset
3004 to add those changes to the repository, you should use :hg:`pull
687c7d395f20 Use our custom hg reStructuredText role some more
Martin Geisler <mg@aragost.com>
parents: 11185
diff changeset
3005 -r X` where ``X`` is the last changeset listed by :hg:`incoming`.
7980
3d8252430e17 commands: make pull help point to the incoming command
Martin Geisler <mg@daimi.au.dk>
parents: 7979
diff changeset
3006
7693
e040f9d6b2f3 consolidated url help into urls help topic and added information about path aliases
Bill Barry <after.fallout@gmail.com>
parents: 7691
diff changeset
3007 If SOURCE is omitted, the 'default' path will be used.
10973
49a07f441496 Use hg role in help strings
Martin Geisler <mg@aragost.com>
parents: 10963
diff changeset
3008 See :hg:`help urls` for more information.
11177
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
3009
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
3010 Returns 0 on success, 1 if an update had unresolved files.
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
3011 """
10379
a78bfaf988e1 add -b/--branch option to clone, bundle, incoming, outgoing, pull, push
Sune Foldager <cryo@cyanite.org>
parents: 10376
diff changeset
3012 source, branches = hg.parseurl(ui.expandpath(source), opts.get('branch'))
11273
d1908cb95a82 remoteui: move from cmdutil to hg
Matt Mackall <mpm@selenic.com>
parents: 11219
diff changeset
3013 other = hg.repository(hg.remoteui(repo, opts), source)
7270
2db33c1a5654 factor out the url handling from httprepo
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 7236
diff changeset
3014 ui.status(_('pulling from %s\n') % url.hidepassword(source))
10365
d757bc0c7865 interpret repo#name url syntax as branch instead of revision
Sune Foldager <cryo@cyanite.org>
parents: 10364
diff changeset
3015 revs, checkout = hg.addbranchrevs(repo, other, branches, opts.get('rev'))
13368
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
3016
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
3017 if opts.get('bookmark'):
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
3018 if not revs:
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
3019 revs = []
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
3020 rb = other.listkeys('bookmarks')
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
3021 for b in opts['bookmark']:
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
3022 if b not in rb:
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
3023 raise util.Abort(_('remote bookmark %s not found!') % b)
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
3024 revs.append(rb[b])
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
3025
4478
b2b55acbacdd Add support for url#id syntax
Matt Mackall <mpm@selenic.com>
parents: 4474
diff changeset
3026 if revs:
5259
65dc707606ed Push capability checking into protocol-level code.
Bryan O'Sullivan <bos@serpentine.com>
parents: 5248
diff changeset
3027 try:
4478
b2b55acbacdd Add support for url#id syntax
Matt Mackall <mpm@selenic.com>
parents: 4474
diff changeset
3028 revs = [other.lookup(rev) for rev in revs]
7637
1d54e2f6c0b7 error: move repo errors
Matt Mackall <mpm@selenic.com>
parents: 7633
diff changeset
3029 except error.CapabilityError:
12128
090dc5eef746 pull: lowercase error message
Martin Geisler <mg@lazybytes.net>
parents: 12083
diff changeset
3030 err = _("other repository doesn't support revision lookup, "
7637
1d54e2f6c0b7 error: move repo errors
Matt Mackall <mpm@selenic.com>
parents: 7633
diff changeset
3031 "so a rev cannot be specified.")
1d54e2f6c0b7 error: move repo errors
Matt Mackall <mpm@selenic.com>
parents: 7633
diff changeset
3032 raise util.Abort(err)
4478
b2b55acbacdd Add support for url#id syntax
Matt Mackall <mpm@selenic.com>
parents: 4474
diff changeset
3033
7131
23bd7383891c commands: optional options where possible
Alexander Solovyov <piranha@piranha.org.ua>
parents: 7126
diff changeset
3034 modheads = repo.pull(other, heads=revs, force=opts.get('force'))
13646
31eac42d9123 bookmarks: separate bookmarks update code from localrepo's pull.
David Soria Parra <dsp@php.net>
parents: 13644
diff changeset
3035 bookmarks.updatefromremote(ui, repo, other)
9645
02f40b2ece3f commands: use rev from remote repo when updating as part of a pull
timeless@mozdev.org
parents: 9644
diff changeset
3036 if checkout:
02f40b2ece3f commands: use rev from remote repo when updating as part of a pull
timeless@mozdev.org
parents: 9644
diff changeset
3037 checkout = str(repo.changelog.rev(other.lookup(checkout)))
12852
5dbff89cf107 subrepo: propagate non-default pull/push path to relative subrepos (issue1852)
Mads Kiilerich <mads@kiilerich.com>
parents: 12831
diff changeset
3038 repo._subtoppath = source
5dbff89cf107 subrepo: propagate non-default pull/push path to relative subrepos (issue1852)
Mads Kiilerich <mads@kiilerich.com>
parents: 12831
diff changeset
3039 try:
13368
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
3040 ret = postincoming(ui, repo, modheads, opts.get('update'), checkout)
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
3041
12852
5dbff89cf107 subrepo: propagate non-default pull/push path to relative subrepos (issue1852)
Mads Kiilerich <mads@kiilerich.com>
parents: 12831
diff changeset
3042 finally:
5dbff89cf107 subrepo: propagate non-default pull/push path to relative subrepos (issue1852)
Mads Kiilerich <mads@kiilerich.com>
parents: 12831
diff changeset
3043 del repo._subtoppath
246
96cde50a746f Migrate rawcommit, import, export, history, and merge
mpm@selenic.com
parents: 245
diff changeset
3044
13368
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
3045 # update specified bookmarks
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
3046 if opts.get('bookmark'):
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
3047 for b in opts['bookmark']:
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
3048 # explicit pull overrides local bookmark if any
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
3049 ui.status(_("importing bookmark %s\n") % b)
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
3050 repo._bookmarks[b] = repo[rb[b]].node()
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
3051 bookmarks.write(repo)
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
3052
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
3053 return ret
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
3054
2494
73ac95671788 push, outgoing, bundle: fall back to "default" if "default-push" not defined
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2493
diff changeset
3055 def push(ui, repo, dest=None, **opts):
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
3056 """push changes to the specified destination
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
3057
11217
1b8aa9ffa7dc commands: updates to push docstring.
Faheem Mitha <faheem@email.unc.edu>
parents: 11103
diff changeset
3058 Push changesets from the local repository to the specified
1b8aa9ffa7dc commands: updates to push docstring.
Faheem Mitha <faheem@email.unc.edu>
parents: 11103
diff changeset
3059 destination.
1b8aa9ffa7dc commands: updates to push docstring.
Faheem Mitha <faheem@email.unc.edu>
parents: 11103
diff changeset
3060
1b8aa9ffa7dc commands: updates to push docstring.
Faheem Mitha <faheem@email.unc.edu>
parents: 11103
diff changeset
3061 This operation is symmetrical to pull: it is identical to a pull
1b8aa9ffa7dc commands: updates to push docstring.
Faheem Mitha <faheem@email.unc.edu>
parents: 11103
diff changeset
3062 in the destination repository from the current one.
1b8aa9ffa7dc commands: updates to push docstring.
Faheem Mitha <faheem@email.unc.edu>
parents: 11103
diff changeset
3063
1b8aa9ffa7dc commands: updates to push docstring.
Faheem Mitha <faheem@email.unc.edu>
parents: 11103
diff changeset
3064 By default, push will not allow creation of new heads at the
1b8aa9ffa7dc commands: updates to push docstring.
Faheem Mitha <faheem@email.unc.edu>
parents: 11103
diff changeset
3065 destination, since multiple heads would make it unclear which head
1b8aa9ffa7dc commands: updates to push docstring.
Faheem Mitha <faheem@email.unc.edu>
parents: 11103
diff changeset
3066 to use. In this situation, it is recommended to pull and merge
1b8aa9ffa7dc commands: updates to push docstring.
Faheem Mitha <faheem@email.unc.edu>
parents: 11103
diff changeset
3067 before pushing.
1b8aa9ffa7dc commands: updates to push docstring.
Faheem Mitha <faheem@email.unc.edu>
parents: 11103
diff changeset
3068
11219
39a7f69a0a9a commands: document --new-branch flag for push
Martin Geisler <mg@aragost.com>
parents: 11218
diff changeset
3069 Use --new-branch if you want to allow push to create a new named
39a7f69a0a9a commands: document --new-branch flag for push
Martin Geisler <mg@aragost.com>
parents: 11218
diff changeset
3070 branch that is not present at the destination. This allows you to
39a7f69a0a9a commands: document --new-branch flag for push
Martin Geisler <mg@aragost.com>
parents: 11218
diff changeset
3071 only create a new branch without forcing other changes.
39a7f69a0a9a commands: document --new-branch flag for push
Martin Geisler <mg@aragost.com>
parents: 11218
diff changeset
3072
11217
1b8aa9ffa7dc commands: updates to push docstring.
Faheem Mitha <faheem@email.unc.edu>
parents: 11103
diff changeset
3073 Use -f/--force to override the default behavior and push all
1b8aa9ffa7dc commands: updates to push docstring.
Faheem Mitha <faheem@email.unc.edu>
parents: 11103
diff changeset
3074 changesets on all branches.
1b8aa9ffa7dc commands: updates to push docstring.
Faheem Mitha <faheem@email.unc.edu>
parents: 11103
diff changeset
3075
1b8aa9ffa7dc commands: updates to push docstring.
Faheem Mitha <faheem@email.unc.edu>
parents: 11103
diff changeset
3076 If -r/--rev is used, the specified revision and all its ancestors
1b8aa9ffa7dc commands: updates to push docstring.
Faheem Mitha <faheem@email.unc.edu>
parents: 11103
diff changeset
3077 will be pushed to the remote repository.
7693
e040f9d6b2f3 consolidated url help into urls help topic and added information about path aliases
Bill Barry <after.fallout@gmail.com>
parents: 7691
diff changeset
3078
10973
49a07f441496 Use hg role in help strings
Martin Geisler <mg@aragost.com>
parents: 10963
diff changeset
3079 Please see :hg:`help urls` for important details about ``ssh://``
8004
d5b1b846f277 commands: word-wrap help texts at 70 characters
Martin Geisler <mg@daimi.au.dk>
parents: 7983
diff changeset
3080 URLs. If DESTINATION is omitted, a default path will be used.
11177
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
3081
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
3082 Returns 0 if push was successful, 1 if nothing to push.
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
3083 """
13368
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
3084
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
3085 if opts.get('bookmark'):
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
3086 for b in opts['bookmark']:
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
3087 # translate -B options to -r so changesets get pushed
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
3088 if b in repo._bookmarks:
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
3089 opts.setdefault('rev', []).append(b)
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
3090 else:
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
3091 # if we try to push a deleted bookmark, translate it to null
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
3092 # this lets simultaneous -r, -b options continue working
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
3093 opts.setdefault('rev', []).append("null")
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
3094
10365
d757bc0c7865 interpret repo#name url syntax as branch instead of revision
Sune Foldager <cryo@cyanite.org>
parents: 10364
diff changeset
3095 dest = ui.expandpath(dest or 'default-push', dest or 'default')
10379
a78bfaf988e1 add -b/--branch option to clone, bundle, incoming, outgoing, pull, push
Sune Foldager <cryo@cyanite.org>
parents: 10376
diff changeset
3096 dest, branches = hg.parseurl(dest, opts.get('branch'))
13693
adf3c4401c5d push/outgoing: print remote target path even if there's an error (issue2561)
Miloš Hadžić <milos.hadzic@gmail.com>
parents: 13620
diff changeset
3097 ui.status(_('pushing to %s\n') % url.hidepassword(dest))
10365
d757bc0c7865 interpret repo#name url syntax as branch instead of revision
Sune Foldager <cryo@cyanite.org>
parents: 10364
diff changeset
3098 revs, checkout = hg.addbranchrevs(repo, repo, branches, opts.get('rev'))
11273
d1908cb95a82 remoteui: move from cmdutil to hg
Matt Mackall <mpm@selenic.com>
parents: 11219
diff changeset
3099 other = hg.repository(hg.remoteui(repo, opts), dest)
4478
b2b55acbacdd Add support for url#id syntax
Matt Mackall <mpm@selenic.com>
parents: 4474
diff changeset
3100 if revs:
b2b55acbacdd Add support for url#id syntax
Matt Mackall <mpm@selenic.com>
parents: 4474
diff changeset
3101 revs = [repo.lookup(rev) for rev in revs]
8815
e87b0fc4750b subrepo: basic push support
Matt Mackall <mpm@selenic.com>
parents: 8812
diff changeset
3102
12852
5dbff89cf107 subrepo: propagate non-default pull/push path to relative subrepos (issue1852)
Mads Kiilerich <mads@kiilerich.com>
parents: 12831
diff changeset
3103 repo._subtoppath = dest
5dbff89cf107 subrepo: propagate non-default pull/push path to relative subrepos (issue1852)
Mads Kiilerich <mads@kiilerich.com>
parents: 12831
diff changeset
3104 try:
5dbff89cf107 subrepo: propagate non-default pull/push path to relative subrepos (issue1852)
Mads Kiilerich <mads@kiilerich.com>
parents: 12831
diff changeset
3105 # push subrepos depth-first for coherent ordering
5dbff89cf107 subrepo: propagate non-default pull/push path to relative subrepos (issue1852)
Mads Kiilerich <mads@kiilerich.com>
parents: 12831
diff changeset
3106 c = repo['']
5dbff89cf107 subrepo: propagate non-default pull/push path to relative subrepos (issue1852)
Mads Kiilerich <mads@kiilerich.com>
parents: 12831
diff changeset
3107 subs = c.substate # only repos that are committed
5dbff89cf107 subrepo: propagate non-default pull/push path to relative subrepos (issue1852)
Mads Kiilerich <mads@kiilerich.com>
parents: 12831
diff changeset
3108 for s in sorted(subs):
5dbff89cf107 subrepo: propagate non-default pull/push path to relative subrepos (issue1852)
Mads Kiilerich <mads@kiilerich.com>
parents: 12831
diff changeset
3109 if not c.sub(s).push(opts.get('force')):
5dbff89cf107 subrepo: propagate non-default pull/push path to relative subrepos (issue1852)
Mads Kiilerich <mads@kiilerich.com>
parents: 12831
diff changeset
3110 return False
5dbff89cf107 subrepo: propagate non-default pull/push path to relative subrepos (issue1852)
Mads Kiilerich <mads@kiilerich.com>
parents: 12831
diff changeset
3111 finally:
5dbff89cf107 subrepo: propagate non-default pull/push path to relative subrepos (issue1852)
Mads Kiilerich <mads@kiilerich.com>
parents: 12831
diff changeset
3112 del repo._subtoppath
13368
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
3113 result = repo.push(other, opts.get('force'), revs=revs,
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
3114 newbranch=opts.get('new_branch'))
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
3115
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
3116 result = (result == 0)
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
3117
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
3118 if opts.get('bookmark'):
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
3119 rb = other.listkeys('bookmarks')
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
3120 for b in opts['bookmark']:
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
3121 # explicit push overrides remote bookmark if any
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
3122 if b in repo._bookmarks:
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
3123 ui.status(_("exporting bookmark %s\n") % b)
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
3124 new = repo[b].hex()
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
3125 elif b in rb:
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
3126 ui.status(_("deleting remote bookmark %s\n") % b)
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
3127 new = '' # delete
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
3128 else:
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
3129 ui.warn(_('bookmark %s does not exist on the local '
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
3130 'or remote repository!\n') % b)
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
3131 return 2
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
3132 old = rb.get(b, '')
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
3133 r = other.pushkey('bookmarks', b, old, new)
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
3134 if not r:
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
3135 ui.warn(_('updating bookmark %s failed!\n') % b)
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
3136 if not result:
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
3137 result = 2
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
3138
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
3139 return result
319
9ab17e83bce3 stopgap hg push support
mpm@selenic.com
parents: 317
diff changeset
3140
245
fef0f8e041aa big heap of command clean-up work
mpm@selenic.com
parents: 241
diff changeset
3141 def recover(ui, repo):
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
3142 """roll back an interrupted transaction
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
3143
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
3144 Recover from an interrupted commit or pull.
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
3145
8004
d5b1b846f277 commands: word-wrap help texts at 70 characters
Martin Geisler <mg@daimi.au.dk>
parents: 7983
diff changeset
3146 This command tries to fix the repository status after an
d5b1b846f277 commands: word-wrap help texts at 70 characters
Martin Geisler <mg@daimi.au.dk>
parents: 7983
diff changeset
3147 interrupted operation. It should only be necessary when Mercurial
d5b1b846f277 commands: word-wrap help texts at 70 characters
Martin Geisler <mg@daimi.au.dk>
parents: 7983
diff changeset
3148 suggests it.
11177
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
3149
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
3150 Returns 0 if successful, 1 if nothing to recover or verify fails.
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
3151 """
1516
0b1b029b4de3 Automatically run "verify" whenever we run "recover"
Matt Mackall <mpm@selenic.com>
parents: 1514
diff changeset
3152 if repo.recover():
2778
fdc232d8a193 Move repo.verify
Matt Mackall <mpm@selenic.com>
parents: 2776
diff changeset
3153 return hg.verify(repo)
2057
fef2d653beaf Never exit directly from commands.dispatch(), but pass return code to caller.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 2056
diff changeset
3154 return 1
245
fef0f8e041aa big heap of command clean-up work
mpm@selenic.com
parents: 241
diff changeset
3155
2179
520dd3d28e9b add --after option to remove command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2175
diff changeset
3156 def remove(ui, repo, *pats, **opts):
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
3157 """remove the specified files on the next commit
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
3158
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
3159 Schedule the indicated files for removal from the repository.
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
3160
8004
d5b1b846f277 commands: word-wrap help texts at 70 characters
Martin Geisler <mg@daimi.au.dk>
parents: 7983
diff changeset
3161 This only removes files from the current branch, not from the
8033
aeb4a5c7a28e commands: consistently write switches as -a/--abc
Martin Geisler <mg@lazybytes.net>
parents: 8032
diff changeset
3162 entire project history. -A/--after can be used to remove only
aeb4a5c7a28e commands: consistently write switches as -a/--abc
Martin Geisler <mg@lazybytes.net>
parents: 8032
diff changeset
3163 files that have already been deleted, -f/--force can be used to
aeb4a5c7a28e commands: consistently write switches as -a/--abc
Martin Geisler <mg@lazybytes.net>
parents: 8032
diff changeset
3164 force deletion, and -Af can be used to remove files from the next
8779
708938509732 Improve English for help text of many core hg commands.
timeless <timeless@gmail.com>
parents: 8778
diff changeset
3165 revision without deleting them from the working directory.
8004
d5b1b846f277 commands: word-wrap help texts at 70 characters
Martin Geisler <mg@daimi.au.dk>
parents: 7983
diff changeset
3166
d5b1b846f277 commands: word-wrap help texts at 70 characters
Martin Geisler <mg@daimi.au.dk>
parents: 7983
diff changeset
3167 The following table details the behavior of remove for different
d5b1b846f277 commands: word-wrap help texts at 70 characters
Martin Geisler <mg@daimi.au.dk>
parents: 7983
diff changeset
3168 file states (columns) and option combinations (rows). The file
9249
16f4cfc69e4f commands: wrap docstrings at 70 characters
Martin Geisler <mg@lazybytes.net>
parents: 9219
diff changeset
3169 states are Added [A], Clean [C], Modified [M] and Missing [!] (as
11193
687c7d395f20 Use our custom hg reStructuredText role some more
Martin Geisler <mg@aragost.com>
parents: 11185
diff changeset
3170 reported by :hg:`status`). The actions are Warn, Remove (from
687c7d395f20 Use our custom hg reStructuredText role some more
Martin Geisler <mg@aragost.com>
parents: 11185
diff changeset
3171 branch) and Delete (from disk)::
9157
9261667e9b82 commands: use minirst parser when displaying help
Martin Geisler <mg@lazybytes.net>
parents: 9142
diff changeset
3172
9261667e9b82 commands: use minirst parser when displaying help
Martin Geisler <mg@lazybytes.net>
parents: 9142
diff changeset
3173 A C M !
9261667e9b82 commands: use minirst parser when displaying help
Martin Geisler <mg@lazybytes.net>
parents: 9142
diff changeset
3174 none W RD W R
9261667e9b82 commands: use minirst parser when displaying help
Martin Geisler <mg@lazybytes.net>
parents: 9142
diff changeset
3175 -f R RD RD R
9261667e9b82 commands: use minirst parser when displaying help
Martin Geisler <mg@lazybytes.net>
parents: 9142
diff changeset
3176 -A W W W R
9261667e9b82 commands: use minirst parser when displaying help
Martin Geisler <mg@lazybytes.net>
parents: 9142
diff changeset
3177 -Af R R R R
2309
b2f37c7026ca remove: rewrite to be ~400x faster, bit more friendly
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2301
diff changeset
3178
3829
531c116b2028 Add doc notes about revert and hg status vs diff
Matt Mackall <mpm@selenic.com>
parents: 3822
diff changeset
3179 This command schedules the files to be removed at the next commit.
11193
687c7d395f20 Use our custom hg reStructuredText role some more
Martin Geisler <mg@aragost.com>
parents: 11185
diff changeset
3180 To undo a remove before that, see :hg:`revert`.
11177
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
3181
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
3182 Returns 0 on success, 1 if any warnings encountered.
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
3183 """
6346
8e3b651382f5 improved semantics for remove (issue438)
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 6336
diff changeset
3184
11177
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
3185 ret = 0
6346
8e3b651382f5 improved semantics for remove (issue438)
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 6336
diff changeset
3186 after, force = opts.get('after'), opts.get('force')
8e3b651382f5 improved semantics for remove (issue438)
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 6336
diff changeset
3187 if not pats and not after:
2179
520dd3d28e9b add --after option to remove command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2175
diff changeset
3188 raise util.Abort(_('no files specified'))
6346
8e3b651382f5 improved semantics for remove (issue438)
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 6336
diff changeset
3189
6582
5acbdd3941c4 walk: remove remaining users of cmdutils.matchpats
Matt Mackall <mpm@selenic.com>
parents: 6579
diff changeset
3190 m = cmdutil.match(repo, pats, opts)
6761
cb981fc955fb remove: work directly off status
Matt Mackall <mpm@selenic.com>
parents: 6760
diff changeset
3191 s = repo.status(match=m, clean=True)
cb981fc955fb remove: work directly off status
Matt Mackall <mpm@selenic.com>
parents: 6760
diff changeset
3192 modified, added, deleted, clean = s[0], s[1], s[3], s[6]
cb981fc955fb remove: work directly off status
Matt Mackall <mpm@selenic.com>
parents: 6760
diff changeset
3193
8533
6062c6362b2e remove: warn if unversionned files are specified (issue1454)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 8464
diff changeset
3194 for f in m.files():
6062c6362b2e remove: warn if unversionned files are specified (issue1454)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 8464
diff changeset
3195 if f not in repo.dirstate and not os.path.isdir(m.rel(f)):
6062c6362b2e remove: warn if unversionned files are specified (issue1454)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 8464
diff changeset
3196 ui.warn(_('not removing %s: file is untracked\n') % m.rel(f))
11177
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
3197 ret = 1
8533
6062c6362b2e remove: warn if unversionned files are specified (issue1454)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 8464
diff changeset
3198
6761
cb981fc955fb remove: work directly off status
Matt Mackall <mpm@selenic.com>
parents: 6760
diff changeset
3199 if force:
cb981fc955fb remove: work directly off status
Matt Mackall <mpm@selenic.com>
parents: 6760
diff changeset
3200 remove, forget = modified + deleted + clean, added
cb981fc955fb remove: work directly off status
Matt Mackall <mpm@selenic.com>
parents: 6760
diff changeset
3201 elif after:
cb981fc955fb remove: work directly off status
Matt Mackall <mpm@selenic.com>
parents: 6760
diff changeset
3202 remove, forget = deleted, []
12129
07ac2a560fce remove: properly set return code when warnings are issued
Brodie Rao <brodie@bitheap.org>
parents: 12128
diff changeset
3203 for f in modified + added + clean:
07ac2a560fce remove: properly set return code when warnings are issued
Brodie Rao <brodie@bitheap.org>
parents: 12128
diff changeset
3204 ui.warn(_('not removing %s: file still exists (use -f'
07ac2a560fce remove: properly set return code when warnings are issued
Brodie Rao <brodie@bitheap.org>
parents: 12128
diff changeset
3205 ' to force removal)\n') % m.rel(f))
07ac2a560fce remove: properly set return code when warnings are issued
Brodie Rao <brodie@bitheap.org>
parents: 12128
diff changeset
3206 ret = 1
6761
cb981fc955fb remove: work directly off status
Matt Mackall <mpm@selenic.com>
parents: 6760
diff changeset
3207 else:
cb981fc955fb remove: work directly off status
Matt Mackall <mpm@selenic.com>
parents: 6760
diff changeset
3208 remove, forget = deleted + clean, []
12129
07ac2a560fce remove: properly set return code when warnings are issued
Brodie Rao <brodie@bitheap.org>
parents: 12128
diff changeset
3209 for f in modified:
07ac2a560fce remove: properly set return code when warnings are issued
Brodie Rao <brodie@bitheap.org>
parents: 12128
diff changeset
3210 ui.warn(_('not removing %s: file is modified (use -f'
07ac2a560fce remove: properly set return code when warnings are issued
Brodie Rao <brodie@bitheap.org>
parents: 12128
diff changeset
3211 ' to force removal)\n') % m.rel(f))
07ac2a560fce remove: properly set return code when warnings are issued
Brodie Rao <brodie@bitheap.org>
parents: 12128
diff changeset
3212 ret = 1
07ac2a560fce remove: properly set return code when warnings are issued
Brodie Rao <brodie@bitheap.org>
parents: 12128
diff changeset
3213 for f in added:
07ac2a560fce remove: properly set return code when warnings are issued
Brodie Rao <brodie@bitheap.org>
parents: 12128
diff changeset
3214 ui.warn(_('not removing %s: file has been marked for add (use -f'
07ac2a560fce remove: properly set return code when warnings are issued
Brodie Rao <brodie@bitheap.org>
parents: 12128
diff changeset
3215 ' to force removal)\n') % m.rel(f))
07ac2a560fce remove: properly set return code when warnings are issued
Brodie Rao <brodie@bitheap.org>
parents: 12128
diff changeset
3216 ret = 1
6761
cb981fc955fb remove: work directly off status
Matt Mackall <mpm@selenic.com>
parents: 6760
diff changeset
3217
8209
a1a5a57efe90 replace util.sort with sorted built-in
Matt Mackall <mpm@selenic.com>
parents: 8190
diff changeset
3218 for f in sorted(remove + forget):
6761
cb981fc955fb remove: work directly off status
Matt Mackall <mpm@selenic.com>
parents: 6760
diff changeset
3219 if ui.verbose or not m.exact(f):
cb981fc955fb remove: work directly off status
Matt Mackall <mpm@selenic.com>
parents: 6760
diff changeset
3220 ui.status(_('removing %s\n') % m.rel(f))
6346
8e3b651382f5 improved semantics for remove (issue438)
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 6336
diff changeset
3221
11303
a1aad8333864 move working dir/dirstate methods from localrepo to workingctx
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 11302
diff changeset
3222 repo[None].forget(forget)
a1aad8333864 move working dir/dirstate methods from localrepo to workingctx
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 11302
diff changeset
3223 repo[None].remove(remove, unlink=not after)
11177
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
3224 return ret
245
fef0f8e041aa big heap of command clean-up work
mpm@selenic.com
parents: 241
diff changeset
3225
1253
a45e717c61a8 Add rename/mv command.
Bryan O'Sullivan <bos@serpentine.com>
parents: 1250
diff changeset
3226 def rename(ui, repo, *pats, **opts):
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
3227 """rename files; equivalent of copy + remove
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
3228
8004
d5b1b846f277 commands: word-wrap help texts at 70 characters
Martin Geisler <mg@daimi.au.dk>
parents: 7983
diff changeset
3229 Mark dest as copies of sources; mark sources for deletion. If dest
d5b1b846f277 commands: word-wrap help texts at 70 characters
Martin Geisler <mg@daimi.au.dk>
parents: 7983
diff changeset
3230 is a directory, copies are put in that directory. If dest is a
d5b1b846f277 commands: word-wrap help texts at 70 characters
Martin Geisler <mg@daimi.au.dk>
parents: 7983
diff changeset
3231 file, there can only be one source.
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
3232
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
3233 By default, this command copies the contents of files as they
8033
aeb4a5c7a28e commands: consistently write switches as -a/--abc
Martin Geisler <mg@lazybytes.net>
parents: 8032
diff changeset
3234 exist in the working directory. If invoked with -A/--after, the
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
3235 operation is recorded, but no copying is performed.
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
3236
7807
bd8f44638847 help: miscellaneous language fixes
timeless <timeless@gmail.com>
parents: 7765
diff changeset
3237 This command takes effect at the next commit. To undo a rename
11193
687c7d395f20 Use our custom hg reStructuredText role some more
Martin Geisler <mg@aragost.com>
parents: 11185
diff changeset
3238 before that, see :hg:`revert`.
11177
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
3239
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
3240 Returns 0 on success, 1 if errors are encountered.
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
3241 """
4914
9a2a73ea6135 repo locks: use True/False
Matt Mackall <mpm@selenic.com>
parents: 4906
diff changeset
3242 wlock = repo.wlock(False)
4915
97b734fb9c6f Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents: 4914
diff changeset
3243 try:
5610
2493a478f395 copy: handle rename internally
Matt Mackall <mpm@selenic.com>
parents: 5589
diff changeset
3244 return cmdutil.copy(ui, repo, pats, opts, rename=True)
4915
97b734fb9c6f Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents: 4914
diff changeset
3245 finally:
8109
496ae1ea4698 switch lock releasing in the core from gc to explicit
Ronny Pfannschmidt <Ronny.Pfannschmidt@gmx.de>
parents: 8088
diff changeset
3246 wlock.release()
1253
a45e717c61a8 Add rename/mv command.
Bryan O'Sullivan <bos@serpentine.com>
parents: 1250
diff changeset
3247
6518
92ccccb55ba3 resolve: new command
Matt Mackall <mpm@selenic.com>
parents: 6509
diff changeset
3248 def resolve(ui, repo, *pats, **opts):
11836
53fdc0989047 resolve: updated help documentation for improved clarity
Mark Edgington <edgimar@gmail.com>
parents: 11777
diff changeset
3249 """redo merges or set/view the merge status of files
53fdc0989047 resolve: updated help documentation for improved clarity
Mark Edgington <edgimar@gmail.com>
parents: 11777
diff changeset
3250
53fdc0989047 resolve: updated help documentation for improved clarity
Mark Edgington <edgimar@gmail.com>
parents: 11777
diff changeset
3251 Merges with unresolved conflicts are often the result of
12083
ebfc46929f3e help: refer to user configuration file more consistently
Brodie Rao <brodie@bitheap.org>
parents: 12067
diff changeset
3252 non-interactive merging using the ``internal:merge`` configuration
ebfc46929f3e help: refer to user configuration file more consistently
Brodie Rao <brodie@bitheap.org>
parents: 12067
diff changeset
3253 setting, or a command-line merge tool like ``diff3``. The resolve
ebfc46929f3e help: refer to user configuration file more consistently
Brodie Rao <brodie@bitheap.org>
parents: 12067
diff changeset
3254 command is used to manage the files involved in a merge, after
ebfc46929f3e help: refer to user configuration file more consistently
Brodie Rao <brodie@bitheap.org>
parents: 12067
diff changeset
3255 :hg:`merge` has been run, and before :hg:`commit` is run (i.e. the
ebfc46929f3e help: refer to user configuration file more consistently
Brodie Rao <brodie@bitheap.org>
parents: 12067
diff changeset
3256 working directory must have two parents).
11836
53fdc0989047 resolve: updated help documentation for improved clarity
Mark Edgington <edgimar@gmail.com>
parents: 11777
diff changeset
3257
53fdc0989047 resolve: updated help documentation for improved clarity
Mark Edgington <edgimar@gmail.com>
parents: 11777
diff changeset
3258 The resolve command can be used in the following ways:
53fdc0989047 resolve: updated help documentation for improved clarity
Mark Edgington <edgimar@gmail.com>
parents: 11777
diff changeset
3259
12809
e5922564ab01 help: improve merge-tools topic, describe --tool and clarify details
Mads Kiilerich <mads@kiilerich.com>
parents: 12803
diff changeset
3260 - :hg:`resolve [--tool TOOL] FILE...`: attempt to re-merge the specified
12750
05bd2658bbb3 merge: add --tool argument to merge and resolve
Steve Borho <steve@borho.org>
parents: 12727
diff changeset
3261 files, discarding any previous merge attempts. Re-merging is not
11836
53fdc0989047 resolve: updated help documentation for improved clarity
Mark Edgington <edgimar@gmail.com>
parents: 11777
diff changeset
3262 performed for files already marked as resolved. Use ``--all/-a``
12750
05bd2658bbb3 merge: add --tool argument to merge and resolve
Steve Borho <steve@borho.org>
parents: 12727
diff changeset
3263 to selects all unresolved files. ``--tool`` can be used to specify
05bd2658bbb3 merge: add --tool argument to merge and resolve
Steve Borho <steve@borho.org>
parents: 12727
diff changeset
3264 the merge tool used for the given files. It overrides the HGMERGE
05bd2658bbb3 merge: add --tool argument to merge and resolve
Steve Borho <steve@borho.org>
parents: 12727
diff changeset
3265 environment variable and your configuration files.
11836
53fdc0989047 resolve: updated help documentation for improved clarity
Mark Edgington <edgimar@gmail.com>
parents: 11777
diff changeset
3266
53fdc0989047 resolve: updated help documentation for improved clarity
Mark Edgington <edgimar@gmail.com>
parents: 11777
diff changeset
3267 - :hg:`resolve -m [FILE]`: mark a file as having been resolved
53fdc0989047 resolve: updated help documentation for improved clarity
Mark Edgington <edgimar@gmail.com>
parents: 11777
diff changeset
3268 (e.g. after having manually fixed-up the files). The default is
53fdc0989047 resolve: updated help documentation for improved clarity
Mark Edgington <edgimar@gmail.com>
parents: 11777
diff changeset
3269 to mark all unresolved files.
53fdc0989047 resolve: updated help documentation for improved clarity
Mark Edgington <edgimar@gmail.com>
parents: 11777
diff changeset
3270
53fdc0989047 resolve: updated help documentation for improved clarity
Mark Edgington <edgimar@gmail.com>
parents: 11777
diff changeset
3271 - :hg:`resolve -u [FILE]...`: mark a file as unresolved. The
53fdc0989047 resolve: updated help documentation for improved clarity
Mark Edgington <edgimar@gmail.com>
parents: 11777
diff changeset
3272 default is to mark all resolved files.
53fdc0989047 resolve: updated help documentation for improved clarity
Mark Edgington <edgimar@gmail.com>
parents: 11777
diff changeset
3273
53fdc0989047 resolve: updated help documentation for improved clarity
Mark Edgington <edgimar@gmail.com>
parents: 11777
diff changeset
3274 - :hg:`resolve -l`: list files which had or still have conflicts.
53fdc0989047 resolve: updated help documentation for improved clarity
Mark Edgington <edgimar@gmail.com>
parents: 11777
diff changeset
3275 In the printed list, ``U`` = unresolved and ``R`` = resolved.
53fdc0989047 resolve: updated help documentation for improved clarity
Mark Edgington <edgimar@gmail.com>
parents: 11777
diff changeset
3276
53fdc0989047 resolve: updated help documentation for improved clarity
Mark Edgington <edgimar@gmail.com>
parents: 11777
diff changeset
3277 Note that Mercurial will not let you commit files with unresolved
53fdc0989047 resolve: updated help documentation for improved clarity
Mark Edgington <edgimar@gmail.com>
parents: 11777
diff changeset
3278 merge conflicts. You must use :hg:`resolve -m ...` before you can
53fdc0989047 resolve: updated help documentation for improved clarity
Mark Edgington <edgimar@gmail.com>
parents: 11777
diff changeset
3279 commit after a conflicting merge.
11177
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
3280
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
3281 Returns 0 on success, 1 if any files fail a resolve attempt.
6518
92ccccb55ba3 resolve: new command
Matt Mackall <mpm@selenic.com>
parents: 6509
diff changeset
3282 """
92ccccb55ba3 resolve: new command
Matt Mackall <mpm@selenic.com>
parents: 6509
diff changeset
3283
9646
5b001f534452 commands: adding --no-status to resolve to match status
timeless <timeless@gmail.com>
parents: 9645
diff changeset
3284 all, mark, unmark, show, nostatus = \
5b001f534452 commands: adding --no-status to resolve to match status
timeless <timeless@gmail.com>
parents: 9645
diff changeset
3285 [opts.get(o) for o in 'all mark unmark list no_status'.split()]
7527
5a14a8f3b909 resolve: require -a switch to resolve all files
Matt Mackall <mpm@selenic.com>
parents: 7449
diff changeset
3286
5a14a8f3b909 resolve: require -a switch to resolve all files
Matt Mackall <mpm@selenic.com>
parents: 7449
diff changeset
3287 if (show and (mark or unmark)) or (mark and unmark):
6518
92ccccb55ba3 resolve: new command
Matt Mackall <mpm@selenic.com>
parents: 6509
diff changeset
3288 raise util.Abort(_("too many options specified"))
7527
5a14a8f3b909 resolve: require -a switch to resolve all files
Matt Mackall <mpm@selenic.com>
parents: 7449
diff changeset
3289 if pats and all:
5a14a8f3b909 resolve: require -a switch to resolve all files
Matt Mackall <mpm@selenic.com>
parents: 7449
diff changeset
3290 raise util.Abort(_("can't specify --all and patterns"))
5a14a8f3b909 resolve: require -a switch to resolve all files
Matt Mackall <mpm@selenic.com>
parents: 7449
diff changeset
3291 if not (all or pats or show or mark or unmark):
5a14a8f3b909 resolve: require -a switch to resolve all files
Matt Mackall <mpm@selenic.com>
parents: 7449
diff changeset
3292 raise util.Abort(_('no files or directories specified; '
5a14a8f3b909 resolve: require -a switch to resolve all files
Matt Mackall <mpm@selenic.com>
parents: 7449
diff changeset
3293 'use --all to remerge all files'))
6518
92ccccb55ba3 resolve: new command
Matt Mackall <mpm@selenic.com>
parents: 6509
diff changeset
3294
10651
5f091fc1bab7 style: use consistent variable names (*mod) with imports which would shadow
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 10650
diff changeset
3295 ms = mergemod.mergestate(repo)
6594
fca1688f0459 resolve: use cmdutil.match
Matt Mackall <mpm@selenic.com>
parents: 6586
diff changeset
3296 m = cmdutil.match(repo, pats, opts)
11177
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
3297 ret = 0
6518
92ccccb55ba3 resolve: new command
Matt Mackall <mpm@selenic.com>
parents: 6509
diff changeset
3298
92ccccb55ba3 resolve: new command
Matt Mackall <mpm@selenic.com>
parents: 6509
diff changeset
3299 for f in ms:
6594
fca1688f0459 resolve: use cmdutil.match
Matt Mackall <mpm@selenic.com>
parents: 6586
diff changeset
3300 if m(f):
7527
5a14a8f3b909 resolve: require -a switch to resolve all files
Matt Mackall <mpm@selenic.com>
parents: 7449
diff changeset
3301 if show:
9646
5b001f534452 commands: adding --no-status to resolve to match status
timeless <timeless@gmail.com>
parents: 9645
diff changeset
3302 if nostatus:
5b001f534452 commands: adding --no-status to resolve to match status
timeless <timeless@gmail.com>
parents: 9645
diff changeset
3303 ui.write("%s\n" % f)
5b001f534452 commands: adding --no-status to resolve to match status
timeless <timeless@gmail.com>
parents: 9645
diff changeset
3304 else:
10817
2096496b40ec status: make use of output labeling
Brodie Rao <brodie@bitheap.org>
parents: 10816
diff changeset
3305 ui.write("%s %s\n" % (ms[f].upper(), f),
2096496b40ec status: make use of output labeling
Brodie Rao <brodie@bitheap.org>
parents: 10816
diff changeset
3306 label='resolve.' +
2096496b40ec status: make use of output labeling
Brodie Rao <brodie@bitheap.org>
parents: 10816
diff changeset
3307 {'u': 'unresolved', 'r': 'resolved'}[ms[f]])
7527
5a14a8f3b909 resolve: require -a switch to resolve all files
Matt Mackall <mpm@selenic.com>
parents: 7449
diff changeset
3308 elif mark:
6518
92ccccb55ba3 resolve: new command
Matt Mackall <mpm@selenic.com>
parents: 6509
diff changeset
3309 ms.mark(f, "r")
7527
5a14a8f3b909 resolve: require -a switch to resolve all files
Matt Mackall <mpm@selenic.com>
parents: 7449
diff changeset
3310 elif unmark:
6518
92ccccb55ba3 resolve: new command
Matt Mackall <mpm@selenic.com>
parents: 6509
diff changeset
3311 ms.mark(f, "u")
92ccccb55ba3 resolve: new command
Matt Mackall <mpm@selenic.com>
parents: 6509
diff changeset
3312 else:
6747
f6c00b17387c use repo[changeid] to get a changectx
Matt Mackall <mpm@selenic.com>
parents: 6746
diff changeset
3313 wctx = repo[None]
6518
92ccccb55ba3 resolve: new command
Matt Mackall <mpm@selenic.com>
parents: 6509
diff changeset
3314 mctx = wctx.parents()[-1]
7847
30cb79d84352 resolve: keep .orig files
Matt Mackall <mpm@selenic.com>
parents: 7829
diff changeset
3315
30cb79d84352 resolve: keep .orig files
Matt Mackall <mpm@selenic.com>
parents: 7829
diff changeset
3316 # backup pre-resolve (merge uses .orig for its own purposes)
30cb79d84352 resolve: keep .orig files
Matt Mackall <mpm@selenic.com>
parents: 7829
diff changeset
3317 a = repo.wjoin(f)
30cb79d84352 resolve: keep .orig files
Matt Mackall <mpm@selenic.com>
parents: 7829
diff changeset
3318 util.copyfile(a, a + ".resolve")
30cb79d84352 resolve: keep .orig files
Matt Mackall <mpm@selenic.com>
parents: 7829
diff changeset
3319
12788
de793925862e merge: implement --tool arguments using new ui.forcemerge configurable
Steve Borho <steve@borho.org>
parents: 12765
diff changeset
3320 try:
de793925862e merge: implement --tool arguments using new ui.forcemerge configurable
Steve Borho <steve@borho.org>
parents: 12765
diff changeset
3321 # resolve file
de793925862e merge: implement --tool arguments using new ui.forcemerge configurable
Steve Borho <steve@borho.org>
parents: 12765
diff changeset
3322 ui.setconfig('ui', 'forcemerge', opts.get('tool', ''))
de793925862e merge: implement --tool arguments using new ui.forcemerge configurable
Steve Borho <steve@borho.org>
parents: 12765
diff changeset
3323 if ms.resolve(f, wctx, mctx):
de793925862e merge: implement --tool arguments using new ui.forcemerge configurable
Steve Borho <steve@borho.org>
parents: 12765
diff changeset
3324 ret = 1
de793925862e merge: implement --tool arguments using new ui.forcemerge configurable
Steve Borho <steve@borho.org>
parents: 12765
diff changeset
3325 finally:
de793925862e merge: implement --tool arguments using new ui.forcemerge configurable
Steve Borho <steve@borho.org>
parents: 12765
diff changeset
3326 ui.setconfig('ui', 'forcemerge', '')
6518
92ccccb55ba3 resolve: new command
Matt Mackall <mpm@selenic.com>
parents: 6509
diff changeset
3327
7847
30cb79d84352 resolve: keep .orig files
Matt Mackall <mpm@selenic.com>
parents: 7829
diff changeset
3328 # replace filemerge's .orig file with our resolve file
30cb79d84352 resolve: keep .orig files
Matt Mackall <mpm@selenic.com>
parents: 7829
diff changeset
3329 util.rename(a + ".resolve", a + ".orig")
12369
6f0d9d79111f merge: delay writing the mergestate during until commit is called
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 12323
diff changeset
3330
6f0d9d79111f merge: delay writing the mergestate during until commit is called
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 12323
diff changeset
3331 ms.commit()
11177
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
3332 return ret
7847
30cb79d84352 resolve: keep .orig files
Matt Mackall <mpm@selenic.com>
parents: 7829
diff changeset
3333
1472
3c909a747d7f make revert use standard matcher
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1470
diff changeset
3334 def revert(ui, repo, *pats, **opts):
8026
683d8ebcf434 expand "dir" to "directory" in help texts
Martin Geisler <mg@lazybytes.net>
parents: 8021
diff changeset
3335 """restore individual files or directories to an earlier state
5574
d4ec6d61b3ee imported patch rev-help
Matt Mackall <mpm@selenic.com>
parents: 5573
diff changeset
3336
12390
aff4afdcfd2b Use more note admonitions in help texts
Christian Ebert <blacktrash@gmx.net>
parents: 12389
diff changeset
3337 .. note::
aff4afdcfd2b Use more note admonitions in help texts
Christian Ebert <blacktrash@gmx.net>
parents: 12389
diff changeset
3338 This command is most likely not what you are looking for.
12754
eaac5e8cb637 Revert: capitalization doc fix
Adrian Buehlmann <adrian@cadifra.com>
parents: 12750
diff changeset
3339 Revert will partially overwrite content in the working
12390
aff4afdcfd2b Use more note admonitions in help texts
Christian Ebert <blacktrash@gmx.net>
parents: 12389
diff changeset
3340 directory without changing the working directory parents. Use
aff4afdcfd2b Use more note admonitions in help texts
Christian Ebert <blacktrash@gmx.net>
parents: 12389
diff changeset
3341 :hg:`update -r rev` to check out earlier revisions, or
aff4afdcfd2b Use more note admonitions in help texts
Christian Ebert <blacktrash@gmx.net>
parents: 12389
diff changeset
3342 :hg:`update --clean .` to undo a merge which has added another
aff4afdcfd2b Use more note admonitions in help texts
Christian Ebert <blacktrash@gmx.net>
parents: 12389
diff changeset
3343 parent.
2204
eb5fa83ffcfa fix doc comments for revert command. people found them confusing.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2189
diff changeset
3344
2212
8164e3f31638 revert: require explicit revision when working dir has two parents.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2204
diff changeset
3345 With no revision specified, revert the named files or directories
8164e3f31638 revert: require explicit revision when working dir has two parents.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2204
diff changeset
3346 to the contents they had in the parent of the working directory.
8164e3f31638 revert: require explicit revision when working dir has two parents.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2204
diff changeset
3347 This restores the contents of the affected files to an unmodified
3829
531c116b2028 Add doc notes about revert and hg status vs diff
Matt Mackall <mpm@selenic.com>
parents: 3822
diff changeset
3348 state and unschedules adds, removes, copies, and renames. If the
10376
a2950e053614 help: Improved body text
timeless <timeless@mozdev.org>
parents: 10375
diff changeset
3349 working directory has two parents, you must explicitly specify a
a2950e053614 help: Improved body text
timeless <timeless@mozdev.org>
parents: 10375
diff changeset
3350 revision.
1811
6cb548cffdf5 resync commands.py docstrings with hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1804
diff changeset
3351
8033
aeb4a5c7a28e commands: consistently write switches as -a/--abc
Martin Geisler <mg@lazybytes.net>
parents: 8032
diff changeset
3352 Using the -r/--rev option, revert the given files or directories
aeb4a5c7a28e commands: consistently write switches as -a/--abc
Martin Geisler <mg@lazybytes.net>
parents: 8032
diff changeset
3353 to their contents as of a specific revision. This can be helpful
10973
49a07f441496 Use hg role in help strings
Martin Geisler <mg@aragost.com>
parents: 10963
diff changeset
3354 to "roll back" some or all of an earlier change. See :hg:`help
49a07f441496 Use hg role in help strings
Martin Geisler <mg@aragost.com>
parents: 10963
diff changeset
3355 dates` for a list of formats valid for -d/--date.
1811
6cb548cffdf5 resync commands.py docstrings with hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1804
diff changeset
3356
6448
cd3d49ffc6f6 Consistently 1 space after full stops in command doc strings
Christian Ebert <blacktrash@gmx.net>
parents: 6442
diff changeset
3357 Revert modifies the working directory. It does not commit any
cd3d49ffc6f6 Consistently 1 space after full stops in command doc strings
Christian Ebert <blacktrash@gmx.net>
parents: 6442
diff changeset
3358 changes, or change the parent of the working directory. If you
2204
eb5fa83ffcfa fix doc comments for revert command. people found them confusing.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2189
diff changeset
3359 revert to a revision other than the parent of the working
eb5fa83ffcfa fix doc comments for revert command. people found them confusing.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2189
diff changeset
3360 directory, the reverted files will thus appear modified
eb5fa83ffcfa fix doc comments for revert command. people found them confusing.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2189
diff changeset
3361 afterwards.
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
3362
8004
d5b1b846f277 commands: word-wrap help texts at 70 characters
Martin Geisler <mg@daimi.au.dk>
parents: 7983
diff changeset
3363 If a file has been deleted, it is restored. If the executable mode
d5b1b846f277 commands: word-wrap help texts at 70 characters
Martin Geisler <mg@daimi.au.dk>
parents: 7983
diff changeset
3364 of a file was changed, it is reset.
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
3365
1472
3c909a747d7f make revert use standard matcher
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1470
diff changeset
3366 If names are given, all files matching the names are reverted.
2982
890e285c52a1 revert: require --all to revert all files.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2963
diff changeset
3367 If no arguments are given, no files are reverted.
5574
d4ec6d61b3ee imported patch rev-help
Matt Mackall <mpm@selenic.com>
parents: 5573
diff changeset
3368
d4ec6d61b3ee imported patch rev-help
Matt Mackall <mpm@selenic.com>
parents: 5573
diff changeset
3369 Modified files are saved with a .orig suffix before reverting.
d4ec6d61b3ee imported patch rev-help
Matt Mackall <mpm@selenic.com>
parents: 5573
diff changeset
3370 To disable these backups, use --no-backup.
11177
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
3371
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
3372 Returns 0 on success.
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
3373 """
2982
890e285c52a1 revert: require --all to revert all files.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2963
diff changeset
3374
11941
4532c44bb62d revert: use opts.get
Xavier Snelgrove <xs@wxs.ca>
parents: 11886
diff changeset
3375 if opts.get("date"):
4532c44bb62d revert: use opts.get
Xavier Snelgrove <xs@wxs.ca>
parents: 11886
diff changeset
3376 if opts.get("rev"):
3814
120be84f33de Add --date support to update and revert
Matt Mackall <mpm@selenic.com>
parents: 3813
diff changeset
3377 raise util.Abort(_("you can't specify a revision and a date"))
120be84f33de Add --date support to update and revert
Matt Mackall <mpm@selenic.com>
parents: 3813
diff changeset
3378 opts["rev"] = cmdutil.finddate(ui, repo, opts["date"])
120be84f33de Add --date support to update and revert
Matt Mackall <mpm@selenic.com>
parents: 3813
diff changeset
3379
13022
3fd4e4e81382 revert: improve merge advice and favor its error over all
timeless <timeless@gmail.com>
parents: 12968
diff changeset
3380 parent, p2 = repo.dirstate.parents()
3fd4e4e81382 revert: improve merge advice and favor its error over all
timeless <timeless@gmail.com>
parents: 12968
diff changeset
3381 if not opts.get('rev') and p2 != nullid:
3fd4e4e81382 revert: improve merge advice and favor its error over all
timeless <timeless@gmail.com>
parents: 12968
diff changeset
3382 raise util.Abort(_('uncommitted merge - '
3fd4e4e81382 revert: improve merge advice and favor its error over all
timeless <timeless@gmail.com>
parents: 12968
diff changeset
3383 'use "hg update", see "hg help revert"'))
3fd4e4e81382 revert: improve merge advice and favor its error over all
timeless <timeless@gmail.com>
parents: 12968
diff changeset
3384
7131
23bd7383891c commands: optional options where possible
Alexander Solovyov <piranha@piranha.org.ua>
parents: 7126
diff changeset
3385 if not pats and not opts.get('all'):
3020
ea2a9c13afc6 Add a hint for revert --all when aborting
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 3016
diff changeset
3386 raise util.Abort(_('no files or directories specified; '
ea2a9c13afc6 Add a hint for revert --all when aborting
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 3016
diff changeset
3387 'use --all to revert the whole repo'))
2982
890e285c52a1 revert: require --all to revert all files.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2963
diff changeset
3388
12925
6eab8f0df2ca commands: add revset support to most commands
Matt Mackall <mpm@selenic.com>
parents: 12918
diff changeset
3389 ctx = cmdutil.revsingle(repo, opts.get('rev'))
3972
356e20d46b34 commands.py: use contexts in various places (debug*state, revert)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 3951
diff changeset
3390 node = ctx.node()
356e20d46b34 commands.py: use contexts in various places (debug*state, revert)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 3951
diff changeset
3391 mf = ctx.manifest()
2407
8fe3d60b7f19 revert: better fix for not printing 'reverting' message
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2406
diff changeset
3392 if node == parent:
8fe3d60b7f19 revert: better fix for not printing 'reverting' message
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2406
diff changeset
3393 pmf = mf
8fe3d60b7f19 revert: better fix for not printing 'reverting' message
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2406
diff changeset
3394 else:
8fe3d60b7f19 revert: better fix for not printing 'reverting' message
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2406
diff changeset
3395 pmf = None
2029
d436b21b20dc rewrite revert command. fix issues 93, 123, 147.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2022
diff changeset
3396
2042
a514c7509fa9 small changes to revert command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2037
diff changeset
3397 # need all matching names in dirstate and manifest of target rev,
a514c7509fa9 small changes to revert command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2037
diff changeset
3398 # so have to walk both. do not print errors if files exist in one
a514c7509fa9 small changes to revert command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2037
diff changeset
3399 # but not other.
a514c7509fa9 small changes to revert command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2037
diff changeset
3400
2029
d436b21b20dc rewrite revert command. fix issues 93, 123, 147.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2022
diff changeset
3401 names = {}
2042
a514c7509fa9 small changes to revert command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2037
diff changeset
3402
4915
97b734fb9c6f Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents: 4914
diff changeset
3403 wlock = repo.wlock()
97b734fb9c6f Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents: 4914
diff changeset
3404 try:
97b734fb9c6f Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents: 4914
diff changeset
3405 # walk dirstate.
6579
0159b7a36184 walk: pass match object to cmdutil.walk
Matt Mackall <mpm@selenic.com>
parents: 6578
diff changeset
3406
0159b7a36184 walk: pass match object to cmdutil.walk
Matt Mackall <mpm@selenic.com>
parents: 6578
diff changeset
3407 m = cmdutil.match(repo, pats, opts)
10282
08a0f04b56bd many, many trivial check-code fixups
Matt Mackall <mpm@selenic.com>
parents: 10270
diff changeset
3408 m.bad = lambda x, y: False
6586
d3463007d368 walk: return a single value
Matt Mackall <mpm@selenic.com>
parents: 6585
diff changeset
3409 for abs in repo.walk(m):
6584
29c77e5dfb3c walk: remove rel and exact returns
Matt Mackall <mpm@selenic.com>
parents: 6583
diff changeset
3410 names[abs] = m.rel(abs), m.exact(abs)
4915
97b734fb9c6f Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents: 4914
diff changeset
3411
97b734fb9c6f Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents: 4914
diff changeset
3412 # walk target manifest.
97b734fb9c6f Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents: 4914
diff changeset
3413
6579
0159b7a36184 walk: pass match object to cmdutil.walk
Matt Mackall <mpm@selenic.com>
parents: 6578
diff changeset
3414 def badfn(path, msg):
4915
97b734fb9c6f Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents: 4914
diff changeset
3415 if path in names:
8679
32537b12e091 add: use match.bad callback more effectively
Matt Mackall <mpm@selenic.com>
parents: 8669
diff changeset
3416 return
4915
97b734fb9c6f Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents: 4914
diff changeset
3417 path_ = path + '/'
97b734fb9c6f Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents: 4914
diff changeset
3418 for f in names:
97b734fb9c6f Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents: 4914
diff changeset
3419 if f.startswith(path_):
8679
32537b12e091 add: use match.bad callback more effectively
Matt Mackall <mpm@selenic.com>
parents: 8669
diff changeset
3420 return
8615
94ca38e63576 use ui instead of repo.ui when the former is in scope
Martin Geisler <mg@lazybytes.net>
parents: 8544
diff changeset
3421 ui.warn("%s: %s\n" % (m.rel(path), msg))
4915
97b734fb9c6f Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents: 4914
diff changeset
3422
6579
0159b7a36184 walk: pass match object to cmdutil.walk
Matt Mackall <mpm@selenic.com>
parents: 6578
diff changeset
3423 m = cmdutil.match(repo, pats, opts)
0159b7a36184 walk: pass match object to cmdutil.walk
Matt Mackall <mpm@selenic.com>
parents: 6578
diff changeset
3424 m.bad = badfn
6764
8db64464d136 context: add walk method
Matt Mackall <mpm@selenic.com>
parents: 6762
diff changeset
3425 for abs in repo[node].walk(m):
6584
29c77e5dfb3c walk: remove rel and exact returns
Matt Mackall <mpm@selenic.com>
parents: 6583
diff changeset
3426 if abs not in names:
29c77e5dfb3c walk: remove rel and exact returns
Matt Mackall <mpm@selenic.com>
parents: 6583
diff changeset
3427 names[abs] = m.rel(abs), m.exact(abs)
6031
7383384793fb revert: don't assume ignored files will be returned in the unknown list
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 6030
diff changeset
3428
6599
cd4db3999ef9 status: use match helpers for various users
Matt Mackall <mpm@selenic.com>
parents: 6594
diff changeset
3429 m = cmdutil.matchfiles(repo, names)
6603
41eb20cc1c02 match: remove files arg from repo.status and friends
Matt Mackall <mpm@selenic.com>
parents: 6602
diff changeset
3430 changes = repo.status(match=m)[:4]
8152
08e1baf924ca replace set-like dictionaries with real sets
Martin Geisler <mg@lazybytes.net>
parents: 8150
diff changeset
3431 modified, added, removed, deleted = map(set, changes)
4915
97b734fb9c6f Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents: 4914
diff changeset
3432
5266
d59ed18ec2d0 Merge with crew-stable
Brendan Cully <brendan@kublai.com>
parents: 5259 5230
diff changeset
3433 # if f is a rename, also revert the source
d59ed18ec2d0 Merge with crew-stable
Brendan Cully <brendan@kublai.com>
parents: 5259 5230
diff changeset
3434 cwd = repo.getcwd()
d59ed18ec2d0 Merge with crew-stable
Brendan Cully <brendan@kublai.com>
parents: 5259 5230
diff changeset
3435 for f in added:
d59ed18ec2d0 Merge with crew-stable
Brendan Cully <brendan@kublai.com>
parents: 5259 5230
diff changeset
3436 src = repo.dirstate.copied(f)
d59ed18ec2d0 Merge with crew-stable
Brendan Cully <brendan@kublai.com>
parents: 5259 5230
diff changeset
3437 if src and src not in names and repo.dirstate[src] == 'r':
8152
08e1baf924ca replace set-like dictionaries with real sets
Martin Geisler <mg@lazybytes.net>
parents: 8150
diff changeset
3438 removed.add(src)
5266
d59ed18ec2d0 Merge with crew-stable
Brendan Cully <brendan@kublai.com>
parents: 5259 5230
diff changeset
3439 names[src] = (repo.pathto(src, cwd), True)
d59ed18ec2d0 Merge with crew-stable
Brendan Cully <brendan@kublai.com>
parents: 5259 5230
diff changeset
3440
6109
242595e612ed revert: unify forget and remove lists
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 6108
diff changeset
3441 def removeforget(abs):
242595e612ed revert: unify forget and remove lists
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 6108
diff changeset
3442 if repo.dirstate[abs] == 'a':
242595e612ed revert: unify forget and remove lists
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 6108
diff changeset
3443 return _('forgetting %s\n')
242595e612ed revert: unify forget and remove lists
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 6108
diff changeset
3444 return _('removing %s\n')
242595e612ed revert: unify forget and remove lists
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 6108
diff changeset
3445
4915
97b734fb9c6f Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents: 4914
diff changeset
3446 revert = ([], _('reverting %s\n'))
97b734fb9c6f Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents: 4914
diff changeset
3447 add = ([], _('adding %s\n'))
6109
242595e612ed revert: unify forget and remove lists
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 6108
diff changeset
3448 remove = ([], removeforget)
4915
97b734fb9c6f Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents: 4914
diff changeset
3449 undelete = ([], _('undeleting %s\n'))
97b734fb9c6f Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents: 4914
diff changeset
3450
97b734fb9c6f Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents: 4914
diff changeset
3451 disptable = (
97b734fb9c6f Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents: 4914
diff changeset
3452 # dispatch table:
97b734fb9c6f Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents: 4914
diff changeset
3453 # file state
97b734fb9c6f Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents: 4914
diff changeset
3454 # action if in target manifest
97b734fb9c6f Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents: 4914
diff changeset
3455 # action if not in target manifest
97b734fb9c6f Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents: 4914
diff changeset
3456 # make backup if in target manifest
97b734fb9c6f Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents: 4914
diff changeset
3457 # make backup if not in target manifest
97b734fb9c6f Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents: 4914
diff changeset
3458 (modified, revert, remove, True, True),
6109
242595e612ed revert: unify forget and remove lists
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 6108
diff changeset
3459 (added, revert, remove, True, False),
4915
97b734fb9c6f Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents: 4914
diff changeset
3460 (removed, undelete, None, False, False),
97b734fb9c6f Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents: 4914
diff changeset
3461 (deleted, revert, remove, False, False),
97b734fb9c6f Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents: 4914
diff changeset
3462 )
97b734fb9c6f Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents: 4914
diff changeset
3463
8209
a1a5a57efe90 replace util.sort with sorted built-in
Matt Mackall <mpm@selenic.com>
parents: 8190
diff changeset
3464 for abs, (rel, exact) in sorted(names.items()):
4915
97b734fb9c6f Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents: 4914
diff changeset
3465 mfentry = mf.get(abs)
97b734fb9c6f Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents: 4914
diff changeset
3466 target = repo.wjoin(abs)
97b734fb9c6f Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents: 4914
diff changeset
3467 def handle(xlist, dobackup):
97b734fb9c6f Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents: 4914
diff changeset
3468 xlist[0].append(abs)
12033
41def6704d01 revert: wrap long line
Martin Geisler <mg@lazybytes.net>
parents: 12032
diff changeset
3469 if (dobackup and not opts.get('no_backup') and
41def6704d01 revert: wrap long line
Martin Geisler <mg@lazybytes.net>
parents: 12032
diff changeset
3470 os.path.lexists(target)):
4915
97b734fb9c6f Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents: 4914
diff changeset
3471 bakname = "%s.orig" % rel
97b734fb9c6f Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents: 4914
diff changeset
3472 ui.note(_('saving current version of %s as %s\n') %
97b734fb9c6f Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents: 4914
diff changeset
3473 (rel, bakname))
97b734fb9c6f Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents: 4914
diff changeset
3474 if not opts.get('dry_run'):
11629
9e874ee0fe97 revert: rename original to .orig instead of copying (issue2282)
Mads Kiilerich <mads@kiilerich.com>
parents: 11612
diff changeset
3475 util.rename(target, bakname)
4915
97b734fb9c6f Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents: 4914
diff changeset
3476 if ui.verbose or not exact:
6109
242595e612ed revert: unify forget and remove lists
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 6108
diff changeset
3477 msg = xlist[1]
242595e612ed revert: unify forget and remove lists
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 6108
diff changeset
3478 if not isinstance(msg, basestring):
242595e612ed revert: unify forget and remove lists
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 6108
diff changeset
3479 msg = msg(abs)
242595e612ed revert: unify forget and remove lists
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 6108
diff changeset
3480 ui.status(msg % rel)
4915
97b734fb9c6f Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents: 4914
diff changeset
3481 for table, hitlist, misslist, backuphit, backupmiss in disptable:
10282
08a0f04b56bd many, many trivial check-code fixups
Matt Mackall <mpm@selenic.com>
parents: 10270
diff changeset
3482 if abs not in table:
08a0f04b56bd many, many trivial check-code fixups
Matt Mackall <mpm@selenic.com>
parents: 10270
diff changeset
3483 continue
4915
97b734fb9c6f Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents: 4914
diff changeset
3484 # file has changed in dirstate
97b734fb9c6f Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents: 4914
diff changeset
3485 if mfentry:
97b734fb9c6f Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents: 4914
diff changeset
3486 handle(hitlist, backuphit)
97b734fb9c6f Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents: 4914
diff changeset
3487 elif misslist is not None:
97b734fb9c6f Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents: 4914
diff changeset
3488 handle(misslist, backupmiss)
97b734fb9c6f Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents: 4914
diff changeset
3489 break
2029
d436b21b20dc rewrite revert command. fix issues 93, 123, 147.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2022
diff changeset
3490 else:
6031
7383384793fb revert: don't assume ignored files will be returned in the unknown list
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 6030
diff changeset
3491 if abs not in repo.dirstate:
7383384793fb revert: don't assume ignored files will be returned in the unknown list
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 6030
diff changeset
3492 if mfentry:
7383384793fb revert: don't assume ignored files will be returned in the unknown list
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 6030
diff changeset
3493 handle(add, True)
7383384793fb revert: don't assume ignored files will be returned in the unknown list
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 6030
diff changeset
3494 elif exact:
7383384793fb revert: don't assume ignored files will be returned in the unknown list
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 6030
diff changeset
3495 ui.warn(_('file not managed: %s\n') % rel)
7383384793fb revert: don't assume ignored files will be returned in the unknown list
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 6030
diff changeset
3496 continue
4915
97b734fb9c6f Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents: 4914
diff changeset
3497 # file has not changed in dirstate
97b734fb9c6f Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents: 4914
diff changeset
3498 if node == parent:
10282
08a0f04b56bd many, many trivial check-code fixups
Matt Mackall <mpm@selenic.com>
parents: 10270
diff changeset
3499 if exact:
08a0f04b56bd many, many trivial check-code fixups
Matt Mackall <mpm@selenic.com>
parents: 10270
diff changeset
3500 ui.warn(_('no changes needed to %s\n') % rel)
4915
97b734fb9c6f Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents: 4914
diff changeset
3501 continue
97b734fb9c6f Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents: 4914
diff changeset
3502 if pmf is None:
97b734fb9c6f Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents: 4914
diff changeset
3503 # only need parent manifest in this unlikely case,
97b734fb9c6f Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents: 4914
diff changeset
3504 # so do not read by default
6747
f6c00b17387c use repo[changeid] to get a changectx
Matt Mackall <mpm@selenic.com>
parents: 6746
diff changeset
3505 pmf = repo[parent].manifest()
4915
97b734fb9c6f Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents: 4914
diff changeset
3506 if abs in pmf:
97b734fb9c6f Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents: 4914
diff changeset
3507 if mfentry:
97b734fb9c6f Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents: 4914
diff changeset
3508 # if version of file is same in parent and target
97b734fb9c6f Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents: 4914
diff changeset
3509 # manifests, do nothing
6030
d0dbae32517c revert: revert clean files when only a change of flags is needed
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 5986
diff changeset
3510 if (pmf[abs] != mfentry or
d0dbae32517c revert: revert clean files when only a change of flags is needed
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 5986
diff changeset
3511 pmf.flags(abs) != mf.flags(abs)):
4915
97b734fb9c6f Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents: 4914
diff changeset
3512 handle(revert, False)
97b734fb9c6f Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents: 4914
diff changeset
3513 else:
97b734fb9c6f Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents: 4914
diff changeset
3514 handle(remove, False)
97b734fb9c6f Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents: 4914
diff changeset
3515
97b734fb9c6f Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents: 4914
diff changeset
3516 if not opts.get('dry_run'):
6107
41bb88cb913e commands.revert: don't call hg.revert
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 6106
diff changeset
3517 def checkout(f):
41bb88cb913e commands.revert: don't call hg.revert
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 6106
diff changeset
3518 fc = ctx[f]
6743
86e8187b721a simplify flag handling
Matt Mackall <mpm@selenic.com>
parents: 6740
diff changeset
3519 repo.wwrite(f, fc.data(), fc.flags())
6107
41bb88cb913e commands.revert: don't call hg.revert
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 6106
diff changeset
3520
6109
242595e612ed revert: unify forget and remove lists
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 6108
diff changeset
3521 audit_path = util.path_auditor(repo.root)
242595e612ed revert: unify forget and remove lists
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 6108
diff changeset
3522 for f in remove[0]:
242595e612ed revert: unify forget and remove lists
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 6108
diff changeset
3523 if repo.dirstate[f] == 'a':
242595e612ed revert: unify forget and remove lists
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 6108
diff changeset
3524 repo.dirstate.forget(f)
242595e612ed revert: unify forget and remove lists
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 6108
diff changeset
3525 continue
242595e612ed revert: unify forget and remove lists
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 6108
diff changeset
3526 audit_path(f)
242595e612ed revert: unify forget and remove lists
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 6108
diff changeset
3527 try:
13235
6bf39d88c857 rename util.unlink to unlinkpath
Adrian Buehlmann <adrian@cadifra.com>
parents: 13234
diff changeset
3528 util.unlinkpath(repo.wjoin(f))
6109
242595e612ed revert: unify forget and remove lists
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 6108
diff changeset
3529 except OSError:
242595e612ed revert: unify forget and remove lists
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 6108
diff changeset
3530 pass
242595e612ed revert: unify forget and remove lists
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 6108
diff changeset
3531 repo.dirstate.remove(f)
6107
41bb88cb913e commands.revert: don't call hg.revert
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 6106
diff changeset
3532
6299
653ddd1d7cd7 revert: update state of files in the "checkout" list
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 6296
diff changeset
3533 normal = None
653ddd1d7cd7 revert: update state of files in the "checkout" list
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 6296
diff changeset
3534 if node == parent:
653ddd1d7cd7 revert: update state of files in the "checkout" list
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 6296
diff changeset
3535 # We're reverting to our parent. If possible, we'd like status
653ddd1d7cd7 revert: update state of files in the "checkout" list
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 6296
diff changeset
3536 # to report the file as clean. We have to use normallookup for
653ddd1d7cd7 revert: update state of files in the "checkout" list
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 6296
diff changeset
3537 # merges to avoid losing information about merged/dirty files.
653ddd1d7cd7 revert: update state of files in the "checkout" list
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 6296
diff changeset
3538 if p2 != nullid:
653ddd1d7cd7 revert: update state of files in the "checkout" list
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 6296
diff changeset
3539 normal = repo.dirstate.normallookup
653ddd1d7cd7 revert: update state of files in the "checkout" list
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 6296
diff changeset
3540 else:
653ddd1d7cd7 revert: update state of files in the "checkout" list
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 6296
diff changeset
3541 normal = repo.dirstate.normal
6107
41bb88cb913e commands.revert: don't call hg.revert
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 6106
diff changeset
3542 for f in revert[0]:
41bb88cb913e commands.revert: don't call hg.revert
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 6106
diff changeset
3543 checkout(f)
6299
653ddd1d7cd7 revert: update state of files in the "checkout" list
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 6296
diff changeset
3544 if normal:
653ddd1d7cd7 revert: update state of files in the "checkout" list
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 6296
diff changeset
3545 normal(f)
6107
41bb88cb913e commands.revert: don't call hg.revert
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 6106
diff changeset
3546
4915
97b734fb9c6f Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents: 4914
diff changeset
3547 for f in add[0]:
6107
41bb88cb913e commands.revert: don't call hg.revert
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 6106
diff changeset
3548 checkout(f)
4915
97b734fb9c6f Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents: 4914
diff changeset
3549 repo.dirstate.add(f)
6107
41bb88cb913e commands.revert: don't call hg.revert
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 6106
diff changeset
3550
6108
5086576a2152 revert: only call dirstate.normal when we know the file is clean
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 6107
diff changeset
3551 normal = repo.dirstate.normallookup
5086576a2152 revert: only call dirstate.normal when we know the file is clean
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 6107
diff changeset
3552 if node == parent and p2 == nullid:
5086576a2152 revert: only call dirstate.normal when we know the file is clean
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 6107
diff changeset
3553 normal = repo.dirstate.normal
4915
97b734fb9c6f Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents: 4914
diff changeset
3554 for f in undelete[0]:
6107
41bb88cb913e commands.revert: don't call hg.revert
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 6106
diff changeset
3555 checkout(f)
6108
5086576a2152 revert: only call dirstate.normal when we know the file is clean
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 6107
diff changeset
3556 normal(f)
6107
41bb88cb913e commands.revert: don't call hg.revert
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 6106
diff changeset
3557
4915
97b734fb9c6f Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents: 4914
diff changeset
3558 finally:
8109
496ae1ea4698 switch lock releasing in the core from gc to explicit
Ronny Pfannschmidt <Ronny.Pfannschmidt@gmx.de>
parents: 8088
diff changeset
3559 wlock.release()
588
0c3bae18403b [PATCH] hg revert
mpm@selenic.com
parents: 582
diff changeset
3560
10882
f0bfe42c7b1f rollback: add dry-run argument, emit transaction description
Steve Borho <steve@borho.org>
parents: 10835
diff changeset
3561 def rollback(ui, repo, **opts):
10889
e25c450c351e commands: improve some command summaries
Matt Mackall <mpm@selenic.com>
parents: 10882
diff changeset
3562 """roll back the last transaction (dangerous)
5575
8788ff630c26 imported patch rollback-help
Matt Mackall <mpm@selenic.com>
parents: 5574
diff changeset
3563
8788ff630c26 imported patch rollback-help
Matt Mackall <mpm@selenic.com>
parents: 5574
diff changeset
3564 This command should be used with care. There is only one level of
8788ff630c26 imported patch rollback-help
Matt Mackall <mpm@selenic.com>
parents: 5574
diff changeset
3565 rollback, and there is no way to undo a rollback. It will also
8788ff630c26 imported patch rollback-help
Matt Mackall <mpm@selenic.com>
parents: 5574
diff changeset
3566 restore the dirstate at the time of the last transaction, losing
8856
f8d00346a62d rollback: minor clarification (issue828)
Matt Mackall <mpm@selenic.com>
parents: 8855
diff changeset
3567 any dirstate changes since that time. This command does not alter
f8d00346a62d rollback: minor clarification (issue828)
Matt Mackall <mpm@selenic.com>
parents: 8855
diff changeset
3568 the working directory.
2227
4f072bb06e89 deprecate undo command, replace with rollback command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2212
diff changeset
3569
4f072bb06e89 deprecate undo command, replace with rollback command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2212
diff changeset
3570 Transactions are used to encapsulate the effects of all commands
4f072bb06e89 deprecate undo command, replace with rollback command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2212
diff changeset
3571 that create new changesets or propagate existing changesets into a
4f072bb06e89 deprecate undo command, replace with rollback command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2212
diff changeset
3572 repository. For example, the following commands are transactional,
9893
af873901b575 commands, dates: use real lists instead of literal blocks
Martin Geisler <mg@lazybytes.net>
parents: 9892
diff changeset
3573 and their effects can be rolled back:
af873901b575 commands, dates: use real lists instead of literal blocks
Martin Geisler <mg@lazybytes.net>
parents: 9892
diff changeset
3574
af873901b575 commands, dates: use real lists instead of literal blocks
Martin Geisler <mg@lazybytes.net>
parents: 9892
diff changeset
3575 - commit
af873901b575 commands, dates: use real lists instead of literal blocks
Martin Geisler <mg@lazybytes.net>
parents: 9892
diff changeset
3576 - import
af873901b575 commands, dates: use real lists instead of literal blocks
Martin Geisler <mg@lazybytes.net>
parents: 9892
diff changeset
3577 - pull
10376
a2950e053614 help: Improved body text
timeless <timeless@mozdev.org>
parents: 10375
diff changeset
3578 - push (with this repository as the destination)
9893
af873901b575 commands, dates: use real lists instead of literal blocks
Martin Geisler <mg@lazybytes.net>
parents: 9892
diff changeset
3579 - unbundle
2227
4f072bb06e89 deprecate undo command, replace with rollback command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2212
diff changeset
3580
4f072bb06e89 deprecate undo command, replace with rollback command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2212
diff changeset
3581 This command is not intended for use on public repositories. Once
4f072bb06e89 deprecate undo command, replace with rollback command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2212
diff changeset
3582 changes are visible for pull by other users, rolling a transaction
4f072bb06e89 deprecate undo command, replace with rollback command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2212
diff changeset
3583 back locally is ineffective (someone else may already have pulled
4f072bb06e89 deprecate undo command, replace with rollback command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2212
diff changeset
3584 the changes). Furthermore, a race is possible with readers of the
4f072bb06e89 deprecate undo command, replace with rollback command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2212
diff changeset
3585 repository; for example an in-progress pull from the repository
4f072bb06e89 deprecate undo command, replace with rollback command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2212
diff changeset
3586 may fail if a rollback is performed.
11177
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
3587
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
3588 Returns 0 on success, 1 if no rollback data is available.
2227
4f072bb06e89 deprecate undo command, replace with rollback command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2212
diff changeset
3589 """
11177
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
3590 return repo.rollback(opts.get('dry_run'))
2227
4f072bb06e89 deprecate undo command, replace with rollback command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2212
diff changeset
3591
468
157675add351 [PATCH] add "root" command
mpm@selenic.com
parents: 467
diff changeset
3592 def root(ui, repo):
8026
683d8ebcf434 expand "dir" to "directory" in help texts
Martin Geisler <mg@lazybytes.net>
parents: 8021
diff changeset
3593 """print the root (top) of the current working directory
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
3594
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
3595 Print the root directory of the current repository.
11177
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
3596
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
3597 Returns 0 on success.
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
3598 """
468
157675add351 [PATCH] add "root" command
mpm@selenic.com
parents: 467
diff changeset
3599 ui.write(repo.root + "\n")
157675add351 [PATCH] add "root" command
mpm@selenic.com
parents: 467
diff changeset
3600
245
fef0f8e041aa big heap of command clean-up work
mpm@selenic.com
parents: 241
diff changeset
3601 def serve(ui, repo, **opts):
10889
e25c450c351e commands: improve some command summaries
Matt Mackall <mpm@selenic.com>
parents: 10882
diff changeset
3602 """start stand-alone webserver
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
3603
11102
275198bc904a commands: explain that "hg serve" is mostly for ad-hoc sharing
Martin Geisler <mg@lazybytes.net>
parents: 11089
diff changeset
3604 Start a local HTTP repository browser and pull server. You can use
13065
de4a18cbfc98 serve: fix doc typo
Adrian Buehlmann <adrian@cadifra.com>
parents: 12965
diff changeset
3605 this for ad-hoc sharing and browsing of repositories. It is
11102
275198bc904a commands: explain that "hg serve" is mostly for ad-hoc sharing
Martin Geisler <mg@lazybytes.net>
parents: 11089
diff changeset
3606 recommended to use a real web server to serve a repository for
275198bc904a commands: explain that "hg serve" is mostly for ad-hoc sharing
Martin Geisler <mg@lazybytes.net>
parents: 11089
diff changeset
3607 longer periods of time.
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
3608
11103
d29bd98ebff6 commands: explain that "hg serve" does not do authentication
Martin Geisler <mg@lazybytes.net>
parents: 11102
diff changeset
3609 Please note that the server does not implement access control.
d29bd98ebff6 commands: explain that "hg serve" does not do authentication
Martin Geisler <mg@lazybytes.net>
parents: 11102
diff changeset
3610 This means that, by default, anybody can read from the server and
d29bd98ebff6 commands: explain that "hg serve" does not do authentication
Martin Geisler <mg@lazybytes.net>
parents: 11102
diff changeset
3611 nobody can write to it by default. Set the ``web.allow_push``
d29bd98ebff6 commands: explain that "hg serve" does not do authentication
Martin Geisler <mg@lazybytes.net>
parents: 11102
diff changeset
3612 option to ``*`` to allow everybody to push to the server. You
d29bd98ebff6 commands: explain that "hg serve" does not do authentication
Martin Geisler <mg@lazybytes.net>
parents: 11102
diff changeset
3613 should use a real web server if you need to authenticate users.
d29bd98ebff6 commands: explain that "hg serve" does not do authentication
Martin Geisler <mg@lazybytes.net>
parents: 11102
diff changeset
3614
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
3615 By default, the server logs accesses to stdout and errors to
8277
b9403042968a write options in "-r/--rev" style in help texts
Martin Geisler <mg@lazybytes.net>
parents: 8225
diff changeset
3616 stderr. Use the -A/--accesslog and -E/--errorlog options to log to
b9403042968a write options in "-r/--rev" style in help texts
Martin Geisler <mg@lazybytes.net>
parents: 8225
diff changeset
3617 files.
10629
d3f27d15c9cb serve: allow --port=0 to specify "server chooses the port number"
Bryan O'Sullivan <bos@serpentine.com>
parents: 10617
diff changeset
3618
d3f27d15c9cb serve: allow --port=0 to specify "server chooses the port number"
Bryan O'Sullivan <bos@serpentine.com>
parents: 10617
diff changeset
3619 To have the server choose a free port number to listen on, specify
d3f27d15c9cb serve: allow --port=0 to specify "server chooses the port number"
Bryan O'Sullivan <bos@serpentine.com>
parents: 10617
diff changeset
3620 a port number of 0; in this case, the server will print the port
d3f27d15c9cb serve: allow --port=0 to specify "server chooses the port number"
Bryan O'Sullivan <bos@serpentine.com>
parents: 10617
diff changeset
3621 number it uses.
11177
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
3622
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
3623 Returns 0 on success.
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
3624 """
624
876333a295ff Add an sshrepository class and hg serve --stdio
Matt Mackall <mpm@selenic.com>
parents: 618
diff changeset
3625
876333a295ff Add an sshrepository class and hg serve --stdio
Matt Mackall <mpm@selenic.com>
parents: 618
diff changeset
3626 if opts["stdio"]:
2127
8a85dbbadddf Allow 'hg serve --webdir-conf foo' to be run outside a repository.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 2125
diff changeset
3627 if repo is None:
7637
1d54e2f6c0b7 error: move repo errors
Matt Mackall <mpm@selenic.com>
parents: 7633
diff changeset
3628 raise error.RepoError(_("There is no Mercurial repository here"
6217
fe8dbbe9520d Avoid importing mercurial.node/mercurial.repo stuff from mercurial.hg
Joel Rosdahl <joel@rosdahl.net>
parents: 6212
diff changeset
3629 " (.hg not found)"))
2396
8d44649df03b refactor ssh server.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2392
diff changeset
3630 s = sshserver.sshserver(ui, repo)
8d44649df03b refactor ssh server.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2392
diff changeset
3631 s.serve_forever()
2363
fa4c11751367 Give a response to unknown SSH commands
Matt Mackall <mpm@selenic.com>
parents: 2362
diff changeset
3632
10635
27027bee318e serve: fix port config
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 10632
diff changeset
3633 # this way we can check if something was given in the command-line
27027bee318e serve: fix port config
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 10632
diff changeset
3634 if opts.get('port'):
12076
49463314c24f mail/hgweb: support service names for ports (issue2350)
Brodie Rao <brodie@bitheap.org>
parents: 12070
diff changeset
3635 opts['port'] = util.getport(opts.get('port'))
10635
27027bee318e serve: fix port config
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 10632
diff changeset
3636
8190
9b8ac5fb7760 ui: kill most users of parentui name and arg, replace with .copy()
Matt Mackall <mpm@selenic.com>
parents: 8189
diff changeset
3637 baseui = repo and repo.baseui or ui
5835
bd34f0ac3cb0 adding "prefix" option to "hg serve" (command line and [web] section)
Michele Cella <michele.cella@gmail.com>
parents: 5811
diff changeset
3638 optlist = ("name templates style address port prefix ipv6"
10644
63948e7d37f7 server: initialize wsgi app in command, then wrap server around it
Dirkjan Ochtman <djc.ochtman@kentyde.com>
parents: 10635
diff changeset
3639 " accesslog errorlog certificate encoding")
987
bfe12654764d hgweb: change startup argument processing
mpm@selenic.com
parents: 981
diff changeset
3640 for o in optlist.split():
10630
9947e6b008bb serve: fix options recording, trailing whitespace
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 10629
diff changeset
3641 val = opts.get(o, '')
10631
5247260cee6a make expression shorter, now the line fits into 80 chars
Thomas Arendsen Hein <thomas@intevation.de>
parents: 10630
diff changeset
3642 if val in (None, ''): # should check against default options instead
10630
9947e6b008bb serve: fix options recording, trailing whitespace
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 10629
diff changeset
3643 continue
9947e6b008bb serve: fix options recording, trailing whitespace
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 10629
diff changeset
3644 baseui.setconfig("web", o, val)
9947e6b008bb serve: fix options recording, trailing whitespace
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 10629
diff changeset
3645 if repo and repo.ui != baseui:
9947e6b008bb serve: fix options recording, trailing whitespace
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 10629
diff changeset
3646 repo.ui.setconfig("web", o, val)
987
bfe12654764d hgweb: change startup argument processing
mpm@selenic.com
parents: 981
diff changeset
3647
11003
aca9a7cf2c9a serve: webdir_conf -> webconf
Matt Mackall <mpm@selenic.com>
parents: 10993
diff changeset
3648 o = opts.get('web_conf') or opts.get('webdir_conf')
11004
7bb10d3dbcd6 hgweb: unify hgweb calls in serve
Matt Mackall <mpm@selenic.com>
parents: 11003
diff changeset
3649 if not o:
7bb10d3dbcd6 hgweb: unify hgweb calls in serve
Matt Mackall <mpm@selenic.com>
parents: 11003
diff changeset
3650 if not repo:
7bb10d3dbcd6 hgweb: unify hgweb calls in serve
Matt Mackall <mpm@selenic.com>
parents: 11003
diff changeset
3651 raise error.RepoError(_("There is no Mercurial repository"
7bb10d3dbcd6 hgweb: unify hgweb calls in serve
Matt Mackall <mpm@selenic.com>
parents: 11003
diff changeset
3652 " here (.hg not found)"))
7bb10d3dbcd6 hgweb: unify hgweb calls in serve
Matt Mackall <mpm@selenic.com>
parents: 11003
diff changeset
3653 o = repo.root
7bb10d3dbcd6 hgweb: unify hgweb calls in serve
Matt Mackall <mpm@selenic.com>
parents: 11003
diff changeset
3654
7bb10d3dbcd6 hgweb: unify hgweb calls in serve
Matt Mackall <mpm@selenic.com>
parents: 11003
diff changeset
3655 app = hgweb.hgweb(o, baseui=ui)
2127
8a85dbbadddf Allow 'hg serve --webdir-conf foo' to be run outside a repository.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 2125
diff changeset
3656
8778
c5f36402daad use new style classes
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 8761
diff changeset
3657 class service(object):
4380
e89f9afc462b Refactor commands.serve to allow other commands to run as services.
Bryan O'Sullivan <bos@serpentine.com>
parents: 4376
diff changeset
3658 def init(self):
4672
272c0a09b203 Handle CTRL+C in serve under Windows.
Marcos Chaves <marcos.nospam@gmail.com>
parents: 4659
diff changeset
3659 util.set_signal_handler()
11004
7bb10d3dbcd6 hgweb: unify hgweb calls in serve
Matt Mackall <mpm@selenic.com>
parents: 11003
diff changeset
3660 self.httpd = hgweb.server.create_server(ui, app)
4380
e89f9afc462b Refactor commands.serve to allow other commands to run as services.
Bryan O'Sullivan <bos@serpentine.com>
parents: 4376
diff changeset
3661
10629
d3f27d15c9cb serve: allow --port=0 to specify "server chooses the port number"
Bryan O'Sullivan <bos@serpentine.com>
parents: 10617
diff changeset
3662 if opts['port'] and not ui.verbose:
10282
08a0f04b56bd many, many trivial check-code fixups
Matt Mackall <mpm@selenic.com>
parents: 10270
diff changeset
3663 return
4380
e89f9afc462b Refactor commands.serve to allow other commands to run as services.
Bryan O'Sullivan <bos@serpentine.com>
parents: 4376
diff changeset
3664
5970
f25070ecf334 hgweb: fixes to make hg serve prefix handling more robust
Michele Cella <michele.cella@gmail.com>
parents: 5953
diff changeset
3665 if self.httpd.prefix:
f25070ecf334 hgweb: fixes to make hg serve prefix handling more robust
Michele Cella <michele.cella@gmail.com>
parents: 5953
diff changeset
3666 prefix = self.httpd.prefix.strip('/') + '/'
f25070ecf334 hgweb: fixes to make hg serve prefix handling more robust
Michele Cella <michele.cella@gmail.com>
parents: 5953
diff changeset
3667 else:
f25070ecf334 hgweb: fixes to make hg serve prefix handling more robust
Michele Cella <michele.cella@gmail.com>
parents: 5953
diff changeset
3668 prefix = ''
f25070ecf334 hgweb: fixes to make hg serve prefix handling more robust
Michele Cella <michele.cella@gmail.com>
parents: 5953
diff changeset
3669
6262
de7256c82fad hgweb: clarify which address and port can/cannot be bound at startup (bug 769)
Stephen Deasey <sdeasey@gmail.com>
parents: 6253
diff changeset
3670 port = ':%d' % self.httpd.port
de7256c82fad hgweb: clarify which address and port can/cannot be bound at startup (bug 769)
Stephen Deasey <sdeasey@gmail.com>
parents: 6253
diff changeset
3671 if port == ':80':
de7256c82fad hgweb: clarify which address and port can/cannot be bound at startup (bug 769)
Stephen Deasey <sdeasey@gmail.com>
parents: 6253
diff changeset
3672 port = ''
de7256c82fad hgweb: clarify which address and port can/cannot be bound at startup (bug 769)
Stephen Deasey <sdeasey@gmail.com>
parents: 6253
diff changeset
3673
6419
7c36aee46bf5 hg serve: add clearer message when starting the server with --verbose
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 6405
diff changeset
3674 bindaddr = self.httpd.addr
7c36aee46bf5 hg serve: add clearer message when starting the server with --verbose
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 6405
diff changeset
3675 if bindaddr == '0.0.0.0':
7c36aee46bf5 hg serve: add clearer message when starting the server with --verbose
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 6405
diff changeset
3676 bindaddr = '*'
7c36aee46bf5 hg serve: add clearer message when starting the server with --verbose
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 6405
diff changeset
3677 elif ':' in bindaddr: # IPv6
7c36aee46bf5 hg serve: add clearer message when starting the server with --verbose
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 6405
diff changeset
3678 bindaddr = '[%s]' % bindaddr
7c36aee46bf5 hg serve: add clearer message when starting the server with --verbose
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 6405
diff changeset
3679
7c36aee46bf5 hg serve: add clearer message when starting the server with --verbose
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 6405
diff changeset
3680 fqaddr = self.httpd.fqaddr
7c36aee46bf5 hg serve: add clearer message when starting the server with --verbose
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 6405
diff changeset
3681 if ':' in fqaddr:
7c36aee46bf5 hg serve: add clearer message when starting the server with --verbose
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 6405
diff changeset
3682 fqaddr = '[%s]' % fqaddr
10629
d3f27d15c9cb serve: allow --port=0 to specify "server chooses the port number"
Bryan O'Sullivan <bos@serpentine.com>
parents: 10617
diff changeset
3683 if opts['port']:
10630
9947e6b008bb serve: fix options recording, trailing whitespace
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 10629
diff changeset
3684 write = ui.status
10629
d3f27d15c9cb serve: allow --port=0 to specify "server chooses the port number"
Bryan O'Sullivan <bos@serpentine.com>
parents: 10617
diff changeset
3685 else:
d3f27d15c9cb serve: allow --port=0 to specify "server chooses the port number"
Bryan O'Sullivan <bos@serpentine.com>
parents: 10617
diff changeset
3686 write = ui.write
d3f27d15c9cb serve: allow --port=0 to specify "server chooses the port number"
Bryan O'Sullivan <bos@serpentine.com>
parents: 10617
diff changeset
3687 write(_('listening at http://%s%s/%s (bound to %s:%d)\n') %
d3f27d15c9cb serve: allow --port=0 to specify "server chooses the port number"
Bryan O'Sullivan <bos@serpentine.com>
parents: 10617
diff changeset
3688 (fqaddr, port, prefix, bindaddr, self.httpd.port))
4380
e89f9afc462b Refactor commands.serve to allow other commands to run as services.
Bryan O'Sullivan <bos@serpentine.com>
parents: 4376
diff changeset
3689
e89f9afc462b Refactor commands.serve to allow other commands to run as services.
Bryan O'Sullivan <bos@serpentine.com>
parents: 4376
diff changeset
3690 def run(self):
e89f9afc462b Refactor commands.serve to allow other commands to run as services.
Bryan O'Sullivan <bos@serpentine.com>
parents: 4376
diff changeset
3691 self.httpd.serve_forever()
e89f9afc462b Refactor commands.serve to allow other commands to run as services.
Bryan O'Sullivan <bos@serpentine.com>
parents: 4376
diff changeset
3692
e89f9afc462b Refactor commands.serve to allow other commands to run as services.
Bryan O'Sullivan <bos@serpentine.com>
parents: 4376
diff changeset
3693 service = service()
e89f9afc462b Refactor commands.serve to allow other commands to run as services.
Bryan O'Sullivan <bos@serpentine.com>
parents: 4376
diff changeset
3694
e89f9afc462b Refactor commands.serve to allow other commands to run as services.
Bryan O'Sullivan <bos@serpentine.com>
parents: 4376
diff changeset
3695 cmdutil.service(opts, initfn=service.init, runfn=service.run)
500
ebc4714a7632 [PATCH] Clean up destination directory if a clone fails.
mpm@selenic.com
parents: 499
diff changeset
3696
731
91ca3afab8e8 Add name matching to status command.
Bryan O'Sullivan <bos@serpentine.com>
parents: 729
diff changeset
3697 def status(ui, repo, *pats, **opts):
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
3698 """show changed files in the working directory
213
d2172916ef6c commands: migrate status and branch
mpm@selenic.com
parents: 212
diff changeset
3699
6448
cd3d49ffc6f6 Consistently 1 space after full stops in command doc strings
Christian Ebert <blacktrash@gmx.net>
parents: 6442
diff changeset
3700 Show status of files in the repository. If names are given, only
cd3d49ffc6f6 Consistently 1 space after full stops in command doc strings
Christian Ebert <blacktrash@gmx.net>
parents: 6442
diff changeset
3701 files that match are shown. Files that are clean or ignored or
8779
708938509732 Improve English for help text of many core hg commands.
timeless <timeless@gmail.com>
parents: 8778
diff changeset
3702 the source of a copy/move operation, are not listed unless
708938509732 Improve English for help text of many core hg commands.
timeless <timeless@gmail.com>
parents: 8778
diff changeset
3703 -c/--clean, -i/--ignored, -C/--copies or -A/--all are given.
708938509732 Improve English for help text of many core hg commands.
timeless <timeless@gmail.com>
parents: 8778
diff changeset
3704 Unless options described with "show only ..." are given, the
708938509732 Improve English for help text of many core hg commands.
timeless <timeless@gmail.com>
parents: 8778
diff changeset
3705 options -mardu are used.
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
3706
6201
305d4450036a Extend/correct acc40572da5b regarding -qA and ignored files.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 6200
diff changeset
3707 Option -q/--quiet hides untracked (unknown and ignored) files
8009
76e4c08a48ad commands: fix typo on flag description
Wagner Bruna <wbruna@yahoo.com>
parents: 8008
diff changeset
3708 unless explicitly requested with -u/--unknown or -i/--ignored.
6200
acc40572da5b 'hg status -q' output skips non-tracked files.
Zoran Bosnjak <zoran.bosnjak@via.si>
parents: 6192
diff changeset
3709
12390
aff4afdcfd2b Use more note admonitions in help texts
Christian Ebert <blacktrash@gmx.net>
parents: 12389
diff changeset
3710 .. note::
aff4afdcfd2b Use more note admonitions in help texts
Christian Ebert <blacktrash@gmx.net>
parents: 12389
diff changeset
3711 status may appear to disagree with diff if permissions have
aff4afdcfd2b Use more note admonitions in help texts
Christian Ebert <blacktrash@gmx.net>
parents: 12389
diff changeset
3712 changed or a merge has occurred. The standard diff format does
aff4afdcfd2b Use more note admonitions in help texts
Christian Ebert <blacktrash@gmx.net>
parents: 12389
diff changeset
3713 not report permission changes and diff only reports changes
aff4afdcfd2b Use more note admonitions in help texts
Christian Ebert <blacktrash@gmx.net>
parents: 12389
diff changeset
3714 relative to one merge parent.
3822
28134d82db9b Add notes about diff/merge asymmetry to export, diff, and log
Matt Mackall <mpm@selenic.com>
parents: 3815
diff changeset
3715
3467
2b3b703b3a2b Add --rev option to status
Brendan Cully <brendan@kublai.com>
parents: 3465
diff changeset
3716 If one revision is given, it is used as the base revision.
8779
708938509732 Improve English for help text of many core hg commands.
timeless <timeless@gmail.com>
parents: 8778
diff changeset
3717 If two revisions are given, the differences between them are
10014
54cd28258ea7 status: add the --change option to display files changed in a revision
Gilles Moris <gilles.moris@free.fr>
parents: 9983
diff changeset
3718 shown. The --change option can also be used as a shortcut to list
54cd28258ea7 status: add the --change option to display files changed in a revision
Gilles Moris <gilles.moris@free.fr>
parents: 9983
diff changeset
3719 the changed files of a revision from its first parent.
3467
2b3b703b3a2b Add --rev option to status
Brendan Cully <brendan@kublai.com>
parents: 3465
diff changeset
3720
9157
9261667e9b82 commands: use minirst parser when displaying help
Martin Geisler <mg@lazybytes.net>
parents: 9142
diff changeset
3721 The codes used to show the status of files are::
9261667e9b82 commands: use minirst parser when displaying help
Martin Geisler <mg@lazybytes.net>
parents: 9142
diff changeset
3722
9261667e9b82 commands: use minirst parser when displaying help
Martin Geisler <mg@lazybytes.net>
parents: 9142
diff changeset
3723 M = modified
9261667e9b82 commands: use minirst parser when displaying help
Martin Geisler <mg@lazybytes.net>
parents: 9142
diff changeset
3724 A = added
9261667e9b82 commands: use minirst parser when displaying help
Martin Geisler <mg@lazybytes.net>
parents: 9142
diff changeset
3725 R = removed
9261667e9b82 commands: use minirst parser when displaying help
Martin Geisler <mg@lazybytes.net>
parents: 9142
diff changeset
3726 C = clean
9261667e9b82 commands: use minirst parser when displaying help
Martin Geisler <mg@lazybytes.net>
parents: 9142
diff changeset
3727 ! = missing (deleted by non-hg command, but still tracked)
9261667e9b82 commands: use minirst parser when displaying help
Martin Geisler <mg@lazybytes.net>
parents: 9142
diff changeset
3728 ? = not tracked
9261667e9b82 commands: use minirst parser when displaying help
Martin Geisler <mg@lazybytes.net>
parents: 9142
diff changeset
3729 I = ignored
9261667e9b82 commands: use minirst parser when displaying help
Martin Geisler <mg@lazybytes.net>
parents: 9142
diff changeset
3730 = origin of the previous file listed as A (added)
11177
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
3731
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
3732 Returns 0 on success.
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
3733 """
312
09375250eb31 Optimize diff and status in subdirectories
mpm@selenic.com
parents: 310
diff changeset
3734
10014
54cd28258ea7 status: add the --change option to display files changed in a revision
Gilles Moris <gilles.moris@free.fr>
parents: 9983
diff changeset
3735 revs = opts.get('rev')
54cd28258ea7 status: add the --change option to display files changed in a revision
Gilles Moris <gilles.moris@free.fr>
parents: 9983
diff changeset
3736 change = opts.get('change')
54cd28258ea7 status: add the --change option to display files changed in a revision
Gilles Moris <gilles.moris@free.fr>
parents: 9983
diff changeset
3737
54cd28258ea7 status: add the --change option to display files changed in a revision
Gilles Moris <gilles.moris@free.fr>
parents: 9983
diff changeset
3738 if revs and change:
54cd28258ea7 status: add the --change option to display files changed in a revision
Gilles Moris <gilles.moris@free.fr>
parents: 9983
diff changeset
3739 msg = _('cannot specify --rev and --change at the same time')
54cd28258ea7 status: add the --change option to display files changed in a revision
Gilles Moris <gilles.moris@free.fr>
parents: 9983
diff changeset
3740 raise util.Abort(msg)
54cd28258ea7 status: add the --change option to display files changed in a revision
Gilles Moris <gilles.moris@free.fr>
parents: 9983
diff changeset
3741 elif change:
54cd28258ea7 status: add the --change option to display files changed in a revision
Gilles Moris <gilles.moris@free.fr>
parents: 9983
diff changeset
3742 node2 = repo.lookup(change)
54cd28258ea7 status: add the --change option to display files changed in a revision
Gilles Moris <gilles.moris@free.fr>
parents: 9983
diff changeset
3743 node1 = repo[node2].parents()[0].node()
54cd28258ea7 status: add the --change option to display files changed in a revision
Gilles Moris <gilles.moris@free.fr>
parents: 9983
diff changeset
3744 else:
54cd28258ea7 status: add the --change option to display files changed in a revision
Gilles Moris <gilles.moris@free.fr>
parents: 9983
diff changeset
3745 node1, node2 = cmdutil.revpair(repo, revs)
54cd28258ea7 status: add the --change option to display files changed in a revision
Gilles Moris <gilles.moris@free.fr>
parents: 9983
diff changeset
3746
1625
e1bcf7fa983f correct the relative path when walking from a subdir
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1622
diff changeset
3747 cwd = (pats and repo.getcwd()) or ''
7131
23bd7383891c commands: optional options where possible
Alexander Solovyov <piranha@piranha.org.ua>
parents: 7126
diff changeset
3748 end = opts.get('print0') and '\0' or '\n'
6276
c93ca83a3354 status: find copies and renames beyond the working directory
Matt Mackall <mpm@selenic.com>
parents: 6262
diff changeset
3749 copy = {}
6605
bf2bf986ff87 status: refactor status command
Matt Mackall <mpm@selenic.com>
parents: 6603
diff changeset
3750 states = 'modified added removed deleted unknown ignored clean'.split()
7684
ee3364d3d859 status: make options optional (issue1481)
Alexander Solovyov <piranha@piranha.org.ua>
parents: 7656
diff changeset
3751 show = [k for k in states if opts.get(k)]
7131
23bd7383891c commands: optional options where possible
Alexander Solovyov <piranha@piranha.org.ua>
parents: 7126
diff changeset
3752 if opts.get('all'):
6605
bf2bf986ff87 status: refactor status command
Matt Mackall <mpm@selenic.com>
parents: 6603
diff changeset
3753 show += ui.quiet and (states[:4] + ['clean']) or states
bf2bf986ff87 status: refactor status command
Matt Mackall <mpm@selenic.com>
parents: 6603
diff changeset
3754 if not show:
bf2bf986ff87 status: refactor status command
Matt Mackall <mpm@selenic.com>
parents: 6603
diff changeset
3755 show = ui.quiet and states[:4] or states[:5]
bf2bf986ff87 status: refactor status command
Matt Mackall <mpm@selenic.com>
parents: 6603
diff changeset
3756
bf2bf986ff87 status: refactor status command
Matt Mackall <mpm@selenic.com>
parents: 6603
diff changeset
3757 stat = repo.status(node1, node2, cmdutil.match(repo, pats, opts),
12166
441a74b8def1 status: recurse into subrepositories with --subrepos/-S flag
Martin Geisler <mg@lazybytes.net>
parents: 12132
diff changeset
3758 'ignored' in show, 'clean' in show, 'unknown' in show,
441a74b8def1 status: recurse into subrepositories with --subrepos/-S flag
Martin Geisler <mg@lazybytes.net>
parents: 12132
diff changeset
3759 opts.get('subrepos'))
6605
bf2bf986ff87 status: refactor status command
Matt Mackall <mpm@selenic.com>
parents: 6603
diff changeset
3760 changestates = zip(states, 'MAR!?IC', stat)
bf2bf986ff87 status: refactor status command
Matt Mackall <mpm@selenic.com>
parents: 6603
diff changeset
3761
7131
23bd7383891c commands: optional options where possible
Alexander Solovyov <piranha@piranha.org.ua>
parents: 7126
diff changeset
3762 if (opts.get('all') or opts.get('copies')) and not opts.get('no_status'):
6747
f6c00b17387c use repo[changeid] to get a changectx
Matt Mackall <mpm@selenic.com>
parents: 6746
diff changeset
3763 ctxn = repo[nullid]
f6c00b17387c use repo[changeid] to get a changectx
Matt Mackall <mpm@selenic.com>
parents: 6746
diff changeset
3764 ctx1 = repo[node1]
f6c00b17387c use repo[changeid] to get a changectx
Matt Mackall <mpm@selenic.com>
parents: 6746
diff changeset
3765 ctx2 = repo[node2]
6646
9eb274d773d9 copies: teach copies about dirstate.copies
Matt Mackall <mpm@selenic.com>
parents: 6642
diff changeset
3766 added = stat[1]
9eb274d773d9 copies: teach copies about dirstate.copies
Matt Mackall <mpm@selenic.com>
parents: 6642
diff changeset
3767 if node2 is None:
9eb274d773d9 copies: teach copies about dirstate.copies
Matt Mackall <mpm@selenic.com>
parents: 6642
diff changeset
3768 added = stat[0] + stat[1] # merged?
6740
b148e9099133 use repo.changectx(None) to get a workingctx
Matt Mackall <mpm@selenic.com>
parents: 6739
diff changeset
3769
7622
4dd7b28003d2 use dict.iteritems() rather than dict.items()
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 7598
diff changeset
3770 for k, v in copies.copies(repo, ctx1, ctx2, ctxn)[0].iteritems():
6646
9eb274d773d9 copies: teach copies about dirstate.copies
Matt Mackall <mpm@selenic.com>
parents: 6642
diff changeset
3771 if k in added:
9eb274d773d9 copies: teach copies about dirstate.copies
Matt Mackall <mpm@selenic.com>
parents: 6642
diff changeset
3772 copy[k] = v
9eb274d773d9 copies: teach copies about dirstate.copies
Matt Mackall <mpm@selenic.com>
parents: 6642
diff changeset
3773 elif v in added:
6276
c93ca83a3354 status: find copies and renames beyond the working directory
Matt Mackall <mpm@selenic.com>
parents: 6262
diff changeset
3774 copy[v] = k
c93ca83a3354 status: find copies and renames beyond the working directory
Matt Mackall <mpm@selenic.com>
parents: 6262
diff changeset
3775
6605
bf2bf986ff87 status: refactor status command
Matt Mackall <mpm@selenic.com>
parents: 6603
diff changeset
3776 for state, char, files in changestates:
bf2bf986ff87 status: refactor status command
Matt Mackall <mpm@selenic.com>
parents: 6603
diff changeset
3777 if state in show:
1966
f8b0e73e320f hg status cleanups: Don't translate long options, remove stray semicolon.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 1965
diff changeset
3778 format = "%s %%s%s" % (char, end)
7131
23bd7383891c commands: optional options where possible
Alexander Solovyov <piranha@piranha.org.ua>
parents: 7126
diff changeset
3779 if opts.get('no_status'):
6605
bf2bf986ff87 status: refactor status command
Matt Mackall <mpm@selenic.com>
parents: 6603
diff changeset
3780 format = "%%s%s" % end
bf2bf986ff87 status: refactor status command
Matt Mackall <mpm@selenic.com>
parents: 6603
diff changeset
3781
bf2bf986ff87 status: refactor status command
Matt Mackall <mpm@selenic.com>
parents: 6603
diff changeset
3782 for f in files:
10817
2096496b40ec status: make use of output labeling
Brodie Rao <brodie@bitheap.org>
parents: 10816
diff changeset
3783 ui.write(format % repo.pathto(f, cwd),
2096496b40ec status: make use of output labeling
Brodie Rao <brodie@bitheap.org>
parents: 10816
diff changeset
3784 label='status.' + state)
6605
bf2bf986ff87 status: refactor status command
Matt Mackall <mpm@selenic.com>
parents: 6603
diff changeset
3785 if f in copy:
10817
2096496b40ec status: make use of output labeling
Brodie Rao <brodie@bitheap.org>
parents: 10816
diff changeset
3786 ui.write(' %s%s' % (repo.pathto(copy[f], cwd), end),
2096496b40ec status: make use of output labeling
Brodie Rao <brodie@bitheap.org>
parents: 10816
diff changeset
3787 label='status.copied')
213
d2172916ef6c commands: migrate status and branch
mpm@selenic.com
parents: 212
diff changeset
3788
9620
a7ef354da662 summary: add --remote
Matt Mackall <mpm@selenic.com>
parents: 9619
diff changeset
3789 def summary(ui, repo, **opts):
9603
220d39af2e57 Introduce summary command
Matt Mackall <mpm@selenic.com>
parents: 9584
diff changeset
3790 """summarize working directory state
220d39af2e57 Introduce summary command
Matt Mackall <mpm@selenic.com>
parents: 9584
diff changeset
3791
220d39af2e57 Introduce summary command
Matt Mackall <mpm@selenic.com>
parents: 9584
diff changeset
3792 This generates a brief summary of the working directory state,
220d39af2e57 Introduce summary command
Matt Mackall <mpm@selenic.com>
parents: 9584
diff changeset
3793 including parents, branch, commit status, and available updates.
9620
a7ef354da662 summary: add --remote
Matt Mackall <mpm@selenic.com>
parents: 9619
diff changeset
3794
a7ef354da662 summary: add --remote
Matt Mackall <mpm@selenic.com>
parents: 9619
diff changeset
3795 With the --remote option, this will check the default paths for
a7ef354da662 summary: add --remote
Matt Mackall <mpm@selenic.com>
parents: 9619
diff changeset
3796 incoming and outgoing changes. This can be time-consuming.
11177
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
3797
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
3798 Returns 0 on success.
9603
220d39af2e57 Introduce summary command
Matt Mackall <mpm@selenic.com>
parents: 9584
diff changeset
3799 """
220d39af2e57 Introduce summary command
Matt Mackall <mpm@selenic.com>
parents: 9584
diff changeset
3800
220d39af2e57 Introduce summary command
Matt Mackall <mpm@selenic.com>
parents: 9584
diff changeset
3801 ctx = repo[None]
220d39af2e57 Introduce summary command
Matt Mackall <mpm@selenic.com>
parents: 9584
diff changeset
3802 parents = ctx.parents()
220d39af2e57 Introduce summary command
Matt Mackall <mpm@selenic.com>
parents: 9584
diff changeset
3803 pnode = parents[0].node()
220d39af2e57 Introduce summary command
Matt Mackall <mpm@selenic.com>
parents: 9584
diff changeset
3804
220d39af2e57 Introduce summary command
Matt Mackall <mpm@selenic.com>
parents: 9584
diff changeset
3805 for p in parents:
10832
420bc8124904 summary: make use of output labeling
Eric Eisner <ede@mit.edu>
parents: 10830
diff changeset
3806 # label with log.changeset (instead of log.parent) since this
420bc8124904 summary: make use of output labeling
Eric Eisner <ede@mit.edu>
parents: 10830
diff changeset
3807 # shows a working directory parent *changeset*:
420bc8124904 summary: make use of output labeling
Eric Eisner <ede@mit.edu>
parents: 10830
diff changeset
3808 ui.write(_('parent: %d:%s ') % (p.rev(), str(p)),
420bc8124904 summary: make use of output labeling
Eric Eisner <ede@mit.edu>
parents: 10830
diff changeset
3809 label='log.changeset')
10833
d7b601f1e02c commands: retrieve tags from context object
Martin Geisler <mg@lazybytes.net>
parents: 10832
diff changeset
3810 ui.write(' '.join(p.tags()), label='log.tag')
13454
afc84a879ac8 summary: add bookmarks to summary
David Soria Parra <dsp@php.net>
parents: 13453
diff changeset
3811 if p.bookmarks():
afc84a879ac8 summary: add bookmarks to summary
David Soria Parra <dsp@php.net>
parents: 13453
diff changeset
3812 ui.write(' ' + ' '.join(p.bookmarks()), label='log.bookmark')
9618
d75a309a24b1 summary: add empty repository and no revision checked out hints
Matt Mackall <mpm@selenic.com>
parents: 9617
diff changeset
3813 if p.rev() == -1:
d75a309a24b1 summary: add empty repository and no revision checked out hints
Matt Mackall <mpm@selenic.com>
parents: 9617
diff changeset
3814 if not len(repo):
10834
4ab459a6c25c commands: small refactoring in summary
Martin Geisler <mg@lazybytes.net>
parents: 10833
diff changeset
3815 ui.write(_(' (empty repository)'))
9618
d75a309a24b1 summary: add empty repository and no revision checked out hints
Matt Mackall <mpm@selenic.com>
parents: 9617
diff changeset
3816 else:
10834
4ab459a6c25c commands: small refactoring in summary
Martin Geisler <mg@lazybytes.net>
parents: 10833
diff changeset
3817 ui.write(_(' (no revision checked out)'))
10832
420bc8124904 summary: make use of output labeling
Eric Eisner <ede@mit.edu>
parents: 10830
diff changeset
3818 ui.write('\n')
9618
d75a309a24b1 summary: add empty repository and no revision checked out hints
Matt Mackall <mpm@selenic.com>
parents: 9617
diff changeset
3819 if p.description():
10832
420bc8124904 summary: make use of output labeling
Eric Eisner <ede@mit.edu>
parents: 10830
diff changeset
3820 ui.status(' ' + p.description().splitlines()[0].strip() + '\n',
420bc8124904 summary: make use of output labeling
Eric Eisner <ede@mit.edu>
parents: 10830
diff changeset
3821 label='log.summary')
9603
220d39af2e57 Introduce summary command
Matt Mackall <mpm@selenic.com>
parents: 9584
diff changeset
3822
220d39af2e57 Introduce summary command
Matt Mackall <mpm@selenic.com>
parents: 9584
diff changeset
3823 branch = ctx.branch()
220d39af2e57 Introduce summary command
Matt Mackall <mpm@selenic.com>
parents: 9584
diff changeset
3824 bheads = repo.branchheads(branch)
9873
541218fbad2a summary: note non-default branches with -q
Matt Mackall <mpm@selenic.com>
parents: 9857
diff changeset
3825 m = _('branch: %s\n') % branch
541218fbad2a summary: note non-default branches with -q
Matt Mackall <mpm@selenic.com>
parents: 9857
diff changeset
3826 if branch != 'default':
10832
420bc8124904 summary: make use of output labeling
Eric Eisner <ede@mit.edu>
parents: 10830
diff changeset
3827 ui.write(m, label='log.branch')
9873
541218fbad2a summary: note non-default branches with -q
Matt Mackall <mpm@selenic.com>
parents: 9857
diff changeset
3828 else:
10832
420bc8124904 summary: make use of output labeling
Eric Eisner <ede@mit.edu>
parents: 10830
diff changeset
3829 ui.status(m, label='log.branch')
9603
220d39af2e57 Introduce summary command
Matt Mackall <mpm@selenic.com>
parents: 9584
diff changeset
3830
10390
f163775e36e0 summary: various fixes, add a test
Matt Mackall <mpm@selenic.com>
parents: 10389
diff changeset
3831 st = list(repo.status(unknown=True))[:6]
11088
c4347e48b0d0 summary: add subrepo status
Matt Mackall <mpm@selenic.com>
parents: 11078
diff changeset
3832
11331
997ab9af81df summary: report copies and renames
Matt Mackall <mpm@selenic.com>
parents: 11321
diff changeset
3833 c = repo.dirstate.copies()
997ab9af81df summary: report copies and renames
Matt Mackall <mpm@selenic.com>
parents: 11321
diff changeset
3834 copied, renamed = [], []
997ab9af81df summary: report copies and renames
Matt Mackall <mpm@selenic.com>
parents: 11321
diff changeset
3835 for d, s in c.iteritems():
997ab9af81df summary: report copies and renames
Matt Mackall <mpm@selenic.com>
parents: 11321
diff changeset
3836 if s in st[2]:
997ab9af81df summary: report copies and renames
Matt Mackall <mpm@selenic.com>
parents: 11321
diff changeset
3837 st[2].remove(s)
997ab9af81df summary: report copies and renames
Matt Mackall <mpm@selenic.com>
parents: 11321
diff changeset
3838 renamed.append(d)
997ab9af81df summary: report copies and renames
Matt Mackall <mpm@selenic.com>
parents: 11321
diff changeset
3839 else:
997ab9af81df summary: report copies and renames
Matt Mackall <mpm@selenic.com>
parents: 11321
diff changeset
3840 copied.append(d)
997ab9af81df summary: report copies and renames
Matt Mackall <mpm@selenic.com>
parents: 11321
diff changeset
3841 if d in st[1]:
997ab9af81df summary: report copies and renames
Matt Mackall <mpm@selenic.com>
parents: 11321
diff changeset
3842 st[1].remove(d)
997ab9af81df summary: report copies and renames
Matt Mackall <mpm@selenic.com>
parents: 11321
diff changeset
3843 st.insert(3, renamed)
997ab9af81df summary: report copies and renames
Matt Mackall <mpm@selenic.com>
parents: 11321
diff changeset
3844 st.insert(4, copied)
997ab9af81df summary: report copies and renames
Matt Mackall <mpm@selenic.com>
parents: 11321
diff changeset
3845
10651
5f091fc1bab7 style: use consistent variable names (*mod) with imports which would shadow
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 10650
diff changeset
3846 ms = mergemod.mergestate(repo)
10390
f163775e36e0 summary: various fixes, add a test
Matt Mackall <mpm@selenic.com>
parents: 10389
diff changeset
3847 st.append([f for f in ms if ms[f] == 'u'])
11088
c4347e48b0d0 summary: add subrepo status
Matt Mackall <mpm@selenic.com>
parents: 11078
diff changeset
3848
c4347e48b0d0 summary: add subrepo status
Matt Mackall <mpm@selenic.com>
parents: 11078
diff changeset
3849 subs = [s for s in ctx.substate if ctx.sub(s).dirty()]
c4347e48b0d0 summary: add subrepo status
Matt Mackall <mpm@selenic.com>
parents: 11078
diff changeset
3850 st.append(subs)
c4347e48b0d0 summary: add subrepo status
Matt Mackall <mpm@selenic.com>
parents: 11078
diff changeset
3851
10832
420bc8124904 summary: make use of output labeling
Eric Eisner <ede@mit.edu>
parents: 10830
diff changeset
3852 labels = [ui.label(_('%d modified'), 'status.modified'),
420bc8124904 summary: make use of output labeling
Eric Eisner <ede@mit.edu>
parents: 10830
diff changeset
3853 ui.label(_('%d added'), 'status.added'),
420bc8124904 summary: make use of output labeling
Eric Eisner <ede@mit.edu>
parents: 10830
diff changeset
3854 ui.label(_('%d removed'), 'status.removed'),
11331
997ab9af81df summary: report copies and renames
Matt Mackall <mpm@selenic.com>
parents: 11321
diff changeset
3855 ui.label(_('%d renamed'), 'status.copied'),
997ab9af81df summary: report copies and renames
Matt Mackall <mpm@selenic.com>
parents: 11321
diff changeset
3856 ui.label(_('%d copied'), 'status.copied'),
10832
420bc8124904 summary: make use of output labeling
Eric Eisner <ede@mit.edu>
parents: 10830
diff changeset
3857 ui.label(_('%d deleted'), 'status.deleted'),
420bc8124904 summary: make use of output labeling
Eric Eisner <ede@mit.edu>
parents: 10830
diff changeset
3858 ui.label(_('%d unknown'), 'status.unknown'),
420bc8124904 summary: make use of output labeling
Eric Eisner <ede@mit.edu>
parents: 10830
diff changeset
3859 ui.label(_('%d ignored'), 'status.ignored'),
11088
c4347e48b0d0 summary: add subrepo status
Matt Mackall <mpm@selenic.com>
parents: 11078
diff changeset
3860 ui.label(_('%d unresolved'), 'resolve.unresolved'),
c4347e48b0d0 summary: add subrepo status
Matt Mackall <mpm@selenic.com>
parents: 11078
diff changeset
3861 ui.label(_('%d subrepos'), 'status.modified')]
9603
220d39af2e57 Introduce summary command
Matt Mackall <mpm@selenic.com>
parents: 9584
diff changeset
3862 t = []
10282
08a0f04b56bd many, many trivial check-code fixups
Matt Mackall <mpm@selenic.com>
parents: 10270
diff changeset
3863 for s, l in zip(st, labels):
9607
8e0e0d854b60 commands: do not split a translated string
Martin Geisler <mg@lazybytes.net>
parents: 9603
diff changeset
3864 if s:
8e0e0d854b60 commands: do not split a translated string
Martin Geisler <mg@lazybytes.net>
parents: 9603
diff changeset
3865 t.append(l % len(s))
9603
220d39af2e57 Introduce summary command
Matt Mackall <mpm@selenic.com>
parents: 9584
diff changeset
3866
220d39af2e57 Introduce summary command
Matt Mackall <mpm@selenic.com>
parents: 9584
diff changeset
3867 t = ', '.join(t)
10269
acf001ee5ef8 summary: L10N messages hide clean-ness of workdir from 'hg summary'
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 10263
diff changeset
3868 cleanworkdir = False
9603
220d39af2e57 Introduce summary command
Matt Mackall <mpm@selenic.com>
parents: 9584
diff changeset
3869
220d39af2e57 Introduce summary command
Matt Mackall <mpm@selenic.com>
parents: 9584
diff changeset
3870 if len(parents) > 1:
11310
ac873ecfc3c2 Backed out changeset: e1dde7363601
Steve Borho <steve@borho.org>
parents: 11302
diff changeset
3871 t += _(' (merge)')
9603
220d39af2e57 Introduce summary command
Matt Mackall <mpm@selenic.com>
parents: 9584
diff changeset
3872 elif branch != parents[0].branch():
11310
ac873ecfc3c2 Backed out changeset: e1dde7363601
Steve Borho <steve@borho.org>
parents: 11302
diff changeset
3873 t += _(' (new branch)')
11165
e8915e19205a summary: show if commit will be from a closed head
Gilles Moris <gilles.moris@free.fr>
parents: 11164
diff changeset
3874 elif (parents[0].extra().get('close') and
e8915e19205a summary: show if commit will be from a closed head
Gilles Moris <gilles.moris@free.fr>
parents: 11164
diff changeset
3875 pnode in repo.branchheads(branch, closed=True)):
11310
ac873ecfc3c2 Backed out changeset: e1dde7363601
Steve Borho <steve@borho.org>
parents: 11302
diff changeset
3876 t += _(' (head closed)')
11331
997ab9af81df summary: report copies and renames
Matt Mackall <mpm@selenic.com>
parents: 11321
diff changeset
3877 elif not (st[0] or st[1] or st[2] or st[3] or st[4] or st[9]):
11310
ac873ecfc3c2 Backed out changeset: e1dde7363601
Steve Borho <steve@borho.org>
parents: 11302
diff changeset
3878 t += _(' (clean)')
10269
acf001ee5ef8 summary: L10N messages hide clean-ness of workdir from 'hg summary'
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 10263
diff changeset
3879 cleanworkdir = True
9603
220d39af2e57 Introduce summary command
Matt Mackall <mpm@selenic.com>
parents: 9584
diff changeset
3880 elif pnode not in bheads:
11310
ac873ecfc3c2 Backed out changeset: e1dde7363601
Steve Borho <steve@borho.org>
parents: 11302
diff changeset
3881 t += _(' (new branch head)')
9603
220d39af2e57 Introduce summary command
Matt Mackall <mpm@selenic.com>
parents: 9584
diff changeset
3882
10269
acf001ee5ef8 summary: L10N messages hide clean-ness of workdir from 'hg summary'
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 10263
diff changeset
3883 if cleanworkdir:
11310
ac873ecfc3c2 Backed out changeset: e1dde7363601
Steve Borho <steve@borho.org>
parents: 11302
diff changeset
3884 ui.status(_('commit: %s\n') % t.strip())
9605
3194227a4158 summary: quieter with -q
Matt Mackall <mpm@selenic.com>
parents: 9604
diff changeset
3885 else:
11310
ac873ecfc3c2 Backed out changeset: e1dde7363601
Steve Borho <steve@borho.org>
parents: 11302
diff changeset
3886 ui.write(_('commit: %s\n') % t.strip())
9603
220d39af2e57 Introduce summary command
Matt Mackall <mpm@selenic.com>
parents: 9584
diff changeset
3887
220d39af2e57 Introduce summary command
Matt Mackall <mpm@selenic.com>
parents: 9584
diff changeset
3888 # all ancestors of branch heads - all ancestors of parent = new csets
220d39af2e57 Introduce summary command
Matt Mackall <mpm@selenic.com>
parents: 9584
diff changeset
3889 new = [0] * len(repo)
220d39af2e57 Introduce summary command
Matt Mackall <mpm@selenic.com>
parents: 9584
diff changeset
3890 cl = repo.changelog
10390
f163775e36e0 summary: various fixes, add a test
Matt Mackall <mpm@selenic.com>
parents: 10389
diff changeset
3891 for a in [cl.rev(n) for n in bheads]:
f163775e36e0 summary: various fixes, add a test
Matt Mackall <mpm@selenic.com>
parents: 10389
diff changeset
3892 new[a] = 1
9603
220d39af2e57 Introduce summary command
Matt Mackall <mpm@selenic.com>
parents: 9584
diff changeset
3893 for a in cl.ancestors(*[cl.rev(n) for n in bheads]):
220d39af2e57 Introduce summary command
Matt Mackall <mpm@selenic.com>
parents: 9584
diff changeset
3894 new[a] = 1
10390
f163775e36e0 summary: various fixes, add a test
Matt Mackall <mpm@selenic.com>
parents: 10389
diff changeset
3895 for a in [p.rev() for p in parents]:
f163775e36e0 summary: various fixes, add a test
Matt Mackall <mpm@selenic.com>
parents: 10389
diff changeset
3896 if a >= 0:
f163775e36e0 summary: various fixes, add a test
Matt Mackall <mpm@selenic.com>
parents: 10389
diff changeset
3897 new[a] = 0
9603
220d39af2e57 Introduce summary command
Matt Mackall <mpm@selenic.com>
parents: 9584
diff changeset
3898 for a in cl.ancestors(*[p.rev() for p in parents]):
220d39af2e57 Introduce summary command
Matt Mackall <mpm@selenic.com>
parents: 9584
diff changeset
3899 new[a] = 0
220d39af2e57 Introduce summary command
Matt Mackall <mpm@selenic.com>
parents: 9584
diff changeset
3900 new = sum(new)
220d39af2e57 Introduce summary command
Matt Mackall <mpm@selenic.com>
parents: 9584
diff changeset
3901
220d39af2e57 Introduce summary command
Matt Mackall <mpm@selenic.com>
parents: 9584
diff changeset
3902 if new == 0:
9605
3194227a4158 summary: quieter with -q
Matt Mackall <mpm@selenic.com>
parents: 9604
diff changeset
3903 ui.status(_('update: (current)\n'))
9603
220d39af2e57 Introduce summary command
Matt Mackall <mpm@selenic.com>
parents: 9584
diff changeset
3904 elif pnode not in bheads:
220d39af2e57 Introduce summary command
Matt Mackall <mpm@selenic.com>
parents: 9584
diff changeset
3905 ui.write(_('update: %d new changesets (update)\n') % new)
220d39af2e57 Introduce summary command
Matt Mackall <mpm@selenic.com>
parents: 9584
diff changeset
3906 else:
220d39af2e57 Introduce summary command
Matt Mackall <mpm@selenic.com>
parents: 9584
diff changeset
3907 ui.write(_('update: %d new changesets, %d branch heads (merge)\n') %
220d39af2e57 Introduce summary command
Matt Mackall <mpm@selenic.com>
parents: 9584
diff changeset
3908 (new, len(bheads)))
220d39af2e57 Introduce summary command
Matt Mackall <mpm@selenic.com>
parents: 9584
diff changeset
3909
9620
a7ef354da662 summary: add --remote
Matt Mackall <mpm@selenic.com>
parents: 9619
diff changeset
3910 if opts.get('remote'):
a7ef354da662 summary: add --remote
Matt Mackall <mpm@selenic.com>
parents: 9619
diff changeset
3911 t = []
10389
6dc25b01e170 fix remaining hg.parseurl uses
Sune Foldager <cryo@cyanite.org>
parents: 10384
diff changeset
3912 source, branches = hg.parseurl(ui.expandpath('default'))
11273
d1908cb95a82 remoteui: move from cmdutil to hg
Matt Mackall <mpm@selenic.com>
parents: 11219
diff changeset
3913 other = hg.repository(hg.remoteui(repo, {}), source)
10389
6dc25b01e170 fix remaining hg.parseurl uses
Sune Foldager <cryo@cyanite.org>
parents: 10384
diff changeset
3914 revs, checkout = hg.addbranchrevs(repo, other, branches, opts.get('rev'))
9620
a7ef354da662 summary: add --remote
Matt Mackall <mpm@selenic.com>
parents: 9619
diff changeset
3915 ui.debug('comparing with %s\n' % url.hidepassword(source))
a7ef354da662 summary: add --remote
Matt Mackall <mpm@selenic.com>
parents: 9619
diff changeset
3916 repo.ui.pushbuffer()
11301
3d0591a66118 move discovery methods from localrepo into new discovery module
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 11297
diff changeset
3917 common, incoming, rheads = discovery.findcommonincoming(repo, other)
9620
a7ef354da662 summary: add --remote
Matt Mackall <mpm@selenic.com>
parents: 9619
diff changeset
3918 repo.ui.popbuffer()
a7ef354da662 summary: add --remote
Matt Mackall <mpm@selenic.com>
parents: 9619
diff changeset
3919 if incoming:
a7ef354da662 summary: add --remote
Matt Mackall <mpm@selenic.com>
parents: 9619
diff changeset
3920 t.append(_('1 or more incoming'))
a7ef354da662 summary: add --remote
Matt Mackall <mpm@selenic.com>
parents: 9619
diff changeset
3921
10389
6dc25b01e170 fix remaining hg.parseurl uses
Sune Foldager <cryo@cyanite.org>
parents: 10384
diff changeset
3922 dest, branches = hg.parseurl(ui.expandpath('default-push', 'default'))
6dc25b01e170 fix remaining hg.parseurl uses
Sune Foldager <cryo@cyanite.org>
parents: 10384
diff changeset
3923 revs, checkout = hg.addbranchrevs(repo, repo, branches, None)
11273
d1908cb95a82 remoteui: move from cmdutil to hg
Matt Mackall <mpm@selenic.com>
parents: 11219
diff changeset
3924 other = hg.repository(hg.remoteui(repo, {}), dest)
9620
a7ef354da662 summary: add --remote
Matt Mackall <mpm@selenic.com>
parents: 9619
diff changeset
3925 ui.debug('comparing with %s\n' % url.hidepassword(dest))
a7ef354da662 summary: add --remote
Matt Mackall <mpm@selenic.com>
parents: 9619
diff changeset
3926 repo.ui.pushbuffer()
11301
3d0591a66118 move discovery methods from localrepo into new discovery module
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 11297
diff changeset
3927 o = discovery.findoutgoing(repo, other)
9620
a7ef354da662 summary: add --remote
Matt Mackall <mpm@selenic.com>
parents: 9619
diff changeset
3928 repo.ui.popbuffer()
10390
f163775e36e0 summary: various fixes, add a test
Matt Mackall <mpm@selenic.com>
parents: 10389
diff changeset
3929 o = repo.changelog.nodesbetween(o, None)[0]
9620
a7ef354da662 summary: add --remote
Matt Mackall <mpm@selenic.com>
parents: 9619
diff changeset
3930 if o:
a7ef354da662 summary: add --remote
Matt Mackall <mpm@selenic.com>
parents: 9619
diff changeset
3931 t.append(_('%d outgoing') % len(o))
13454
afc84a879ac8 summary: add bookmarks to summary
David Soria Parra <dsp@php.net>
parents: 13453
diff changeset
3932 if 'bookmarks' in other.listkeys('namespaces'):
afc84a879ac8 summary: add bookmarks to summary
David Soria Parra <dsp@php.net>
parents: 13453
diff changeset
3933 lmarks = repo.listkeys('bookmarks')
afc84a879ac8 summary: add bookmarks to summary
David Soria Parra <dsp@php.net>
parents: 13453
diff changeset
3934 rmarks = other.listkeys('bookmarks')
afc84a879ac8 summary: add bookmarks to summary
David Soria Parra <dsp@php.net>
parents: 13453
diff changeset
3935 diff = set(rmarks) - set(lmarks)
afc84a879ac8 summary: add bookmarks to summary
David Soria Parra <dsp@php.net>
parents: 13453
diff changeset
3936 if len(diff) > 0:
afc84a879ac8 summary: add bookmarks to summary
David Soria Parra <dsp@php.net>
parents: 13453
diff changeset
3937 t.append(_('%d incoming bookmarks') % len(diff))
afc84a879ac8 summary: add bookmarks to summary
David Soria Parra <dsp@php.net>
parents: 13453
diff changeset
3938 diff = set(lmarks) - set(rmarks)
afc84a879ac8 summary: add bookmarks to summary
David Soria Parra <dsp@php.net>
parents: 13453
diff changeset
3939 if len(diff) > 0:
afc84a879ac8 summary: add bookmarks to summary
David Soria Parra <dsp@php.net>
parents: 13453
diff changeset
3940 t.append(_('%d outgoing bookmarks') % len(diff))
9620
a7ef354da662 summary: add --remote
Matt Mackall <mpm@selenic.com>
parents: 9619
diff changeset
3941
a7ef354da662 summary: add --remote
Matt Mackall <mpm@selenic.com>
parents: 9619
diff changeset
3942 if t:
a7ef354da662 summary: add --remote
Matt Mackall <mpm@selenic.com>
parents: 9619
diff changeset
3943 ui.write(_('remote: %s\n') % (', '.join(t)))
a7ef354da662 summary: add --remote
Matt Mackall <mpm@selenic.com>
parents: 9619
diff changeset
3944 else:
a7ef354da662 summary: add --remote
Matt Mackall <mpm@selenic.com>
parents: 9619
diff changeset
3945 ui.status(_('remote: (synced)\n'))
a7ef354da662 summary: add --remote
Matt Mackall <mpm@selenic.com>
parents: 9619
diff changeset
3946
6321
55ba3bc5b8fd tag: allow multiple tags to be added or removed
John Coomes <john.coomes@sun.com>
parents: 6304
diff changeset
3947 def tag(ui, repo, name1, *names, **opts):
55ba3bc5b8fd tag: allow multiple tags to be added or removed
John Coomes <john.coomes@sun.com>
parents: 6304
diff changeset
3948 """add one or more tags for the current or given revision
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
3949
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
3950 Name a particular revision using <name>.
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
3951
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
3952 Tags are used to name particular revisions of the repository and are
6220
1939e29151ca Fixed typo in tag help, found by John Coomes
Thomas Arendsen Hein <thomas@intevation.de>
parents: 6217
diff changeset
3953 very useful to compare different revisions, to go back to significant
13135
1c1ca9d393f4 tag: abort if not at a branch head (issue2552)
Kevin Bullock <kbullock@ringworld.org>
parents: 13134
diff changeset
3954 earlier versions or to mark branch points as releases, etc. Changing
1c1ca9d393f4 tag: abort if not at a branch head (issue2552)
Kevin Bullock <kbullock@ringworld.org>
parents: 13134
diff changeset
3955 an existing tag is normally disallowed; use -f/--force to override.
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
3956
8004
d5b1b846f277 commands: word-wrap help texts at 70 characters
Martin Geisler <mg@daimi.au.dk>
parents: 7983
diff changeset
3957 If no revision is given, the parent of the working directory is
d5b1b846f277 commands: word-wrap help texts at 70 characters
Martin Geisler <mg@daimi.au.dk>
parents: 7983
diff changeset
3958 used, or tip if no revision is checked out.
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
3959
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
3960 To facilitate version control, distribution, and merging of tags,
13135
1c1ca9d393f4 tag: abort if not at a branch head (issue2552)
Kevin Bullock <kbullock@ringworld.org>
parents: 13134
diff changeset
3961 they are stored as a file named ".hgtags" which is managed similarly
1c1ca9d393f4 tag: abort if not at a branch head (issue2552)
Kevin Bullock <kbullock@ringworld.org>
parents: 13134
diff changeset
3962 to other project files and can be hand-edited if necessary. This
1c1ca9d393f4 tag: abort if not at a branch head (issue2552)
Kevin Bullock <kbullock@ringworld.org>
parents: 13134
diff changeset
3963 also means that tagging creates a new commit. The file
1c1ca9d393f4 tag: abort if not at a branch head (issue2552)
Kevin Bullock <kbullock@ringworld.org>
parents: 13134
diff changeset
3964 ".hg/localtags" is used for local tags (not shared among
1c1ca9d393f4 tag: abort if not at a branch head (issue2552)
Kevin Bullock <kbullock@ringworld.org>
parents: 13134
diff changeset
3965 repositories).
1c1ca9d393f4 tag: abort if not at a branch head (issue2552)
Kevin Bullock <kbullock@ringworld.org>
parents: 13134
diff changeset
3966
1c1ca9d393f4 tag: abort if not at a branch head (issue2552)
Kevin Bullock <kbullock@ringworld.org>
parents: 13134
diff changeset
3967 Tag commits are usually made at the head of a branch. If the parent
1c1ca9d393f4 tag: abort if not at a branch head (issue2552)
Kevin Bullock <kbullock@ringworld.org>
parents: 13134
diff changeset
3968 of the working directory is not a branch head, :hg:`tag` aborts; use
1c1ca9d393f4 tag: abort if not at a branch head (issue2552)
Kevin Bullock <kbullock@ringworld.org>
parents: 13134
diff changeset
3969 -f/--force to force the tag commit to be based on a non-head
1c1ca9d393f4 tag: abort if not at a branch head (issue2552)
Kevin Bullock <kbullock@ringworld.org>
parents: 13134
diff changeset
3970 changeset.
6163
1f733c2f0165 Document log date ranges and mention 'hg help dates' for all commands (issue998)
Thomas Arendsen Hein <thomas@intevation.de>
parents: 6161
diff changeset
3971
10973
49a07f441496 Use hg role in help strings
Martin Geisler <mg@aragost.com>
parents: 10963
diff changeset
3972 See :hg:`help dates` for a list of formats valid for -d/--date.
11063
eb23c876c111 tag: warn users about tag/branch possible name conflicts
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11061
diff changeset
3973
eb23c876c111 tag: warn users about tag/branch possible name conflicts
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11061
diff changeset
3974 Since tag names have priority over branch names during revision
eb23c876c111 tag: warn users about tag/branch possible name conflicts
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 11061
diff changeset
3975 lookup, using an existing branch name as a tag name is discouraged.
11177
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
3976
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
3977 Returns 0 on success.
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
3978 """
6321
55ba3bc5b8fd tag: allow multiple tags to be added or removed
John Coomes <john.coomes@sun.com>
parents: 6304
diff changeset
3979
6739
c9fbd6ec3489 context: avoid using None for working parent
Matt Mackall <mpm@selenic.com>
parents: 6723
diff changeset
3980 rev_ = "."
11169
3d0a9c8d7184 tag: strip whitespace from tag names (issue2174)
Matt Mackall <mpm@selenic.com>
parents: 11165
diff changeset
3981 names = [t.strip() for t in (name1,) + names]
8152
08e1baf924ca replace set-like dictionaries with real sets
Martin Geisler <mg@lazybytes.net>
parents: 8150
diff changeset
3982 if len(names) != len(set(names)):
6321
55ba3bc5b8fd tag: allow multiple tags to be added or removed
John Coomes <john.coomes@sun.com>
parents: 6304
diff changeset
3983 raise util.Abort(_('tag names must be unique'))
55ba3bc5b8fd tag: allow multiple tags to be added or removed
John Coomes <john.coomes@sun.com>
parents: 6304
diff changeset
3984 for n in names:
55ba3bc5b8fd tag: allow multiple tags to be added or removed
John Coomes <john.coomes@sun.com>
parents: 6304
diff changeset
3985 if n in ['tip', '.', 'null']:
55ba3bc5b8fd tag: allow multiple tags to be added or removed
John Coomes <john.coomes@sun.com>
parents: 6304
diff changeset
3986 raise util.Abort(_('the name \'%s\' is reserved') % n)
11692
52e4ac3e63f7 tag: do not allow tag names to consist solely of whitespace (issue2307)
Benjamin Pollack <benjamin@bitquabit.com>
parents: 11636
diff changeset
3987 if not n:
52e4ac3e63f7 tag: do not allow tag names to consist solely of whitespace (issue2307)
Benjamin Pollack <benjamin@bitquabit.com>
parents: 11636
diff changeset
3988 raise util.Abort(_('tag names cannot consist entirely of whitespace'))
7131
23bd7383891c commands: optional options where possible
Alexander Solovyov <piranha@piranha.org.ua>
parents: 7126
diff changeset
3989 if opts.get('rev') and opts.get('remove'):
4213
3be4785f8994 tags: add --remove
Matt Mackall <mpm@selenic.com>
parents: 4179
diff changeset
3990 raise util.Abort(_("--rev and --remove are incompatible"))
7131
23bd7383891c commands: optional options where possible
Alexander Solovyov <piranha@piranha.org.ua>
parents: 7126
diff changeset
3991 if opts.get('rev'):
1596
41366b7d6709 fix 'hg tag <tagname> <revision>
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1589
diff changeset
3992 rev_ = opts['rev']
7131
23bd7383891c commands: optional options where possible
Alexander Solovyov <piranha@piranha.org.ua>
parents: 7126
diff changeset
3993 message = opts.get('message')
23bd7383891c commands: optional options where possible
Alexander Solovyov <piranha@piranha.org.ua>
parents: 7126
diff changeset
3994 if opts.get('remove'):
23bd7383891c commands: optional options where possible
Alexander Solovyov <piranha@piranha.org.ua>
parents: 7126
diff changeset
3995 expectedtype = opts.get('local') and 'local' or 'global'
6321
55ba3bc5b8fd tag: allow multiple tags to be added or removed
John Coomes <john.coomes@sun.com>
parents: 6304
diff changeset
3996 for n in names:
55ba3bc5b8fd tag: allow multiple tags to be added or removed
John Coomes <john.coomes@sun.com>
parents: 6304
diff changeset
3997 if not repo.tagtype(n):
55ba3bc5b8fd tag: allow multiple tags to be added or removed
John Coomes <john.coomes@sun.com>
parents: 6304
diff changeset
3998 raise util.Abort(_('tag \'%s\' does not exist') % n)
55ba3bc5b8fd tag: allow multiple tags to be added or removed
John Coomes <john.coomes@sun.com>
parents: 6304
diff changeset
3999 if repo.tagtype(n) != expectedtype:
8008
36924a4711e9 commands, i18n: avoid untranslated strings as message parameters
Wagner Bruna <wbruna@yahoo.com>
parents: 8007
diff changeset
4000 if expectedtype == 'global':
36924a4711e9 commands, i18n: avoid untranslated strings as message parameters
Wagner Bruna <wbruna@yahoo.com>
parents: 8007
diff changeset
4001 raise util.Abort(_('tag \'%s\' is not a global tag') % n)
36924a4711e9 commands, i18n: avoid untranslated strings as message parameters
Wagner Bruna <wbruna@yahoo.com>
parents: 8007
diff changeset
4002 else:
36924a4711e9 commands, i18n: avoid untranslated strings as message parameters
Wagner Bruna <wbruna@yahoo.com>
parents: 8007
diff changeset
4003 raise util.Abort(_('tag \'%s\' is not a local tag') % n)
4213
3be4785f8994 tags: add --remove
Matt Mackall <mpm@selenic.com>
parents: 4179
diff changeset
4004 rev_ = nullid
3be4785f8994 tags: add --remove
Matt Mackall <mpm@selenic.com>
parents: 4179
diff changeset
4005 if not message:
9183
d0225fa2f6c4 do not translate commit messages
Martin Geisler <mg@lazybytes.net>
parents: 9128
diff changeset
4006 # we don't translate commit messages
d0225fa2f6c4 do not translate commit messages
Martin Geisler <mg@lazybytes.net>
parents: 9128
diff changeset
4007 message = 'Removed tag %s' % ', '.join(names)
7131
23bd7383891c commands: optional options where possible
Alexander Solovyov <piranha@piranha.org.ua>
parents: 7126
diff changeset
4008 elif not opts.get('force'):
6321
55ba3bc5b8fd tag: allow multiple tags to be added or removed
John Coomes <john.coomes@sun.com>
parents: 6304
diff changeset
4009 for n in names:
55ba3bc5b8fd tag: allow multiple tags to be added or removed
John Coomes <john.coomes@sun.com>
parents: 6304
diff changeset
4010 if n in repo.tags():
55ba3bc5b8fd tag: allow multiple tags to be added or removed
John Coomes <john.coomes@sun.com>
parents: 6304
diff changeset
4011 raise util.Abort(_('tag \'%s\' already exists '
55ba3bc5b8fd tag: allow multiple tags to be added or removed
John Coomes <john.coomes@sun.com>
parents: 6304
diff changeset
4012 '(use -f to force)') % n)
13135
1c1ca9d393f4 tag: abort if not at a branch head (issue2552)
Kevin Bullock <kbullock@ringworld.org>
parents: 13134
diff changeset
4013 if not opts.get('local'):
1c1ca9d393f4 tag: abort if not at a branch head (issue2552)
Kevin Bullock <kbullock@ringworld.org>
parents: 13134
diff changeset
4014 p1, p2 = repo.dirstate.parents()
1c1ca9d393f4 tag: abort if not at a branch head (issue2552)
Kevin Bullock <kbullock@ringworld.org>
parents: 13134
diff changeset
4015 if p2 != nullid:
1c1ca9d393f4 tag: abort if not at a branch head (issue2552)
Kevin Bullock <kbullock@ringworld.org>
parents: 13134
diff changeset
4016 raise util.Abort(_('uncommitted merge'))
1c1ca9d393f4 tag: abort if not at a branch head (issue2552)
Kevin Bullock <kbullock@ringworld.org>
parents: 13134
diff changeset
4017 bheads = repo.branchheads()
1c1ca9d393f4 tag: abort if not at a branch head (issue2552)
Kevin Bullock <kbullock@ringworld.org>
parents: 13134
diff changeset
4018 if not opts.get('force') and bheads and p1 not in bheads:
1c1ca9d393f4 tag: abort if not at a branch head (issue2552)
Kevin Bullock <kbullock@ringworld.org>
parents: 13134
diff changeset
4019 raise util.Abort(_('not at a branch head (use -f to force)'))
12925
6eab8f0df2ca commands: add revset support to most commands
Matt Mackall <mpm@selenic.com>
parents: 12918
diff changeset
4020 r = cmdutil.revsingle(repo, rev_).node()
2967
eef469259745 tag: shorten hash in default commit message
Matt Mackall <mpm@selenic.com>
parents: 2966
diff changeset
4021
eef469259745 tag: shorten hash in default commit message
Matt Mackall <mpm@selenic.com>
parents: 2966
diff changeset
4022 if not message:
9183
d0225fa2f6c4 do not translate commit messages
Martin Geisler <mg@lazybytes.net>
parents: 9128
diff changeset
4023 # we don't translate commit messages
d0225fa2f6c4 do not translate commit messages
Martin Geisler <mg@lazybytes.net>
parents: 9128
diff changeset
4024 message = ('Added tag %s for changeset %s' %
6321
55ba3bc5b8fd tag: allow multiple tags to be added or removed
John Coomes <john.coomes@sun.com>
parents: 6304
diff changeset
4025 (', '.join(names), short(r)))
2967
eef469259745 tag: shorten hash in default commit message
Matt Mackall <mpm@selenic.com>
parents: 2966
diff changeset
4026
6243
437eef39458d fix incorrect date when committing a tag
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 6234
diff changeset
4027 date = opts.get('date')
437eef39458d fix incorrect date when committing a tag
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 6234
diff changeset
4028 if date:
437eef39458d fix incorrect date when committing a tag
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 6234
diff changeset
4029 date = util.parsedate(date)
437eef39458d fix incorrect date when committing a tag
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 6234
diff changeset
4030
11185
6d7cf82453be tag: add -e/--edit option for modifying the commit message
Steve Losh <steve@stevelosh.com>
parents: 11181
diff changeset
4031 if opts.get('edit'):
6d7cf82453be tag: add -e/--edit option for modifying the commit message
Steve Losh <steve@stevelosh.com>
parents: 11181
diff changeset
4032 message = ui.edit(message, ui.username())
6d7cf82453be tag: add -e/--edit option for modifying the commit message
Steve Losh <steve@stevelosh.com>
parents: 11181
diff changeset
4033
7131
23bd7383891c commands: optional options where possible
Alexander Solovyov <piranha@piranha.org.ua>
parents: 7126
diff changeset
4034 repo.tag(names, r, message, opts.get('local'), opts.get('user'), date)
401
af4848f83e68 From: Radoslaw Szkodzinski <astralstorm@gorzow.mm.pl>
mpm@selenic.com
parents: 396
diff changeset
4035
248
b7645b3c86ff migrate remaining commands
mpm@selenic.com
parents: 247
diff changeset
4036 def tags(ui, repo):
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
4037 """list repository tags
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
4038
8004
d5b1b846f277 commands: word-wrap help texts at 70 characters
Martin Geisler <mg@daimi.au.dk>
parents: 7983
diff changeset
4039 This lists both regular and local tags. When the -v/--verbose
d5b1b846f277 commands: word-wrap help texts at 70 characters
Martin Geisler <mg@daimi.au.dk>
parents: 7983
diff changeset
4040 switch is used, a third column "local" is printed for local tags.
11177
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
4041
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
4042 Returns 0 on success.
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
4043 """
477
520540fd6b64 Handle errors in .hgtags or hgrc [tags] section more gracefully.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 470
diff changeset
4044
2966
fb493241d7f6 Only show long hashes with --debug, not --verbose
Matt Mackall <mpm@selenic.com>
parents: 2963
diff changeset
4045 hexfunc = ui.debugflag and hex or short
5658
ae3089cefaab Add --verbose support to tags command.
Osku Salerma <osku@iki.fi>
parents: 5657
diff changeset
4046 tagtype = ""
ae3089cefaab Add --verbose support to tags command.
Osku Salerma <osku@iki.fi>
parents: 5657
diff changeset
4047
8210
344751cd8cb8 replace various uses of list.reverse()
Matt Mackall <mpm@selenic.com>
parents: 8209
diff changeset
4048 for t, n in reversed(repo.tagslist()):
5658
ae3089cefaab Add --verbose support to tags command.
Osku Salerma <osku@iki.fi>
parents: 5657
diff changeset
4049 if ui.quiet:
ae3089cefaab Add --verbose support to tags command.
Osku Salerma <osku@iki.fi>
parents: 5657
diff changeset
4050 ui.write("%s\n" % t)
ae3089cefaab Add --verbose support to tags command.
Osku Salerma <osku@iki.fi>
parents: 5657
diff changeset
4051 continue
ae3089cefaab Add --verbose support to tags command.
Osku Salerma <osku@iki.fi>
parents: 5657
diff changeset
4052
248
b7645b3c86ff migrate remaining commands
mpm@selenic.com
parents: 247
diff changeset
4053 try:
4516
96d8a56d4ef9 Removed trailing whitespace and tabs from python files
Thomas Arendsen Hein <thomas@intevation.de>
parents: 4505
diff changeset
4054 hn = hexfunc(n)
5658
ae3089cefaab Add --verbose support to tags command.
Osku Salerma <osku@iki.fi>
parents: 5657
diff changeset
4055 r = "%5d:%s" % (repo.changelog.rev(n), hn)
7633
08cabecfa8a8 errors: move revlog errors
Matt Mackall <mpm@selenic.com>
parents: 7632
diff changeset
4056 except error.LookupError:
3930
01d98d68d697 Add revlog.LookupError exception, and use it instead of RevlogError.
Brendan Cully <brendan@kublai.com>
parents: 3920
diff changeset
4057 r = " ?:%s" % hn
2035
107dc72880f8 Make 'hg tags -q' only list tag names without revision numbers and hashes,
Thomas Arendsen Hein <thomas@intevation.de>
parents: 2034
diff changeset
4058 else:
7948
de377b1a9a84 move encoding bits from util to encoding
Matt Mackall <mpm@selenic.com>
parents: 7942
diff changeset
4059 spaces = " " * (30 - encoding.colwidth(t))
5658
ae3089cefaab Add --verbose support to tags command.
Osku Salerma <osku@iki.fi>
parents: 5657
diff changeset
4060 if ui.verbose:
ae3089cefaab Add --verbose support to tags command.
Osku Salerma <osku@iki.fi>
parents: 5657
diff changeset
4061 if repo.tagtype(t) == 'local':
ae3089cefaab Add --verbose support to tags command.
Osku Salerma <osku@iki.fi>
parents: 5657
diff changeset
4062 tagtype = " local"
ae3089cefaab Add --verbose support to tags command.
Osku Salerma <osku@iki.fi>
parents: 5657
diff changeset
4063 else:
ae3089cefaab Add --verbose support to tags command.
Osku Salerma <osku@iki.fi>
parents: 5657
diff changeset
4064 tagtype = ""
ae3089cefaab Add --verbose support to tags command.
Osku Salerma <osku@iki.fi>
parents: 5657
diff changeset
4065 ui.write("%s%s %s%s\n" % (t, spaces, r, tagtype))
248
b7645b3c86ff migrate remaining commands
mpm@selenic.com
parents: 247
diff changeset
4066
1731
251729df9cc6 add -p option to tip. for issue 64.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 1728
diff changeset
4067 def tip(ui, repo, **opts):
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
4068 """show the tip revision
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
4069
8779
708938509732 Improve English for help text of many core hg commands.
timeless <timeless@gmail.com>
parents: 8778
diff changeset
4070 The tip revision (usually just called the tip) is the changeset
708938509732 Improve English for help text of many core hg commands.
timeless <timeless@gmail.com>
parents: 8778
diff changeset
4071 most recently added to the repository (and therefore the most
708938509732 Improve English for help text of many core hg commands.
timeless <timeless@gmail.com>
parents: 8778
diff changeset
4072 recently changed head).
6364
b22b39059722 Make tip help more helpful
Patrick Mezard <pmezard@gmail.com>
parents: 6353
diff changeset
4073
6367
51984a2413f2 Remove unexpected "Alternately" word from tip help.
Patrick Mezard <pmezard@gmail.com>
parents: 6364
diff changeset
4074 If you have just made a commit, that commit will be the tip. If
51984a2413f2 Remove unexpected "Alternately" word from tip help.
Patrick Mezard <pmezard@gmail.com>
parents: 6364
diff changeset
4075 you have just pulled changes from another repository, the tip of
51984a2413f2 Remove unexpected "Alternately" word from tip help.
Patrick Mezard <pmezard@gmail.com>
parents: 6364
diff changeset
4076 that repository becomes the current tip. The "tip" tag is special
51984a2413f2 Remove unexpected "Alternately" word from tip help.
Patrick Mezard <pmezard@gmail.com>
parents: 6364
diff changeset
4077 and cannot be renamed or assigned to a different changeset.
11177
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
4078
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
4079 Returns 0 on success.
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
4080 """
10152
56284451a22c Added support for templatevar "footer" to cmdutil.py
Robert Bachmann <rbachm@gmail.com>
parents: 10111
diff changeset
4081 displayer = cmdutil.show_changeset(ui, repo, opts)
56284451a22c Added support for templatevar "footer" to cmdutil.py
Robert Bachmann <rbachm@gmail.com>
parents: 10111
diff changeset
4082 displayer.show(repo[len(repo) - 1])
56284451a22c Added support for templatevar "footer" to cmdutil.py
Robert Bachmann <rbachm@gmail.com>
parents: 10111
diff changeset
4083 displayer.close()
245
fef0f8e041aa big heap of command clean-up work
mpm@selenic.com
parents: 241
diff changeset
4084
4699
a6b62584d0b2 unbundle: accept multiple file arguments
Giorgos Keramidas <keramida@ceid.upatras.gr>
parents: 4697
diff changeset
4085 def unbundle(ui, repo, fname1, *fnames, **opts):
a6b62584d0b2 unbundle: accept multiple file arguments
Giorgos Keramidas <keramida@ceid.upatras.gr>
parents: 4697
diff changeset
4086 """apply one or more changegroup files
a6b62584d0b2 unbundle: accept multiple file arguments
Giorgos Keramidas <keramida@ceid.upatras.gr>
parents: 4697
diff changeset
4087
a6b62584d0b2 unbundle: accept multiple file arguments
Giorgos Keramidas <keramida@ceid.upatras.gr>
parents: 4697
diff changeset
4088 Apply one or more compressed changegroup files generated by the
a6b62584d0b2 unbundle: accept multiple file arguments
Giorgos Keramidas <keramida@ceid.upatras.gr>
parents: 4697
diff changeset
4089 bundle command.
11177
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
4090
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
4091 Returns 0 on success, 1 if an update has unresolved files.
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
4092 """
4699
a6b62584d0b2 unbundle: accept multiple file arguments
Giorgos Keramidas <keramida@ceid.upatras.gr>
parents: 4697
diff changeset
4093 fnames = (fname1,) + fnames
6180
d98ef03893e6 commands: lock() the repo while unbundling (issue1004)
Patrick Mezard <pmezard@gmail.com>
parents: 6178
diff changeset
4094
8109
496ae1ea4698 switch lock releasing in the core from gc to explicit
Ronny Pfannschmidt <Ronny.Pfannschmidt@gmx.de>
parents: 8088
diff changeset
4095 lock = repo.lock()
13663
d16c99f16f00 bundle: update current bookmark to most recent revision on current branch
David Soria Parra <dsp@php.net>
parents: 13646
diff changeset
4096 wc = repo['.']
6180
d98ef03893e6 commands: lock() the repo while unbundling (issue1004)
Patrick Mezard <pmezard@gmail.com>
parents: 6178
diff changeset
4097 try:
d98ef03893e6 commands: lock() the repo while unbundling (issue1004)
Patrick Mezard <pmezard@gmail.com>
parents: 6178
diff changeset
4098 for fname in fnames:
7271
8046f0a070a6 use our urlopener (proxy handling, etc) instead of urllib
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 7270
diff changeset
4099 f = url.open(ui, fname)
6180
d98ef03893e6 commands: lock() the repo while unbundling (issue1004)
Patrick Mezard <pmezard@gmail.com>
parents: 6178
diff changeset
4100 gen = changegroup.readbundle(f, fname)
11442
ee1ed6afac21 addchangegroup: pass in lock to release it before changegroup hook is called
Matt Mackall <mpm@selenic.com>
parents: 11384
diff changeset
4101 modheads = repo.addchangegroup(gen, 'unbundle', 'bundle:' + fname,
ee1ed6afac21 addchangegroup: pass in lock to release it before changegroup hook is called
Matt Mackall <mpm@selenic.com>
parents: 11384
diff changeset
4102 lock=lock)
13663
d16c99f16f00 bundle: update current bookmark to most recent revision on current branch
David Soria Parra <dsp@php.net>
parents: 13646
diff changeset
4103 bookmarks.updatecurrentbookmark(repo, wc.node(), wc.branch())
6180
d98ef03893e6 commands: lock() the repo while unbundling (issue1004)
Patrick Mezard <pmezard@gmail.com>
parents: 6178
diff changeset
4104 finally:
8109
496ae1ea4698 switch lock releasing in the core from gc to explicit
Ronny Pfannschmidt <Ronny.Pfannschmidt@gmx.de>
parents: 8088
diff changeset
4105 lock.release()
7131
23bd7383891c commands: optional options where possible
Alexander Solovyov <piranha@piranha.org.ua>
parents: 7126
diff changeset
4106 return postincoming(ui, repo, modheads, opts.get('update'), None)
1218
cde6818e082a Add preliminary support for the bundle and unbundle commands
mpm@selenic.com
parents: 1215
diff changeset
4107
8855
f331de880cbb update: add --check option
Matt Mackall <mpm@selenic.com>
parents: 8849
diff changeset
4108 def update(ui, repo, node=None, rev=None, clean=False, date=None, check=False):
10889
e25c450c351e commands: improve some command summaries
Matt Mackall <mpm@selenic.com>
parents: 10882
diff changeset
4109 """update working directory (or switch revisions)
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
4110
8004
d5b1b846f277 commands: word-wrap help texts at 70 characters
Martin Geisler <mg@daimi.au.dk>
parents: 7983
diff changeset
4111 Update the repository's working directory to the specified
12688
8c034a825cfe help: improve description of update --check
Kevin Bullock <kbullock@ringworld.org>
parents: 12618
diff changeset
4112 changeset. If no changeset is specified, update to the tip of the
8c034a825cfe help: improve description of update --check
Kevin Bullock <kbullock@ringworld.org>
parents: 12618
diff changeset
4113 current named branch.
8c034a825cfe help: improve description of update --check
Kevin Bullock <kbullock@ringworld.org>
parents: 12618
diff changeset
4114
8c034a825cfe help: improve description of update --check
Kevin Bullock <kbullock@ringworld.org>
parents: 12618
diff changeset
4115 If the changeset is not a descendant of the working directory's
8c034a825cfe help: improve description of update --check
Kevin Bullock <kbullock@ringworld.org>
parents: 12618
diff changeset
4116 parent, the update is aborted. With the -c/--check option, the
8c034a825cfe help: improve description of update --check
Kevin Bullock <kbullock@ringworld.org>
parents: 12618
diff changeset
4117 working directory is checked for uncommitted changes; if none are
8c034a825cfe help: improve description of update --check
Kevin Bullock <kbullock@ringworld.org>
parents: 12618
diff changeset
4118 found, the working directory is updated to the specified
9718
fe1b19bfe75b help: describe new cross-branch behavior in update help text, plus cleanups
Stuart W Marks <smarks@smarks.org>
parents: 9714
diff changeset
4119 changeset.
fe1b19bfe75b help: describe new cross-branch behavior in update help text, plus cleanups
Stuart W Marks <smarks@smarks.org>
parents: 9714
diff changeset
4120
fe1b19bfe75b help: describe new cross-branch behavior in update help text, plus cleanups
Stuart W Marks <smarks@smarks.org>
parents: 9714
diff changeset
4121 The following rules apply when the working directory contains
fe1b19bfe75b help: describe new cross-branch behavior in update help text, plus cleanups
Stuart W Marks <smarks@smarks.org>
parents: 9714
diff changeset
4122 uncommitted changes:
fe1b19bfe75b help: describe new cross-branch behavior in update help text, plus cleanups
Stuart W Marks <smarks@smarks.org>
parents: 9714
diff changeset
4123
9831
9ebad1b93456 help: improve wording of update help text
Stuart W Marks <smarks@smarks.org>
parents: 9806
diff changeset
4124 1. If neither -c/--check nor -C/--clean is specified, and if
9ebad1b93456 help: improve wording of update help text
Stuart W Marks <smarks@smarks.org>
parents: 9806
diff changeset
4125 the requested changeset is an ancestor or descendant of
9ebad1b93456 help: improve wording of update help text
Stuart W Marks <smarks@smarks.org>
parents: 9806
diff changeset
4126 the working directory's parent, the uncommitted changes
9ebad1b93456 help: improve wording of update help text
Stuart W Marks <smarks@smarks.org>
parents: 9806
diff changeset
4127 are merged into the requested changeset and the merged
9ebad1b93456 help: improve wording of update help text
Stuart W Marks <smarks@smarks.org>
parents: 9806
diff changeset
4128 result is left uncommitted. If the requested changeset is
9ebad1b93456 help: improve wording of update help text
Stuart W Marks <smarks@smarks.org>
parents: 9806
diff changeset
4129 not an ancestor or descendant (that is, it is on another
9ebad1b93456 help: improve wording of update help text
Stuart W Marks <smarks@smarks.org>
parents: 9806
diff changeset
4130 branch), the update is aborted and the uncommitted changes
9740
2ebe679fec21 commands: use enumerated lists in help texts
Martin Geisler <mg@lazybytes.net>
parents: 9734
diff changeset
4131 are preserved.
9718
fe1b19bfe75b help: describe new cross-branch behavior in update help text, plus cleanups
Stuart W Marks <smarks@smarks.org>
parents: 9714
diff changeset
4132
fe1b19bfe75b help: describe new cross-branch behavior in update help text, plus cleanups
Stuart W Marks <smarks@smarks.org>
parents: 9714
diff changeset
4133 2. With the -c/--check option, the update is aborted and the
9740
2ebe679fec21 commands: use enumerated lists in help texts
Martin Geisler <mg@lazybytes.net>
parents: 9734
diff changeset
4134 uncommitted changes are preserved.
9718
fe1b19bfe75b help: describe new cross-branch behavior in update help text, plus cleanups
Stuart W Marks <smarks@smarks.org>
parents: 9714
diff changeset
4135
fe1b19bfe75b help: describe new cross-branch behavior in update help text, plus cleanups
Stuart W Marks <smarks@smarks.org>
parents: 9714
diff changeset
4136 3. With the -C/--clean option, uncommitted changes are discarded and
9740
2ebe679fec21 commands: use enumerated lists in help texts
Martin Geisler <mg@lazybytes.net>
parents: 9734
diff changeset
4137 the working directory is updated to the requested changeset.
9718
fe1b19bfe75b help: describe new cross-branch behavior in update help text, plus cleanups
Stuart W Marks <smarks@smarks.org>
parents: 9714
diff changeset
4138
10973
49a07f441496 Use hg role in help strings
Martin Geisler <mg@aragost.com>
parents: 10963
diff changeset
4139 Use null as the changeset to remove the working directory (like
49a07f441496 Use hg role in help strings
Martin Geisler <mg@aragost.com>
parents: 10963
diff changeset
4140 :hg:`clone -U`).
49a07f441496 Use hg role in help strings
Martin Geisler <mg@aragost.com>
parents: 10963
diff changeset
4141
12688
8c034a825cfe help: improve description of update --check
Kevin Bullock <kbullock@ringworld.org>
parents: 12618
diff changeset
4142 If you want to update just one file to an older changeset, use
8c034a825cfe help: improve description of update --check
Kevin Bullock <kbullock@ringworld.org>
parents: 12618
diff changeset
4143 :hg:`revert`.
10973
49a07f441496 Use hg role in help strings
Martin Geisler <mg@aragost.com>
parents: 10963
diff changeset
4144
49a07f441496 Use hg role in help strings
Martin Geisler <mg@aragost.com>
parents: 10963
diff changeset
4145 See :hg:`help dates` for a list of formats valid for -d/--date.
11177
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
4146
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
4147 Returns 0 on success, 1 if there are unresolved files.
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
4148 """
4450
8fa54b9c6c5a accept -r REV in more places
Daniel Holth <dholth@fastmail.fm>
parents: 4445
diff changeset
4149 if rev and node:
8fa54b9c6c5a accept -r REV in more places
Daniel Holth <dholth@fastmail.fm>
parents: 4445
diff changeset
4150 raise util.Abort(_("please specify just one revision"))
8fa54b9c6c5a accept -r REV in more places
Daniel Holth <dholth@fastmail.fm>
parents: 4445
diff changeset
4151
13568
0b79cf616e65 commands.update() now works properly with a revision of 0
Mark Drago <markdrago@gmail.com>
parents: 13477
diff changeset
4152 if rev is None or rev == '':
4450
8fa54b9c6c5a accept -r REV in more places
Daniel Holth <dholth@fastmail.fm>
parents: 4445
diff changeset
4153 rev = node
8fa54b9c6c5a accept -r REV in more places
Daniel Holth <dholth@fastmail.fm>
parents: 4445
diff changeset
4154
13415
25b5694b9337 update: preserve possible bookmark name to set current bookmark correctly
David Soria Parra <dsp@php.net>
parents: 13407
diff changeset
4155 # if we defined a bookmark, we have to remember the original bookmark name
25b5694b9337 update: preserve possible bookmark name to set current bookmark correctly
David Soria Parra <dsp@php.net>
parents: 13407
diff changeset
4156 brev = rev
12726
61c0df2b089a update: use revsingle to enable use of revsets as update targets (issue1993)
Augie Fackler <durin42@gmail.com>
parents: 12705
diff changeset
4157 rev = cmdutil.revsingle(repo, rev, rev).rev()
61c0df2b089a update: use revsingle to enable use of revsets as update targets (issue1993)
Augie Fackler <durin42@gmail.com>
parents: 12705
diff changeset
4158
9450
e78967d3dd6f commands: forbid 'hg update --check --clean'
Stuart W Marks <smarks@smarks.org>
parents: 9429
diff changeset
4159 if check and clean:
9451
3e673c988c85 commands: expand -c and -C in update error message
Martin Geisler <mg@lazybytes.net>
parents: 9450
diff changeset
4160 raise util.Abort(_("cannot specify both -c/--check and -C/--clean"))
9450
e78967d3dd6f commands: forbid 'hg update --check --clean'
Stuart W Marks <smarks@smarks.org>
parents: 9429
diff changeset
4161
e78967d3dd6f commands: forbid 'hg update --check --clean'
Stuart W Marks <smarks@smarks.org>
parents: 9429
diff changeset
4162 if check:
8855
f331de880cbb update: add --check option
Matt Mackall <mpm@selenic.com>
parents: 8849
diff changeset
4163 # we could use dirty() but we can ignore merge and branch trivia
f331de880cbb update: add --check option
Matt Mackall <mpm@selenic.com>
parents: 8849
diff changeset
4164 c = repo[None]
f331de880cbb update: add --check option
Matt Mackall <mpm@selenic.com>
parents: 8849
diff changeset
4165 if c.modified() or c.added() or c.removed():
f331de880cbb update: add --check option
Matt Mackall <mpm@selenic.com>
parents: 8849
diff changeset
4166 raise util.Abort(_("uncommitted local changes"))
f331de880cbb update: add --check option
Matt Mackall <mpm@selenic.com>
parents: 8849
diff changeset
4167
3814
120be84f33de Add --date support to update and revert
Matt Mackall <mpm@selenic.com>
parents: 3813
diff changeset
4168 if date:
4450
8fa54b9c6c5a accept -r REV in more places
Daniel Holth <dholth@fastmail.fm>
parents: 4445
diff changeset
4169 if rev:
3814
120be84f33de Add --date support to update and revert
Matt Mackall <mpm@selenic.com>
parents: 3813
diff changeset
4170 raise util.Abort(_("you can't specify a revision and a date"))
4450
8fa54b9c6c5a accept -r REV in more places
Daniel Holth <dholth@fastmail.fm>
parents: 4445
diff changeset
4171 rev = cmdutil.finddate(ui, repo, date)
3814
120be84f33de Add --date support to update and revert
Matt Mackall <mpm@selenic.com>
parents: 3813
diff changeset
4172
9187
7bb1dbfd3082 update: allow -c to jump branches if clean
Matt Mackall <mpm@selenic.com>
parents: 9128
diff changeset
4173 if clean or check:
13367
cef73cd9c268 bookmarks: merge current tracking on update into core
Matt Mackall <mpm@selenic.com>
parents: 13366
diff changeset
4174 ret = hg.clean(repo, rev)
2808
30f59f4a327e Introduce update helper functions: update, merge, clean, and revert
Matt Mackall <mpm@selenic.com>
parents: 2806
diff changeset
4175 else:
13367
cef73cd9c268 bookmarks: merge current tracking on update into core
Matt Mackall <mpm@selenic.com>
parents: 13366
diff changeset
4176 ret = hg.update(repo, rev)
cef73cd9c268 bookmarks: merge current tracking on update into core
Matt Mackall <mpm@selenic.com>
parents: 13366
diff changeset
4177
13416
5431b3f3e52e bookmarks: make track.current=True default behaviour and remove option (BC)
David Soria Parra <dsp@php.net>
parents: 13415
diff changeset
4178 if brev in repo._bookmarks:
13415
25b5694b9337 update: preserve possible bookmark name to set current bookmark correctly
David Soria Parra <dsp@php.net>
parents: 13407
diff changeset
4179 bookmarks.setcurrent(repo, brev)
13367
cef73cd9c268 bookmarks: merge current tracking on update into core
Matt Mackall <mpm@selenic.com>
parents: 13366
diff changeset
4180
cef73cd9c268 bookmarks: merge current tracking on update into core
Matt Mackall <mpm@selenic.com>
parents: 13366
diff changeset
4181 return ret
254
c03f58e5fd2d unify checkout and resolve into update
mpm@selenic.com
parents: 252
diff changeset
4182
247
863b508c5b36 migrate verify
mpm@selenic.com
parents: 246
diff changeset
4183 def verify(ui, repo):
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
4184 """verify the integrity of the repository
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
4185
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
4186 Verify the integrity of the current repository.
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
4187
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
4188 This will perform an extensive check of the repository's
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
4189 integrity, validating the hashes and checksums of each entry in
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
4190 the changelog, manifest, and tracked files, as well as the
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
4191 integrity of their crosslinks and indices.
11177
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
4192
6a64813276ed commands: initial audit of exit codes
Matt Mackall <mpm@selenic.com>
parents: 11173
diff changeset
4193 Returns 0 on success, 1 if errors are encountered.
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
4194 """
2778
fdc232d8a193 Move repo.verify
Matt Mackall <mpm@selenic.com>
parents: 2776
diff changeset
4195 return hg.verify(repo)
247
863b508c5b36 migrate verify
mpm@selenic.com
parents: 246
diff changeset
4196
3651
6389205291c6 move show_version to version_
Matt Mackall <mpm@selenic.com>
parents: 3650
diff changeset
4197 def version_(ui):
6389205291c6 move show_version to version_
Matt Mackall <mpm@selenic.com>
parents: 3650
diff changeset
4198 """output version and copyright information"""
6389205291c6 move show_version to version_
Matt Mackall <mpm@selenic.com>
parents: 3650
diff changeset
4199 ui.write(_("Mercurial Distributed SCM (version %s)\n")
7632
9626819b2e3d refactor version code
Matt Mackall <mpm@selenic.com>
parents: 7628
diff changeset
4200 % util.version())
3651
6389205291c6 move show_version to version_
Matt Mackall <mpm@selenic.com>
parents: 3650
diff changeset
4201 ui.status(_(
12829
01145ee78c53 version: replace email address with url to reduce private mail
Matt Mackall <mpm@selenic.com>
parents: 12821
diff changeset
4202 "(see http://mercurial.selenic.com for more information)\n"
13472
6c70ca0b7e07 commands: update year to 2011 in version string
Martin Geisler <mg@aragost.com>
parents: 13470
diff changeset
4203 "\nCopyright (C) 2005-2011 Matt Mackall and others\n"
3651
6389205291c6 move show_version to version_
Matt Mackall <mpm@selenic.com>
parents: 3650
diff changeset
4204 "This is free software; see the source for copying conditions. "
6389205291c6 move show_version to version_
Matt Mackall <mpm@selenic.com>
parents: 3650
diff changeset
4205 "There is NO\nwarranty; "
6389205291c6 move show_version to version_
Matt Mackall <mpm@selenic.com>
parents: 3650
diff changeset
4206 "not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n"
6389205291c6 move show_version to version_
Matt Mackall <mpm@selenic.com>
parents: 3650
diff changeset
4207 ))
6389205291c6 move show_version to version_
Matt Mackall <mpm@selenic.com>
parents: 3650
diff changeset
4208
255
20a44c82795f hg help: use docstrings only
mpm@selenic.com
parents: 254
diff changeset
4209 # Command options and aliases are listed here, alphabetically
20a44c82795f hg help: use docstrings only
mpm@selenic.com
parents: 254
diff changeset
4210
3187
fca5ddbaa12a factor opts: move globalopts to a more logical place
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 3181
diff changeset
4211 globalopts = [
fca5ddbaa12a factor opts: move globalopts to a more logical place
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 3181
diff changeset
4212 ('R', 'repository', '',
11321
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4213 _('repository root directory or name of overlay bundle file'),
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4214 _('REPO')),
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4215 ('', 'cwd', '',
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4216 _('change working directory'), _('DIR')),
3187
fca5ddbaa12a factor opts: move globalopts to a more logical place
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 3181
diff changeset
4217 ('y', 'noninteractive', None,
fca5ddbaa12a factor opts: move globalopts to a more logical place
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 3181
diff changeset
4218 _('do not prompt, assume \'yes\' for any required answers')),
fca5ddbaa12a factor opts: move globalopts to a more logical place
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 3181
diff changeset
4219 ('q', 'quiet', None, _('suppress output')),
fca5ddbaa12a factor opts: move globalopts to a more logical place
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 3181
diff changeset
4220 ('v', 'verbose', None, _('enable additional output')),
10541
fac67f0bfbb2 commands: clarify --config syntax
Wagner Bruna <wbruna@softwareexpress.com.br>
parents: 10527
diff changeset
4221 ('', 'config', [],
11321
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4222 _('set/override config option (use \'section.name=value\')'),
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4223 _('CONFIG')),
3187
fca5ddbaa12a factor opts: move globalopts to a more logical place
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 3181
diff changeset
4224 ('', 'debug', None, _('enable debugging output')),
fca5ddbaa12a factor opts: move globalopts to a more logical place
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 3181
diff changeset
4225 ('', 'debugger', None, _('start debugger')),
11321
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4226 ('', 'encoding', encoding.encoding, _('set the charset encoding'),
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4227 _('ENCODE')),
7948
de377b1a9a84 move encoding bits from util to encoding
Matt Mackall <mpm@selenic.com>
parents: 7942
diff changeset
4228 ('', 'encodingmode', encoding.encodingmode,
11321
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4229 _('set the charset encoding mode'), _('MODE')),
9698
3bbc6bc62809 commands: slightly better help for --traceback
Martin Geisler <mg@lazybytes.net>
parents: 9689
diff changeset
4230 ('', 'traceback', None, _('always print a traceback on exception')),
3187
fca5ddbaa12a factor opts: move globalopts to a more logical place
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 3181
diff changeset
4231 ('', 'time', None, _('time how long the command takes')),
fca5ddbaa12a factor opts: move globalopts to a more logical place
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 3181
diff changeset
4232 ('', 'profile', None, _('print command execution profile')),
fca5ddbaa12a factor opts: move globalopts to a more logical place
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 3181
diff changeset
4233 ('', 'version', None, _('output version information and exit')),
fca5ddbaa12a factor opts: move globalopts to a more logical place
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 3181
diff changeset
4234 ('h', 'help', None, _('display help and exit')),
fca5ddbaa12a factor opts: move globalopts to a more logical place
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 3181
diff changeset
4235 ]
fca5ddbaa12a factor opts: move globalopts to a more logical place
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 3181
diff changeset
4236
3189
a73a785ea8e1 factor opts: --dry-run option
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 3188
diff changeset
4237 dryrunopts = [('n', 'dry-run', None,
a73a785ea8e1 factor opts: --dry-run option
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 3188
diff changeset
4238 _('do not perform actions, just print output'))]
a73a785ea8e1 factor opts: --dry-run option
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 3188
diff changeset
4239
3190
37b53487c341 factor opts: remote repo access options
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 3189
diff changeset
4240 remoteopts = [
11321
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4241 ('e', 'ssh', '',
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4242 _('specify ssh command to use'), _('CMD')),
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4243 ('', 'remotecmd', '',
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4244 _('specify hg command to run on the remote side'), _('CMD')),
13328
a939f08fae9c url: add --insecure option to bypass verification of ssl certificates
Yuya Nishihara <yuya@tcha.org>
parents: 13230
diff changeset
4245 ('', 'insecure', None,
a939f08fae9c url: add --insecure option to bypass verification of ssl certificates
Yuya Nishihara <yuya@tcha.org>
parents: 13230
diff changeset
4246 _('do not verify server certificate (ignoring web.cacerts config)')),
3190
37b53487c341 factor opts: remote repo access options
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 3189
diff changeset
4247 ]
37b53487c341 factor opts: remote repo access options
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 3189
diff changeset
4248
3188
725e3d3145d8 factor opts: walk options
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 3187
diff changeset
4249 walkopts = [
11321
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4250 ('I', 'include', [],
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4251 _('include names matching the given patterns'), _('PATTERN')),
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4252 ('X', 'exclude', [],
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4253 _('exclude names matching the given patterns'), _('PATTERN')),
3188
725e3d3145d8 factor opts: walk options
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 3187
diff changeset
4254 ]
725e3d3145d8 factor opts: walk options
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 3187
diff changeset
4255
3857
f6f16f871049 Uniformisation of commit help for -m and -l.
Mathieu Clabaut <mathieu.clabaut@gmail.com>
parents: 3855
diff changeset
4256 commitopts = [
11321
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4257 ('m', 'message', '',
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4258 _('use text as commit message'), _('TEXT')),
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4259 ('l', 'logfile', '',
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4260 _('read commit message from file'), _('FILE')),
3857
f6f16f871049 Uniformisation of commit help for -m and -l.
Mathieu Clabaut <mathieu.clabaut@gmail.com>
parents: 3855
diff changeset
4261 ]
f6f16f871049 Uniformisation of commit help for -m and -l.
Mathieu Clabaut <mathieu.clabaut@gmail.com>
parents: 3855
diff changeset
4262
5147
c80af96943aa refactor options from cmdtable
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 5125
diff changeset
4263 commitopts2 = [
11321
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4264 ('d', 'date', '',
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4265 _('record datecode as commit date'), _('DATE')),
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4266 ('u', 'user', '',
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4267 _('record the specified user as committer'), _('USER')),
5147
c80af96943aa refactor options from cmdtable
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 5125
diff changeset
4268 ]
c80af96943aa refactor options from cmdtable
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 5125
diff changeset
4269
6192
cd65a67aff31 Introduce templateopts and logopts to reduce duplicate option definitions.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 6191
diff changeset
4270 templateopts = [
11321
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4271 ('', 'style', '',
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4272 _('display using template map file'), _('STYLE')),
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4273 ('', 'template', '',
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4274 _('display with template'), _('TEMPLATE')),
6192
cd65a67aff31 Introduce templateopts and logopts to reduce duplicate option definitions.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 6191
diff changeset
4275 ]
cd65a67aff31 Introduce templateopts and logopts to reduce duplicate option definitions.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 6191
diff changeset
4276
cd65a67aff31 Introduce templateopts and logopts to reduce duplicate option definitions.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 6191
diff changeset
4277 logopts = [
cd65a67aff31 Introduce templateopts and logopts to reduce duplicate option definitions.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 6191
diff changeset
4278 ('p', 'patch', None, _('show patch')),
7763
cdc913e7fc5f log-like commands now use -G for --graph, -g for --git
Jim Correia <jim.correia@pobox.com>
parents: 7762
diff changeset
4279 ('g', 'git', None, _('use git extended diff format')),
11321
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4280 ('l', 'limit', '',
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4281 _('limit number of changes displayed'), _('NUM')),
6192
cd65a67aff31 Introduce templateopts and logopts to reduce duplicate option definitions.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 6191
diff changeset
4282 ('M', 'no-merges', None, _('do not show merges')),
11061
51d0387523c6 log: add --stat for diffstat output
Yuya Nishihara <yuya@tcha.org>
parents: 11050
diff changeset
4283 ('', 'stat', None, _('output diffstat-style summary of changes')),
6192
cd65a67aff31 Introduce templateopts and logopts to reduce duplicate option definitions.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 6191
diff changeset
4284 ] + templateopts
cd65a67aff31 Introduce templateopts and logopts to reduce duplicate option definitions.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 6191
diff changeset
4285
6668
034f444902d9 mq: qdiff: support all diffopts
Jason Orendorff <jorendorff@mozilla.com>
parents: 6658
diff changeset
4286 diffopts = [
034f444902d9 mq: qdiff: support all diffopts
Jason Orendorff <jorendorff@mozilla.com>
parents: 6658
diff changeset
4287 ('a', 'text', None, _('treat all files as text')),
034f444902d9 mq: qdiff: support all diffopts
Jason Orendorff <jorendorff@mozilla.com>
parents: 6658
diff changeset
4288 ('g', 'git', None, _('use git extended diff format')),
10375
adf9505e8888 commands: Try to improve help options text for basic commands
timeless@mozdev.org
parents: 10369
diff changeset
4289 ('', 'nodates', None, _('omit dates from diff headers'))
6668
034f444902d9 mq: qdiff: support all diffopts
Jason Orendorff <jorendorff@mozilla.com>
parents: 6658
diff changeset
4290 ]
034f444902d9 mq: qdiff: support all diffopts
Jason Orendorff <jorendorff@mozilla.com>
parents: 6658
diff changeset
4291
034f444902d9 mq: qdiff: support all diffopts
Jason Orendorff <jorendorff@mozilla.com>
parents: 6658
diff changeset
4292 diffopts2 = [
034f444902d9 mq: qdiff: support all diffopts
Jason Orendorff <jorendorff@mozilla.com>
parents: 6658
diff changeset
4293 ('p', 'show-function', None, _('show which function each change is in')),
9857
24bc6e414610 diff: change --inverse to --reverse
Martin Geisler <mg@lazybytes.net>
parents: 9839
diff changeset
4294 ('', 'reverse', None, _('produce a diff that undoes the changes')),
6668
034f444902d9 mq: qdiff: support all diffopts
Jason Orendorff <jorendorff@mozilla.com>
parents: 6658
diff changeset
4295 ('w', 'ignore-all-space', None,
034f444902d9 mq: qdiff: support all diffopts
Jason Orendorff <jorendorff@mozilla.com>
parents: 6658
diff changeset
4296 _('ignore white space when comparing lines')),
034f444902d9 mq: qdiff: support all diffopts
Jason Orendorff <jorendorff@mozilla.com>
parents: 6658
diff changeset
4297 ('b', 'ignore-space-change', None,
034f444902d9 mq: qdiff: support all diffopts
Jason Orendorff <jorendorff@mozilla.com>
parents: 6658
diff changeset
4298 _('ignore changes in the amount of white space')),
034f444902d9 mq: qdiff: support all diffopts
Jason Orendorff <jorendorff@mozilla.com>
parents: 6658
diff changeset
4299 ('B', 'ignore-blank-lines', None,
034f444902d9 mq: qdiff: support all diffopts
Jason Orendorff <jorendorff@mozilla.com>
parents: 6658
diff changeset
4300 _('ignore changes whose lines are all blank')),
11321
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4301 ('U', 'unified', '',
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4302 _('number of lines of context to show'), _('NUM')),
9640
9e76232fbfbe diff: add --stat for diffstat output
Brodie Rao <me+hg@dackz.net>
parents: 9636
diff changeset
4303 ('', 'stat', None, _('output diffstat-style summary of changes')),
6668
034f444902d9 mq: qdiff: support all diffopts
Jason Orendorff <jorendorff@mozilla.com>
parents: 6658
diff changeset
4304 ]
034f444902d9 mq: qdiff: support all diffopts
Jason Orendorff <jorendorff@mozilla.com>
parents: 6658
diff changeset
4305
7402
bffdab64dfbb import: add similarity option (issue295)
Brendan Cully <brendan@kublai.com>
parents: 7372
diff changeset
4306 similarityopts = [
bffdab64dfbb import: add similarity option (issue295)
Brendan Cully <brendan@kublai.com>
parents: 7372
diff changeset
4307 ('s', 'similarity', '',
11321
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4308 _('guess renamed files by similarity (0<=s<=100)'), _('SIMILARITY'))
7402
bffdab64dfbb import: add similarity option (issue295)
Brendan Cully <brendan@kublai.com>
parents: 7372
diff changeset
4309 ]
bffdab64dfbb import: add similarity option (issue295)
Brendan Cully <brendan@kublai.com>
parents: 7372
diff changeset
4310
12166
441a74b8def1 status: recurse into subrepositories with --subrepos/-S flag
Martin Geisler <mg@lazybytes.net>
parents: 12132
diff changeset
4311 subrepoopts = [
441a74b8def1 status: recurse into subrepositories with --subrepos/-S flag
Martin Geisler <mg@lazybytes.net>
parents: 12132
diff changeset
4312 ('S', 'subrepos', None,
441a74b8def1 status: recurse into subrepositories with --subrepos/-S flag
Martin Geisler <mg@lazybytes.net>
parents: 12132
diff changeset
4313 _('recurse into subrepositories'))
441a74b8def1 status: recurse into subrepositories with --subrepos/-S flag
Martin Geisler <mg@lazybytes.net>
parents: 12132
diff changeset
4314 ]
441a74b8def1 status: recurse into subrepositories with --subrepos/-S flag
Martin Geisler <mg@lazybytes.net>
parents: 12132
diff changeset
4315
209
63af1db35611 Beginning of new command parsing interface
mpm@selenic.com
parents:
diff changeset
4316 table = {
12270
166b9866580a add: recurse into subrepositories with --subrepos/-S flag
Martin Geisler <mg@lazybytes.net>
parents: 12269
diff changeset
4317 "^add": (add, walkopts + subrepoopts + dryrunopts,
166b9866580a add: recurse into subrepositories with --subrepos/-S flag
Martin Geisler <mg@lazybytes.net>
parents: 12269
diff changeset
4318 _('[OPTION]... [FILE]...')),
2955
9d1c3529ebbc addremove: do not deprecate.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2639
diff changeset
4319 "addremove":
7402
bffdab64dfbb import: add similarity option (issue295)
Brendan Cully <brendan@kublai.com>
parents: 7372
diff changeset
4320 (addremove, similarityopts + walkopts + dryrunopts,
7364
ad7f736f3214 help: remove redundant 'hg <command>' from command synopses
Matt Mackall <mpm@selenic.com>
parents: 7361
diff changeset
4321 _('[OPTION]... [FILE]...')),
6182
07f2236c4dee add a blame alias for annotate
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 6180
diff changeset
4322 "^annotate|blame":
697
cb1be2327220 Multiple cleanups of things detected by pylint.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 696
diff changeset
4323 (annotate,
11321
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4324 [('r', 'rev', '',
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4325 _('annotate the specified revision'), _('REV')),
10579
f142fa3c0a8c Make annotate --follow an alias for -f/--file to behave like in older versions
Thomas Arendsen Hein <thomas@intevation.de>
parents: 10564
diff changeset
4326 ('', 'follow', None,
f142fa3c0a8c Make annotate --follow an alias for -f/--file to behave like in older versions
Thomas Arendsen Hein <thomas@intevation.de>
parents: 10564
diff changeset
4327 _('follow copies/renames and list the filename (DEPRECATED)')),
10369
98a0421b9e52 commands: annotate follows by default, separate -f/--file option
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 10365
diff changeset
4328 ('', 'no-follow', None, _("don't follow copies and renames")),
1402
9d2c2e6b32b5 i18n part2: use '_' for all strings who are part of the user interface
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1400
diff changeset
4329 ('a', 'text', None, _('treat all files as text')),
6134
7b937b26adf7 Make annotae/grep print short dates with -q/--quiet.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 6133
diff changeset
4330 ('u', 'user', None, _('list the author (long with -v)')),
10369
98a0421b9e52 commands: annotate follows by default, separate -f/--file option
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 10365
diff changeset
4331 ('f', 'file', None, _('list the filename')),
6134
7b937b26adf7 Make annotae/grep print short dates with -q/--quiet.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 6133
diff changeset
4332 ('d', 'date', None, _('list the date (short with -q)')),
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
4333 ('n', 'number', None, _('list the revision number (default)')),
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
4334 ('c', 'changeset', None, _('list the changeset')),
4857
2192001e4bb4 Add --line-number option to hg annotate (issue506)
Thomas Arendsen Hein <thomas@intevation.de>
parents: 4849
diff changeset
4335 ('l', 'line-number', None,
2192001e4bb4 Add --line-number option to hg annotate (issue506)
Thomas Arendsen Hein <thomas@intevation.de>
parents: 4849
diff changeset
4336 _('show line number at the first appearance'))
3188
725e3d3145d8 factor opts: walk options
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 3187
diff changeset
4337 ] + walkopts,
7364
ad7f736f3214 help: remove redundant 'hg <command>' from command synopses
Matt Mackall <mpm@selenic.com>
parents: 7361
diff changeset
4338 _('[-r REV] [-f] [-a] [-u] [-d] [-n] [-c] [-l] FILE...')),
2160
858df1f354c1 Cleanup archive command: Don't overwrite gettext, quoting in cmd table entry.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 2159
diff changeset
4339 "archive":
2112
2b03c6733efa add "archive" command, like "cvs export" only better.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2092
diff changeset
4340 (archive,
2b03c6733efa add "archive" command, like "cvs export" only better.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2092
diff changeset
4341 [('', 'no-decode', None, _('do not pass files through decoders')),
11321
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4342 ('p', 'prefix', '',
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4343 _('directory prefix for files in archive'), _('PREFIX')),
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4344 ('r', 'rev', '',
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4345 _('revision to distribute'), _('REV')),
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4346 ('t', 'type', '',
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4347 _('type of distribution to create'), _('TYPE')),
12323
f00953d9533c subrepo: add support for 'hg archive'
Martin Geisler <mg@aragost.com>
parents: 12274
diff changeset
4348 ] + subrepoopts + walkopts,
7364
ad7f736f3214 help: remove redundant 'hg <command>' from command synopses
Matt Mackall <mpm@selenic.com>
parents: 7361
diff changeset
4349 _('[OPTION]... DEST')),
2159
5c34b98ad6b1 Small cleanups to backout command:
Thomas Arendsen Hein <thomas@intevation.de>
parents: 2158
diff changeset
4350 "backout":
2158
ec96c4518236 add backout command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2153
diff changeset
4351 (backout,
2159
5c34b98ad6b1 Small cleanups to backout command:
Thomas Arendsen Hein <thomas@intevation.de>
parents: 2158
diff changeset
4352 [('', 'merge', None,
5c34b98ad6b1 Small cleanups to backout command:
Thomas Arendsen Hein <thomas@intevation.de>
parents: 2158
diff changeset
4353 _('merge with old dirstate parent after backout')),
11321
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4354 ('', 'parent', '',
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4355 _('parent to choose when backing out merge'), _('REV')),
12810
a68ccfd9c7be backout: add --tool argument for specifying merge tool
Steve Borho <steve@borho.org>
parents: 12809
diff changeset
4356 ('t', 'tool', '',
a68ccfd9c7be backout: add --tool argument for specifying merge tool
Steve Borho <steve@borho.org>
parents: 12809
diff changeset
4357 _('specify merge tool')),
11321
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4358 ('r', 'rev', '',
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4359 _('revision to backout'), _('REV')),
5147
c80af96943aa refactor options from cmdtable
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 5125
diff changeset
4360 ] + walkopts + commitopts + commitopts2,
7364
ad7f736f3214 help: remove redundant 'hg <command>' from command synopses
Matt Mackall <mpm@selenic.com>
parents: 7361
diff changeset
4361 _('[OPTION]... [-r] REV')),
5778
9e97a7a0bb82 realign commands table
Thomas Arendsen Hein <thomas@intevation.de>
parents: 5776
diff changeset
4362 "bisect":
9e97a7a0bb82 realign commands table
Thomas Arendsen Hein <thomas@intevation.de>
parents: 5776
diff changeset
4363 (bisect,
9e97a7a0bb82 realign commands table
Thomas Arendsen Hein <thomas@intevation.de>
parents: 5776
diff changeset
4364 [('r', 'reset', False, _('reset bisect state')),
9e97a7a0bb82 realign commands table
Thomas Arendsen Hein <thomas@intevation.de>
parents: 5776
diff changeset
4365 ('g', 'good', False, _('mark changeset good')),
9e97a7a0bb82 realign commands table
Thomas Arendsen Hein <thomas@intevation.de>
parents: 5776
diff changeset
4366 ('b', 'bad', False, _('mark changeset bad')),
9e97a7a0bb82 realign commands table
Thomas Arendsen Hein <thomas@intevation.de>
parents: 5776
diff changeset
4367 ('s', 'skip', False, _('skip testing changeset')),
13601
0388e3e36693 bisect: new command to extend the bisect range (issue2690)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 13591
diff changeset
4368 ('e', 'extend', False, _('extend the bisect range')),
11321
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4369 ('c', 'command', '',
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4370 _('use command to check changeset state'), _('CMD')),
5778
9e97a7a0bb82 realign commands table
Thomas Arendsen Hein <thomas@intevation.de>
parents: 5776
diff changeset
4371 ('U', 'noupdate', False, _('do not update to target'))],
9952
5b149c88d9e8 commands: add missing options in command line help
timeless@mozdev.org
parents: 9951
diff changeset
4372 _("[-gbsr] [-U] [-c CMD] [REV]")),
13368
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
4373 "bookmarks":
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
4374 (bookmark,
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
4375 [('f', 'force', False, _('force')),
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
4376 ('r', 'rev', '', _('revision'), _('REV')),
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
4377 ('d', 'delete', False, _('delete a given bookmark')),
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
4378 ('m', 'rename', '', _('rename a given bookmark'), _('NAME'))],
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
4379 _('hg bookmarks [-f] [-d] [-m NAME] [-r REV] [NAME]')),
4730
eadfaa9ec487 Updated command tables in commands.py and hgext extensions.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 4726
diff changeset
4380 "branch":
eadfaa9ec487 Updated command tables in commands.py and hgext extensions.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 4726
diff changeset
4381 (branch,
eadfaa9ec487 Updated command tables in commands.py and hgext extensions.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 4726
diff changeset
4382 [('f', 'force', None,
7006
92d44ec32430 branch: added more support for named branches
Sune Foldager <cryo@cyanite.org>
parents: 7003
diff changeset
4383 _('set branch name even if it shadows an existing branch')),
92d44ec32430 branch: added more support for named branches
Sune Foldager <cryo@cyanite.org>
parents: 7003
diff changeset
4384 ('C', 'clean', None, _('reset branch name to parent branch name'))],
7364
ad7f736f3214 help: remove redundant 'hg <command>' from command synopses
Matt Mackall <mpm@selenic.com>
parents: 7361
diff changeset
4385 _('[-fC] [NAME]')),
4730
eadfaa9ec487 Updated command tables in commands.py and hgext extensions.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 4726
diff changeset
4386 "branches":
eadfaa9ec487 Updated command tables in commands.py and hgext extensions.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 4726
diff changeset
4387 (branches,
eadfaa9ec487 Updated command tables in commands.py and hgext extensions.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 4726
diff changeset
4388 [('a', 'active', False,
8991
7e0b31dfc66f branches: add --closed flag for consistency with heads
Matt Mackall <mpm@selenic.com>
parents: 8958
diff changeset
4389 _('show only branches that have unmerged heads')),
7e0b31dfc66f branches: add --closed flag for consistency with heads
Matt Mackall <mpm@selenic.com>
parents: 8958
diff changeset
4390 ('c', 'closed', False,
9189
c2041f80f22a heads: more clarity for --closed
Matt Mackall <mpm@selenic.com>
parents: 9188
diff changeset
4391 _('show normal and closed branches'))],
9952
5b149c88d9e8 commands: add missing options in command line help
timeless@mozdev.org
parents: 9951
diff changeset
4392 _('[-ac]')),
1218
cde6818e082a Add preliminary support for the bundle and unbundle commands
mpm@selenic.com
parents: 1215
diff changeset
4393 "bundle":
cde6818e082a Add preliminary support for the bundle and unbundle commands
mpm@selenic.com
parents: 1215
diff changeset
4394 (bundle,
1959
d53a18f592be add -f/--force to pull, incoming, outgoing, to work on unrelated repo.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 1948
diff changeset
4395 [('f', 'force', None,
10375
adf9505e8888 commands: Try to improve help options text for basic commands
timeless@mozdev.org
parents: 10369
diff changeset
4396 _('run even when the destination is unrelated')),
3284
d89e98840b08 add -r/--rev and --base option to bundle
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 3278
diff changeset
4397 ('r', 'rev', [],
11321
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4398 _('a changeset intended to be added to the destination'),
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4399 _('REV')),
10379
a78bfaf988e1 add -b/--branch option to clone, bundle, incoming, outgoing, pull, push
Sune Foldager <cryo@cyanite.org>
parents: 10376
diff changeset
4400 ('b', 'branch', [],
11321
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4401 _('a specific branch you would like to bundle'),
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4402 _('BRANCH')),
3284
d89e98840b08 add -r/--rev and --base option to bundle
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 3278
diff changeset
4403 ('', 'base', [],
11321
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4404 _('a base changeset assumed to be available at the destination'),
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4405 _('REV')),
6570
626cb86a6523 add compression type type parameter to bundle command
Benoit Allard <benoit@aeteurope.nl>
parents: 6518
diff changeset
4406 ('a', 'all', None, _('bundle all changesets in the repository')),
11321
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4407 ('t', 'type', 'bzip2',
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4408 _('bundle compression type to use'), _('TYPE')),
3191
545b6d718593 add remoteopts to bundle command
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 3190
diff changeset
4409 ] + remoteopts,
9952
5b149c88d9e8 commands: add missing options in command line help
timeless@mozdev.org
parents: 9951
diff changeset
4410 _('[-f] [-t TYPE] [-a] [-r REV]... [--base REV]... FILE [DEST]')),
697
cb1be2327220 Multiple cleanups of things detected by pylint.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 696
diff changeset
4411 "cat":
cb1be2327220 Multiple cleanups of things detected by pylint.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 696
diff changeset
4412 (cat,
11321
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4413 [('o', 'output', '',
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4414 _('print output to file with formatted name'), _('FORMAT')),
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4415 ('r', 'rev', '',
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4416 _('print the given revision'), _('REV')),
6094
3998c1b0828f cat --decode: Drop short option, use opts.get() instead of opts[]
Thomas Arendsen Hein <thomas@intevation.de>
parents: 6093
diff changeset
4417 ('', 'decode', None, _('apply any matching decode filter')),
3188
725e3d3145d8 factor opts: walk options
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 3187
diff changeset
4418 ] + walkopts,
7364
ad7f736f3214 help: remove redundant 'hg <command>' from command synopses
Matt Mackall <mpm@selenic.com>
parents: 7361
diff changeset
4419 _('[OPTION]... FILE...')),
697
cb1be2327220 Multiple cleanups of things detected by pylint.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 696
diff changeset
4420 "^clone":
cb1be2327220 Multiple cleanups of things detected by pylint.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 696
diff changeset
4421 (clone,
6625
4d3a60d5c490 improve help text for clone -U
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 6620
diff changeset
4422 [('U', 'noupdate', None,
10375
adf9505e8888 commands: Try to improve help options text for basic commands
timeless@mozdev.org
parents: 10369
diff changeset
4423 _('the clone will include an empty working copy (only a repository)')),
9714
2f1ab7f77ddc clone: add option -u/--updaterev
Adrian Buehlmann <adrian@cadifra.com>
parents: 9698
diff changeset
4424 ('u', 'updaterev', '',
11321
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4425 _('revision, tag or branch to check out'), _('REV')),
1602
fb4149eebdd4 strictly adher to 80 chars per line
Muli Ben-Yehuda <mulix@mulix.org>
parents: 1601
diff changeset
4426 ('r', 'rev', [],
11321
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4427 _('include the specified changeset'), _('REV')),
10379
a78bfaf988e1 add -b/--branch option to clone, bundle, incoming, outgoing, pull, push
Sune Foldager <cryo@cyanite.org>
parents: 10376
diff changeset
4428 ('b', 'branch', [],
11321
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4429 _('clone only the specified branch'), _('BRANCH')),
1816
08f4398bdb1a Updated help synopsises and reordered some options. Dropped [-n] from revert.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 1812
diff changeset
4430 ('', 'pull', None, _('use pull protocol to copy metadata')),
2620
de82749d3a71 clone: change name of --stream to --uncompressed.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2618
diff changeset
4431 ('', 'uncompressed', None,
de82749d3a71 clone: change name of --stream to --uncompressed.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2618
diff changeset
4432 _('use uncompressed transfer (fast over LAN)')),
3190
37b53487c341 factor opts: remote repo access options
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 3189
diff changeset
4433 ] + remoteopts,
7364
ad7f736f3214 help: remove redundant 'hg <command>' from command synopses
Matt Mackall <mpm@selenic.com>
parents: 7361
diff changeset
4434 _('[OPTION]... SOURCE [DEST]')),
697
cb1be2327220 Multiple cleanups of things detected by pylint.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 696
diff changeset
4435 "^commit|ci":
cb1be2327220 Multiple cleanups of things detected by pylint.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 696
diff changeset
4436 (commit,
2184
2477a7183a6f Add debugaddremove alias to addremove, so it doesn't show up in 'hg help'.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 2181
diff changeset
4437 [('A', 'addremove', None,
2477a7183a6f Add debugaddremove alias to addremove, so it doesn't show up in 'hg help'.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 2181
diff changeset
4438 _('mark new/missing files as added/removed before committing')),
7655
cce37dab7ad6 branch closing: mark closed branches with a 'close' extra
John Mulligan <phlogistonjohn@asynchrono.us>
parents: 7643
diff changeset
4439 ('', 'close-branch', None,
cce37dab7ad6 branch closing: mark closed branches with a 'close' extra
John Mulligan <phlogistonjohn@asynchrono.us>
parents: 7643
diff changeset
4440 _('mark a branch as closed, hiding it from the branch list')),
5147
c80af96943aa refactor options from cmdtable
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 5125
diff changeset
4441 ] + walkopts + commitopts + commitopts2,
7364
ad7f736f3214 help: remove redundant 'hg <command>' from command synopses
Matt Mackall <mpm@selenic.com>
parents: 7361
diff changeset
4442 _('[OPTION]... [FILE]...')),
1615
83238c1db6de Cleanup of indentation, spacing, newlines, strings and line length
Thomas Arendsen Hein <thomas@intevation.de>
parents: 1607
diff changeset
4443 "copy|cp":
83238c1db6de Cleanup of indentation, spacing, newlines, strings and line length
Thomas Arendsen Hein <thomas@intevation.de>
parents: 1607
diff changeset
4444 (copy,
1816
08f4398bdb1a Updated help synopsises and reordered some options. Dropped [-n] from revert.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 1812
diff changeset
4445 [('A', 'after', None, _('record a copy that has already occurred')),
1615
83238c1db6de Cleanup of indentation, spacing, newlines, strings and line length
Thomas Arendsen Hein <thomas@intevation.de>
parents: 1607
diff changeset
4446 ('f', 'force', None,
1816
08f4398bdb1a Updated help synopsises and reordered some options. Dropped [-n] from revert.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 1812
diff changeset
4447 _('forcibly copy over an existing managed file')),
3189
a73a785ea8e1 factor opts: --dry-run option
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 3188
diff changeset
4448 ] + walkopts + dryrunopts,
7364
ad7f736f3214 help: remove redundant 'hg <command>' from command synopses
Matt Mackall <mpm@selenic.com>
parents: 7361
diff changeset
4449 _('[OPTION]... [SOURCE]... DEST')),
ad7f736f3214 help: remove redundant 'hg <command>' from command synopses
Matt Mackall <mpm@selenic.com>
parents: 7361
diff changeset
4450 "debugancestor": (debugancestor, [], _('[INDEX] REV1 REV2')),
11337
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
4451 "debugbuilddag":
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
4452 (debugbuilddag,
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
4453 [('m', 'mergeable-file', None, _('add single file mergeable changes')),
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
4454 ('a', 'appended-file', None, _('add single file all revs append to')),
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
4455 ('o', 'overwritten-file', None, _('add single file all revs overwrite')),
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
4456 ('n', 'new-file', None, _('add new file at each rev')),
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
4457 ],
0f3c8a47960e debugbuilddag: build a changelog dag from a concise description
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11336
diff changeset
4458 _('[OPTION]... TEXT')),
13724
fe57046e9448 commands: add debugbundle command
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 13723
diff changeset
4459 "debugbundle":
fe57046e9448 commands: add debugbundle command
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 13723
diff changeset
4460 (debugbundle,
fe57046e9448 commands: add debugbundle command
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 13723
diff changeset
4461 [('a', 'all', None, _('show all details')),
fe57046e9448 commands: add debugbundle command
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 13723
diff changeset
4462 ],
fe57046e9448 commands: add debugbundle command
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 13723
diff changeset
4463 _('FILE')),
9604
fcc85abc762e commands: fix missing empty synopses
Matt Mackall <mpm@selenic.com>
parents: 9603
diff changeset
4464 "debugcheckstate": (debugcheckstate, [], ''),
7880
7ca2be800804 add debugcommands command: an easy to parse command + option index
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 7875
diff changeset
4465 "debugcommands": (debugcommands, [], _('[COMMAND]')),
2034
5e7aff1b6ae1 add --options to debugcomplete and change bash_completion to use it
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2033
diff changeset
4466 "debugcomplete":
5e7aff1b6ae1 add --options to debugcomplete and change bash_completion to use it
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2033
diff changeset
4467 (debugcomplete,
5e7aff1b6ae1 add --options to debugcomplete and change bash_completion to use it
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 2033
diff changeset
4468 [('o', 'options', None, _('show the command options'))],
7364
ad7f736f3214 help: remove redundant 'hg <command>' from command synopses
Matt Mackall <mpm@selenic.com>
parents: 7361
diff changeset
4469 _('[-o] CMD')),
11336
3dfbe26cfded debugdag and debugindexdag: emit changelog/revlog DAGs as concise text
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11331
diff changeset
4470 "debugdag":
3dfbe26cfded debugdag and debugindexdag: emit changelog/revlog DAGs as concise text
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11331
diff changeset
4471 (debugdag,
3dfbe26cfded debugdag and debugindexdag: emit changelog/revlog DAGs as concise text
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11331
diff changeset
4472 [('t', 'tags', None, _('use tags as labels')),
3dfbe26cfded debugdag and debugindexdag: emit changelog/revlog DAGs as concise text
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11331
diff changeset
4473 ('b', 'branches', None, _('annotate with branch names')),
3dfbe26cfded debugdag and debugindexdag: emit changelog/revlog DAGs as concise text
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11331
diff changeset
4474 ('', 'dots', None, _('use dots for runs')),
3dfbe26cfded debugdag and debugindexdag: emit changelog/revlog DAGs as concise text
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11331
diff changeset
4475 ('s', 'spaces', None, _('separate elements by spaces')),
3dfbe26cfded debugdag and debugindexdag: emit changelog/revlog DAGs as concise text
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11331
diff changeset
4476 ],
3dfbe26cfded debugdag and debugindexdag: emit changelog/revlog DAGs as concise text
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 11331
diff changeset
4477 _('[OPTION]... [FILE [REV]...]')),
5781
45d034c79ece Sort commands table again and add some missing 'hg' in synopsises.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 5778
diff changeset
4478 "debugdate":
45d034c79ece Sort commands table again and add some missing 'hg' in synopsises.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 5778
diff changeset
4479 (debugdate,
45d034c79ece Sort commands table again and add some missing 'hg' in synopsises.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 5778
diff changeset
4480 [('e', 'extended', None, _('try extended date formats'))],
7364
ad7f736f3214 help: remove redundant 'hg <command>' from command synopses
Matt Mackall <mpm@selenic.com>
parents: 7361
diff changeset
4481 _('[-e] DATE [RANGE]')),
ad7f736f3214 help: remove redundant 'hg <command>' from command synopses
Matt Mackall <mpm@selenic.com>
parents: 7361
diff changeset
4482 "debugdata": (debugdata, [], _('FILE REV')),
ad7f736f3214 help: remove redundant 'hg <command>' from command synopses
Matt Mackall <mpm@selenic.com>
parents: 7361
diff changeset
4483 "debugfsinfo": (debugfsinfo, [], _('[PATH]')),
13741
b51bf961b3cb wireproto: add getbundle() function
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 13727
diff changeset
4484 "debuggetbundle":
b51bf961b3cb wireproto: add getbundle() function
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 13727
diff changeset
4485 (debuggetbundle,
b51bf961b3cb wireproto: add getbundle() function
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 13727
diff changeset
4486 [('H', 'head', [], _('id of head node'), _('ID')),
b51bf961b3cb wireproto: add getbundle() function
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 13727
diff changeset
4487 ('C', 'common', [], _('id of common node'), _('ID')),
b51bf961b3cb wireproto: add getbundle() function
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 13727
diff changeset
4488 ('t', 'type', 'bzip2', _('bundle compression type to use'), _('TYPE')),
b51bf961b3cb wireproto: add getbundle() function
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 13727
diff changeset
4489 ],
b51bf961b3cb wireproto: add getbundle() function
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 13727
diff changeset
4490 _('REPO FILE [-H|-C ID]...')),
13396
3e66eec9a814 add debugignore which yields the combined ignore patten of the .hgignore files
jfh <jason@jasonfharris.com>
parents: 13388
diff changeset
4491 "debugignore": (debugignore, [], ''),
12893
15ca4bfecfe3 debugindex: add --format flag to allow debugging parentdelta
Matt Mackall <mpm@selenic.com>
parents: 12863
diff changeset
4492 "debugindex": (debugindex,
15ca4bfecfe3 debugindex: add --format flag to allow debugging parentdelta
Matt Mackall <mpm@selenic.com>
parents: 12863
diff changeset
4493 [('f', 'format', 0, _('revlog format'), _('FORMAT'))],
15ca4bfecfe3 debugindex: add --format flag to allow debugging parentdelta
Matt Mackall <mpm@selenic.com>
parents: 12863
diff changeset
4494 _('FILE')),
7364
ad7f736f3214 help: remove redundant 'hg <command>' from command synopses
Matt Mackall <mpm@selenic.com>
parents: 7361
diff changeset
4495 "debugindexdot": (debugindexdot, [], _('FILE')),
9604
fcc85abc762e commands: fix missing empty synopses
Matt Mackall <mpm@selenic.com>
parents: 9603
diff changeset
4496 "debuginstall": (debuginstall, [], ''),
13723
e615765fdcc7 wireproto: add known([id]) function
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 13720
diff changeset
4497 "debugknown": (debugknown, [], _('REPO ID...')),
11371
4c8842ee97ff pushkey: add debugpushkey command for testing
Matt Mackall <mpm@selenic.com>
parents: 11353
diff changeset
4498 "debugpushkey": (debugpushkey, [], _('REPO NAMESPACE [KEY OLD NEW]')),
1755
a8f7791e3680 add 'debugrebuildstate' to rebuild the dirstate from a given revision
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1754
diff changeset
4499 "debugrebuildstate":
a8f7791e3680 add 'debugrebuildstate' to rebuild the dirstate from a given revision
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1754
diff changeset
4500 (debugrebuildstate,
11321
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4501 [('r', 'rev', '',
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4502 _('revision to rebuild to'), _('REV'))],
7364
ad7f736f3214 help: remove redundant 'hg <command>' from command synopses
Matt Mackall <mpm@selenic.com>
parents: 7361
diff changeset
4503 _('[-r REV] [REV]')),
4730
eadfaa9ec487 Updated command tables in commands.py and hgext extensions.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 4726
diff changeset
4504 "debugrename":
eadfaa9ec487 Updated command tables in commands.py and hgext extensions.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 4726
diff changeset
4505 (debugrename,
11321
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4506 [('r', 'rev', '',
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4507 _('revision to debug'), _('REV'))],
7364
ad7f736f3214 help: remove redundant 'hg <command>' from command synopses
Matt Mackall <mpm@selenic.com>
parents: 7361
diff changeset
4508 _('[-r REV] FILE')),
11276
f28b58e35768 revset: add a debugrevspec command
Matt Mackall <mpm@selenic.com>
parents: 11273
diff changeset
4509 "debugrevspec":
f28b58e35768 revset: add a debugrevspec command
Matt Mackall <mpm@selenic.com>
parents: 11273
diff changeset
4510 (debugrevspec, [], ('REVSPEC')),
5781
45d034c79ece Sort commands table again and add some missing 'hg' in synopsises.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 5778
diff changeset
4511 "debugsetparents":
7364
ad7f736f3214 help: remove redundant 'hg <command>' from command synopses
Matt Mackall <mpm@selenic.com>
parents: 7361
diff changeset
4512 (debugsetparents, [], _('REV1 [REV2]')),
6296
a9e6b8875805 debugstate: add --nodates
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 6276
diff changeset
4513 "debugstate":
a9e6b8875805 debugstate: add --nodates
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 6276
diff changeset
4514 (debugstate,
a9e6b8875805 debugstate: add --nodates
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 6276
diff changeset
4515 [('', 'nodates', None, _('do not display the saved mtime'))],
7364
ad7f736f3214 help: remove redundant 'hg <command>' from command synopses
Matt Mackall <mpm@selenic.com>
parents: 7361
diff changeset
4516 _('[OPTION]...')),
8812
859f841937d0 subrepo: introduce basic state parsing
Matt Mackall <mpm@selenic.com>
parents: 8810
diff changeset
4517 "debugsub":
859f841937d0 subrepo: introduce basic state parsing
Matt Mackall <mpm@selenic.com>
parents: 8810
diff changeset
4518 (debugsub,
11321
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4519 [('r', 'rev', '',
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4520 _('revision to check'), _('REV'))],
8812
859f841937d0 subrepo: introduce basic state parsing
Matt Mackall <mpm@selenic.com>
parents: 8810
diff changeset
4521 _('[-r REV] [REV]')),
7364
ad7f736f3214 help: remove redundant 'hg <command>' from command synopses
Matt Mackall <mpm@selenic.com>
parents: 7361
diff changeset
4522 "debugwalk": (debugwalk, walkopts, _('[OPTION]... [FILE]...')),
13720
9c4e04fe267e debug: add debugwireargs to test argument passing over the wire
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 13697
diff changeset
4523 "debugwireargs":
9c4e04fe267e debug: add debugwireargs to test argument passing over the wire
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 13697
diff changeset
4524 (debugwireargs,
9c4e04fe267e debug: add debugwireargs to test argument passing over the wire
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 13697
diff changeset
4525 [('', 'three', '', 'three'),
9c4e04fe267e debug: add debugwireargs to test argument passing over the wire
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 13697
diff changeset
4526 ('', 'four', '', 'four'),
9c4e04fe267e debug: add debugwireargs to test argument passing over the wire
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 13697
diff changeset
4527 ] + remoteopts,
9c4e04fe267e debug: add debugwireargs to test argument passing over the wire
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 13697
diff changeset
4528 _('REPO [OPTIONS]... [ONE [TWO]]')),
697
cb1be2327220 Multiple cleanups of things detected by pylint.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 696
diff changeset
4529 "^diff":
cb1be2327220 Multiple cleanups of things detected by pylint.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 696
diff changeset
4530 (diff,
11321
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4531 [('r', 'rev', [],
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4532 _('revision'), _('REV')),
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4533 ('c', 'change', '',
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4534 _('change made by revision'), _('REV'))
12167
d2c5b0927c28 diff: recurse into subrepositories with --subrepos/-S flag
Martin Geisler <mg@lazybytes.net>
parents: 12166
diff changeset
4535 ] + diffopts + diffopts2 + walkopts + subrepoopts,
10520
75361931884d commands: mention diff -c
timeless <timeless@mozdev.org>
parents: 10515
diff changeset
4536 _('[OPTION]... ([-c REV] | [-r REV1 [-r REV2]]) [FILE]...')),
697
cb1be2327220 Multiple cleanups of things detected by pylint.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 696
diff changeset
4537 "^export":
cb1be2327220 Multiple cleanups of things detected by pylint.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 696
diff changeset
4538 (export,
11321
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4539 [('o', 'output', '',
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4540 _('print output to file with formatted name'), _('FORMAT')),
10015
b5f352f33520 commands.export: accept -r option as revision specification
Alexander Solovyov <piranha@piranha.org.ua>
parents: 10014
diff changeset
4541 ('', 'switch-parent', None, _('diff against the second parent')),
11321
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4542 ('r', 'rev', [],
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4543 _('revisions to export'), _('REV')),
6668
034f444902d9 mq: qdiff: support all diffopts
Jason Orendorff <jorendorff@mozilla.com>
parents: 6658
diff changeset
4544 ] + diffopts,
7364
ad7f736f3214 help: remove redundant 'hg <command>' from command synopses
Matt Mackall <mpm@selenic.com>
parents: 7361
diff changeset
4545 _('[OPTION]... [-o OUTFILESPEC] REV...')),
8902
b9a8b616521d Add a forget command for easily untracking files.
Steve Losh <steve@stevelosh.com>
parents: 8879
diff changeset
4546 "^forget":
b9a8b616521d Add a forget command for easily untracking files.
Steve Losh <steve@stevelosh.com>
parents: 8879
diff changeset
4547 (forget,
b9a8b616521d Add a forget command for easily untracking files.
Steve Losh <steve@stevelosh.com>
parents: 8879
diff changeset
4548 [] + walkopts,
b9a8b616521d Add a forget command for easily untracking files.
Steve Losh <steve@stevelosh.com>
parents: 8879
diff changeset
4549 _('[OPTION]... FILE...')),
1065
6e94c0365d98 Cleanups to commands.py
Thomas Arendsen Hein <thomas@intevation.de>
parents: 1062
diff changeset
4550 "grep":
6e94c0365d98 Cleanups to commands.py
Thomas Arendsen Hein <thomas@intevation.de>
parents: 1062
diff changeset
4551 (grep,
1402
9d2c2e6b32b5 i18n part2: use '_' for all strings who are part of the user interface
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1400
diff changeset
4552 [('0', 'print0', None, _('end fields with NUL')),
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
4553 ('', 'all', None, _('print all revisions that match')),
2870
8eaaf1321bfe grep: add --follow support.
Brendan Cully <brendan@kublai.com>
parents: 2869
diff changeset
4554 ('f', 'follow', None,
10282
08a0f04b56bd many, many trivial check-code fixups
Matt Mackall <mpm@selenic.com>
parents: 10270
diff changeset
4555 _('follow changeset history,'
08a0f04b56bd many, many trivial check-code fixups
Matt Mackall <mpm@selenic.com>
parents: 10270
diff changeset
4556 ' or file history across copies and renames')),
1402
9d2c2e6b32b5 i18n part2: use '_' for all strings who are part of the user interface
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1400
diff changeset
4557 ('i', 'ignore-case', None, _('ignore case when matching')),
1602
fb4149eebdd4 strictly adher to 80 chars per line
Muli Ben-Yehuda <mulix@mulix.org>
parents: 1601
diff changeset
4558 ('l', 'files-with-matches', None,
8028
3aaca5901ade expand "rev" to "revision" in help texts
Martin Geisler <mg@lazybytes.net>
parents: 8027
diff changeset
4559 _('print only filenames and revisions that match')),
1437
ea51d296085f import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1436
diff changeset
4560 ('n', 'line-number', None, _('print matching line numbers')),
11321
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4561 ('r', 'rev', [],
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4562 _('only search files changed within revision range'), _('REV')),
6134
7b937b26adf7 Make annotae/grep print short dates with -q/--quiet.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 6133
diff changeset
4563 ('u', 'user', None, _('list the author (long with -v)')),
7b937b26adf7 Make annotae/grep print short dates with -q/--quiet.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 6133
diff changeset
4564 ('d', 'date', None, _('list the date (short with -q)')),
3188
725e3d3145d8 factor opts: walk options
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 3187
diff changeset
4565 ] + walkopts,
7364
ad7f736f3214 help: remove redundant 'hg <command>' from command synopses
Matt Mackall <mpm@selenic.com>
parents: 7361
diff changeset
4566 _('[OPTION]... PATTERN [FILE]...')),
905
65763ff9fa53 Update online help of hg heads for new --branches option.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 904
diff changeset
4567 "heads":
65763ff9fa53 Update online help of hg heads for new --branches option.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 904
diff changeset
4568 (heads,
11321
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4569 [('r', 'rev', '',
12613
f365aed7cc5b heads: mention STARTREV in synopsis and help for --rev
Martin Geisler <mg@lazybytes.net>
parents: 12584
diff changeset
4570 _('show only heads which are descendants of STARTREV'),
f365aed7cc5b heads: mention STARTREV in synopsis and help for --rev
Martin Geisler <mg@lazybytes.net>
parents: 12584
diff changeset
4571 _('STARTREV')),
10350
fd511e9eeea6 commands: do all branch heads by default, demote topological to -t/--topo
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 10349
diff changeset
4572 ('t', 'topo', False, _('show topological heads only')),
7656
6a24fb994701 branch closing: referencing open and closed branches/heads
John Mulligan <phlogistonjohn@asynchrono.us>
parents: 7655
diff changeset
4573 ('a', 'active', False,
11777
9299b98041e8 commands: use round parenthesis in 'hg head --active' help
Martin Geisler <mg@aragost.com>
parents: 11692
diff changeset
4574 _('show active branchheads only (DEPRECATED)')),
8695
9a89253a32e6 heads: show closed heads only when --closed is passed
John Mulligan <phlogistonjohn@asynchrono.us>
parents: 8679
diff changeset
4575 ('c', 'closed', False,
9189
c2041f80f22a heads: more clarity for --closed
Matt Mackall <mpm@selenic.com>
parents: 9188
diff changeset
4576 _('show normal and closed branch heads')),
6192
cd65a67aff31 Introduce templateopts and logopts to reduce duplicate option definitions.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 6191
diff changeset
4577 ] + templateopts,
12613
f365aed7cc5b heads: mention STARTREV in synopsis and help for --rev
Martin Geisler <mg@lazybytes.net>
parents: 12584
diff changeset
4578 _('[-ac] [-r STARTREV] [REV]...')),
7364
ad7f736f3214 help: remove redundant 'hg <command>' from command synopses
Matt Mackall <mpm@selenic.com>
parents: 7361
diff changeset
4579 "help": (help_, [], _('[TOPIC]')),
4665
091c9e54d306 identify: accept a revision argument
Matt Mackall <mpm@selenic.com>
parents: 4664
diff changeset
4580 "identify|id":
091c9e54d306 identify: accept a revision argument
Matt Mackall <mpm@selenic.com>
parents: 4664
diff changeset
4581 (identify,
11321
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4582 [('r', 'rev', '',
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4583 _('identify the specified revision'), _('REV')),
4666
48c94bffdb28 identify: add support for output flags
Matt Mackall <mpm@selenic.com>
parents: 4665
diff changeset
4584 ('n', 'num', None, _('show local revision number')),
48c94bffdb28 identify: add support for output flags
Matt Mackall <mpm@selenic.com>
parents: 4665
diff changeset
4585 ('i', 'id', None, _('show global revision id')),
48c94bffdb28 identify: add support for output flags
Matt Mackall <mpm@selenic.com>
parents: 4665
diff changeset
4586 ('b', 'branch', None, _('show branch')),
13477
0fb2ff949790 id: add bookmarks to id
Kevin Bullock <kbullock@ringworld.org>
parents: 13473
diff changeset
4587 ('t', 'tags', None, _('show tags')),
0fb2ff949790 id: add bookmarks to id
Kevin Bullock <kbullock@ringworld.org>
parents: 13473
diff changeset
4588 ('B', 'bookmarks', None, _('show bookmarks'))],
0fb2ff949790 id: add bookmarks to id
Kevin Bullock <kbullock@ringworld.org>
parents: 13473
diff changeset
4589 _('[-nibtB] [-r REV] [SOURCE]')),
697
cb1be2327220 Multiple cleanups of things detected by pylint.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 696
diff changeset
4590 "import|patch":
cb1be2327220 Multiple cleanups of things detected by pylint.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 696
diff changeset
4591 (import_,
1602
fb4149eebdd4 strictly adher to 80 chars per line
Muli Ben-Yehuda <mulix@mulix.org>
parents: 1601
diff changeset
4592 [('p', 'strip', 1,
8038
2ee6769afe82 commands: removed bad linebreak in import help
Martin Geisler <mg@lazybytes.net>
parents: 8034
diff changeset
4593 _('directory strip option for patch. This has the same '
11321
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4594 'meaning as the corresponding patch option'),
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4595 _('NUM')),
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4596 ('b', 'base', '',
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4597 _('base path'), _('PATH')),
1602
fb4149eebdd4 strictly adher to 80 chars per line
Muli Ben-Yehuda <mulix@mulix.org>
parents: 1601
diff changeset
4598 ('f', 'force', None,
4263
47ba52121433 Add import --exact.
Brendan Cully <brendan@kublai.com>
parents: 4256
diff changeset
4599 _('skip check for outstanding uncommitted changes')),
10282
08a0f04b56bd many, many trivial check-code fixups
Matt Mackall <mpm@selenic.com>
parents: 10270
diff changeset
4600 ('', 'no-commit', None,
08a0f04b56bd many, many trivial check-code fixups
Matt Mackall <mpm@selenic.com>
parents: 10270
diff changeset
4601 _("don't commit, just update the working directory")),
4263
47ba52121433 Add import --exact.
Brendan Cully <brendan@kublai.com>
parents: 4256
diff changeset
4602 ('', 'exact', None,
4592
5243cece3d97 Add --import-branch option to hg import to pull in branch information without --exact
Eric Hopper <hopper@omnifarious.org>
parents: 4587
diff changeset
4603 _('apply patch to the nodes from which it was generated')),
5243cece3d97 Add --import-branch option to hg import to pull in branch information without --exact
Eric Hopper <hopper@omnifarious.org>
parents: 4587
diff changeset
4604 ('', 'import-branch', None,
8034
15725dbc900f commands: lower-case --import-branch help text
Martin Geisler <mg@lazybytes.net>
parents: 8033
diff changeset
4605 _('use any branch information in patch (implied by --exact)'))] +
7402
bffdab64dfbb import: add similarity option (issue295)
Brendan Cully <brendan@kublai.com>
parents: 7372
diff changeset
4606 commitopts + commitopts2 + similarityopts,
7364
ad7f736f3214 help: remove redundant 'hg <command>' from command synopses
Matt Mackall <mpm@selenic.com>
parents: 7361
diff changeset
4607 _('[OPTION]... PATCH...')),
5778
9e97a7a0bb82 realign commands table
Thomas Arendsen Hein <thomas@intevation.de>
parents: 5776
diff changeset
4608 "incoming|in":
9e97a7a0bb82 realign commands table
Thomas Arendsen Hein <thomas@intevation.de>
parents: 5776
diff changeset
4609 (incoming,
6192
cd65a67aff31 Introduce templateopts and logopts to reduce duplicate option definitions.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 6191
diff changeset
4610 [('f', 'force', None,
10375
adf9505e8888 commands: Try to improve help options text for basic commands
timeless@mozdev.org
parents: 10369
diff changeset
4611 _('run even if remote repository is unrelated')),
1907
7718885070b1 let commands that show changesets use templates.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 1800
diff changeset
4612 ('n', 'newest-first', None, _('show newest record first')),
11321
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4613 ('', 'bundle', '',
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4614 _('file to store the bundles into'), _('FILE')),
6304
d99b4e8652b3 Make clear that for a changegroup '-r' pulls "up to" a revision
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 6299
diff changeset
4615 ('r', 'rev', [],
11321
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4616 _('a remote changeset intended to be added'), _('REV')),
13366
c756e9166417 bookmarks: merge incoming/outgoing into core
Matt Mackall <mpm@selenic.com>
parents: 13344
diff changeset
4617 ('B', 'bookmarks', False, _("compare bookmarks")),
10379
a78bfaf988e1 add -b/--branch option to clone, bundle, incoming, outgoing, pull, push
Sune Foldager <cryo@cyanite.org>
parents: 10376
diff changeset
4618 ('b', 'branch', [],
11321
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4619 _('a specific branch you would like to pull'), _('BRANCH')),
12274
c02e1ed3d407 incoming: recurse into subrepositories with --subrepos/-S flag
Martin Geisler <mg@lazybytes.net>
parents: 12273
diff changeset
4620 ] + logopts + remoteopts + subrepoopts,
7364
ad7f736f3214 help: remove redundant 'hg <command>' from command synopses
Matt Mackall <mpm@selenic.com>
parents: 7361
diff changeset
4621 _('[-p] [-n] [-M] [-f] [-r REV]...'
2544
0ab63318bc36 Added missing space in continued string.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 2521
diff changeset
4622 ' [--bundle FILENAME] [SOURCE]')),
2598
b898afee9d0d Add ui method to set --ssh/--remotecmd, use it in init/clone/pull/push/in/out.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 2597
diff changeset
4623 "^init":
3885
6081b4c68baf Corrected synopsis for many commands.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 3862
diff changeset
4624 (init,
6081b4c68baf Corrected synopsis for many commands.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 3862
diff changeset
4625 remoteopts,
7364
ad7f736f3214 help: remove redundant 'hg <command>' from command synopses
Matt Mackall <mpm@selenic.com>
parents: 7361
diff changeset
4626 _('[-e CMD] [--remotecmd CMD] [DEST]')),
697
cb1be2327220 Multiple cleanups of things detected by pylint.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 696
diff changeset
4627 "locate":
cb1be2327220 Multiple cleanups of things detected by pylint.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 696
diff changeset
4628 (locate,
11321
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4629 [('r', 'rev', '',
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4630 _('search the repository as it is in REV'), _('REV')),
1602
fb4149eebdd4 strictly adher to 80 chars per line
Muli Ben-Yehuda <mulix@mulix.org>
parents: 1601
diff changeset
4631 ('0', 'print0', None,
fb4149eebdd4 strictly adher to 80 chars per line
Muli Ben-Yehuda <mulix@mulix.org>
parents: 1601
diff changeset
4632 _('end filenames with NUL, for use with xargs')),
fb4149eebdd4 strictly adher to 80 chars per line
Muli Ben-Yehuda <mulix@mulix.org>
parents: 1601
diff changeset
4633 ('f', 'fullpath', None,
fb4149eebdd4 strictly adher to 80 chars per line
Muli Ben-Yehuda <mulix@mulix.org>
parents: 1601
diff changeset
4634 _('print complete paths from the filesystem root')),
3188
725e3d3145d8 factor opts: walk options
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 3187
diff changeset
4635 ] + walkopts,
7364
ad7f736f3214 help: remove redundant 'hg <command>' from command synopses
Matt Mackall <mpm@selenic.com>
parents: 7361
diff changeset
4636 _('[OPTION]... [PATTERN]...')),
697
cb1be2327220 Multiple cleanups of things detected by pylint.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 696
diff changeset
4637 "^log|history":
cb1be2327220 Multiple cleanups of things detected by pylint.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 696
diff changeset
4638 (log,
3876
1e0b94cfba0e Remove deprecated old-style branch support
Matt Mackall <mpm@selenic.com>
parents: 3862
diff changeset
4639 [('f', 'follow', None,
10282
08a0f04b56bd many, many trivial check-code fixups
Matt Mackall <mpm@selenic.com>
parents: 10270
diff changeset
4640 _('follow changeset history,'
08a0f04b56bd many, many trivial check-code fixups
Matt Mackall <mpm@selenic.com>
parents: 10270
diff changeset
4641 ' or file history across copies and renames')),
2784
12a7bfcafd8f Add log option --follow-first to follow only the first parent of
Brendan Cully <brendan@kublai.com>
parents: 2783
diff changeset
4642 ('', 'follow-first', None,
12a7bfcafd8f Add log option --follow-first to follow only the first parent of
Brendan Cully <brendan@kublai.com>
parents: 2783
diff changeset
4643 _('only follow the first parent of merge changesets')),
11321
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4644 ('d', 'date', '',
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4645 _('show revisions matching date spec'), _('DATE')),
3197
e18c3d08528d Show copies in hg log.
Brendan Cully <brendan@kublai.com>
parents: 3194
diff changeset
4646 ('C', 'copies', None, _('show copied files')),
11321
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4647 ('k', 'keyword', [],
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4648 _('do case-insensitive search for a given text'), _('TEXT')),
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4649 ('r', 'rev', [],
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4650 _('show the specified revision or range'), _('REV')),
8028
3aaca5901ade expand "rev" to "revision" in help texts
Martin Geisler <mg@lazybytes.net>
parents: 8027
diff changeset
4651 ('', 'removed', None, _('include revisions where files were removed')),
1615
83238c1db6de Cleanup of indentation, spacing, newlines, strings and line length
Thomas Arendsen Hein <thomas@intevation.de>
parents: 1607
diff changeset
4652 ('m', 'only-merges', None, _('show only merges')),
11321
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4653 ('u', 'user', [],
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4654 _('revisions committed by user'), _('USER')),
10957
0d5f139b23c1 commands: Add 'hg log --branch' and deprecate 'hg log --only-branch'
Steve Losh <steve@stevelosh.com>
parents: 10934
diff changeset
4655 ('', 'only-branch', [],
11321
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4656 _('show only changesets within the given named branch (DEPRECATED)'),
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4657 _('BRANCH')),
10957
0d5f139b23c1 commands: Add 'hg log --branch' and deprecate 'hg log --only-branch'
Steve Losh <steve@stevelosh.com>
parents: 10934
diff changeset
4658 ('b', 'branch', [],
11321
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4659 _('show changesets within the given named branch'), _('BRANCH')),
10282
08a0f04b56bd many, many trivial check-code fixups
Matt Mackall <mpm@selenic.com>
parents: 10270
diff changeset
4660 ('P', 'prune', [],
11321
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4661 _('do not display revision or any of its ancestors'), _('REV')),
6192
cd65a67aff31 Introduce templateopts and logopts to reduce duplicate option definitions.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 6191
diff changeset
4662 ] + logopts + walkopts,
7364
ad7f736f3214 help: remove redundant 'hg <command>' from command synopses
Matt Mackall <mpm@selenic.com>
parents: 7361
diff changeset
4663 _('[OPTION]... [FILE]')),
5778
9e97a7a0bb82 realign commands table
Thomas Arendsen Hein <thomas@intevation.de>
parents: 5776
diff changeset
4664 "manifest":
9e97a7a0bb82 realign commands table
Thomas Arendsen Hein <thomas@intevation.de>
parents: 5776
diff changeset
4665 (manifest,
11321
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4666 [('r', 'rev', '',
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4667 _('revision to display'), _('REV'))],
7364
ad7f736f3214 help: remove redundant 'hg <command>' from command synopses
Matt Mackall <mpm@selenic.com>
parents: 7361
diff changeset
4668 _('[-r REV]')),
4014
509342f95564 various doc fixes
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 4013
diff changeset
4669 "^merge":
2044
b343e7d454b4 Don't allow --style and --template for hg update and hg merge.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 2043
diff changeset
4670 (merge,
4450
8fa54b9c6c5a accept -r REV in more places
Daniel Holth <dholth@fastmail.fm>
parents: 4445
diff changeset
4671 [('f', 'force', None, _('force a merge with outstanding changes')),
12750
05bd2658bbb3 merge: add --tool argument to merge and resolve
Steve Borho <steve@borho.org>
parents: 12727
diff changeset
4672 ('t', 'tool', '', _('specify merge tool')),
11321
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4673 ('r', 'rev', '',
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4674 _('revision to merge'), _('REV')),
8834
6d36fc70754e merge: rename -S/--show option to -P/--preview
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 8815
diff changeset
4675 ('P', 'preview', None,
8387
50b6af595e0c merge: add -S/--show option to review revisions without merging
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 8366
diff changeset
4676 _('review revisions to merge (no merge is performed)'))],
9952
5b149c88d9e8 commands: add missing options in command line help
timeless@mozdev.org
parents: 9951
diff changeset
4677 _('[-P] [-f] [[-r] REV]')),
5778
9e97a7a0bb82 realign commands table
Thomas Arendsen Hein <thomas@intevation.de>
parents: 5776
diff changeset
4678 "outgoing|out":
9e97a7a0bb82 realign commands table
Thomas Arendsen Hein <thomas@intevation.de>
parents: 5776
diff changeset
4679 (outgoing,
6192
cd65a67aff31 Introduce templateopts and logopts to reduce duplicate option definitions.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 6191
diff changeset
4680 [('f', 'force', None,
10375
adf9505e8888 commands: Try to improve help options text for basic commands
timeless@mozdev.org
parents: 10369
diff changeset
4681 _('run even when the destination is unrelated')),
6304
d99b4e8652b3 Make clear that for a changegroup '-r' pulls "up to" a revision
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 6299
diff changeset
4682 ('r', 'rev', [],
11321
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4683 _('a changeset intended to be included in the destination'),
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4684 _('REV')),
1907
7718885070b1 let commands that show changesets use templates.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 1800
diff changeset
4685 ('n', 'newest-first', None, _('show newest record first')),
13366
c756e9166417 bookmarks: merge incoming/outgoing into core
Matt Mackall <mpm@selenic.com>
parents: 13344
diff changeset
4686 ('B', 'bookmarks', False, _("compare bookmarks")),
10379
a78bfaf988e1 add -b/--branch option to clone, bundle, incoming, outgoing, pull, push
Sune Foldager <cryo@cyanite.org>
parents: 10376
diff changeset
4687 ('b', 'branch', [],
11321
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4688 _('a specific branch you would like to push'), _('BRANCH')),
12272
42ecd56399d7 outgoing: recurse into subrepositories with --subrepos/-S flag
Martin Geisler <mg@lazybytes.net>
parents: 12271
diff changeset
4689 ] + logopts + remoteopts + subrepoopts,
7364
ad7f736f3214 help: remove redundant 'hg <command>' from command synopses
Matt Mackall <mpm@selenic.com>
parents: 7361
diff changeset
4690 _('[-M] [-p] [-n] [-f] [-r REV]... [DEST]')),
9606
69f8ac71ded1 Remove parents from default help in favor of summary
Matt Mackall <mpm@selenic.com>
parents: 9605
diff changeset
4691 "parents":
1724
5a36609f73a7 add a -b/--branch option to 'hg parents'
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1720
diff changeset
4692 (parents,
11321
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4693 [('r', 'rev', '',
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4694 _('show parents of the specified revision'), _('REV')),
6192
cd65a67aff31 Introduce templateopts and logopts to reduce duplicate option definitions.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 6191
diff changeset
4695 ] + templateopts,
8544
48dd8a93d6db commands: standardize parents command meta data
Ori Avtalion <ori@avtalion.name>
parents: 8540
diff changeset
4696 _('[-r REV] [FILE]')),
7364
ad7f736f3214 help: remove redundant 'hg <command>' from command synopses
Matt Mackall <mpm@selenic.com>
parents: 7361
diff changeset
4697 "paths": (paths, [], _('[NAME]')),
697
cb1be2327220 Multiple cleanups of things detected by pylint.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 696
diff changeset
4698 "^pull":
cb1be2327220 Multiple cleanups of things detected by pylint.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 696
diff changeset
4699 (pull,
1602
fb4149eebdd4 strictly adher to 80 chars per line
Muli Ben-Yehuda <mulix@mulix.org>
parents: 1601
diff changeset
4700 [('u', 'update', None,
10210
43f8abcec42d commands: fix help string for pull -u and unbundle -u.
Greg Ward <greg-hg@gerg.ca>
parents: 10206
diff changeset
4701 _('update to new branch head if changesets were pulled')),
1959
d53a18f592be add -f/--force to pull, incoming, outgoing, to work on unrelated repo.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 1948
diff changeset
4702 ('f', 'force', None,
d53a18f592be add -f/--force to pull, incoming, outgoing, to work on unrelated repo.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 1948
diff changeset
4703 _('run even when remote repository is unrelated')),
3885
6081b4c68baf Corrected synopsis for many commands.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 3862
diff changeset
4704 ('r', 'rev', [],
11321
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4705 _('a remote changeset intended to be added'), _('REV')),
13368
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
4706 ('B', 'bookmark', [], _("bookmark to pull"), _('BOOKMARK')),
10379
a78bfaf988e1 add -b/--branch option to clone, bundle, incoming, outgoing, pull, push
Sune Foldager <cryo@cyanite.org>
parents: 10376
diff changeset
4707 ('b', 'branch', [],
11321
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4708 _('a specific branch you would like to pull'), _('BRANCH')),
3190
37b53487c341 factor opts: remote repo access options
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 3189
diff changeset
4709 ] + remoteopts,
7364
ad7f736f3214 help: remove redundant 'hg <command>' from command synopses
Matt Mackall <mpm@selenic.com>
parents: 7361
diff changeset
4710 _('[-u] [-f] [-r REV]... [-e CMD] [--remotecmd CMD] [SOURCE]')),
818
eef752151556 Actually implement the -f switch for push
mpm@selenic.com
parents: 815
diff changeset
4711 "^push":
eef752151556 Actually implement the -f switch for push
mpm@selenic.com
parents: 815
diff changeset
4712 (push,
1402
9d2c2e6b32b5 i18n part2: use '_' for all strings who are part of the user interface
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1400
diff changeset
4713 [('f', 'force', None, _('force push')),
6304
d99b4e8652b3 Make clear that for a changegroup '-r' pulls "up to" a revision
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 6299
diff changeset
4714 ('r', 'rev', [],
11321
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4715 _('a changeset intended to be included in the destination'),
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4716 _('REV')),
13368
d4ab9486e514 bookmarks: move push/pull command features to core
Matt Mackall <mpm@selenic.com>
parents: 13367
diff changeset
4717 ('B', 'bookmark', [], _("bookmark to push"), _('BOOKMARK')),
10379
a78bfaf988e1 add -b/--branch option to clone, bundle, incoming, outgoing, pull, push
Sune Foldager <cryo@cyanite.org>
parents: 10376
diff changeset
4718 ('b', 'branch', [],
11321
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4719 _('a specific branch you would like to push'), _('BRANCH')),
11211
e43c23d189a5 push: add --new-branch option to allow intial push of new branches
Sune Foldager <cryo@cyanite.org>
parents: 11193
diff changeset
4720 ('', 'new-branch', False, _('allow pushing a new branch')),
3190
37b53487c341 factor opts: remote repo access options
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 3189
diff changeset
4721 ] + remoteopts,
7364
ad7f736f3214 help: remove redundant 'hg <command>' from command synopses
Matt Mackall <mpm@selenic.com>
parents: 7361
diff changeset
4722 _('[-f] [-r REV]... [-e CMD] [--remotecmd CMD] [DEST]')),
ad7f736f3214 help: remove redundant 'hg <command>' from command synopses
Matt Mackall <mpm@selenic.com>
parents: 7361
diff changeset
4723 "recover": (recover, []),
1615
83238c1db6de Cleanup of indentation, spacing, newlines, strings and line length
Thomas Arendsen Hein <thomas@intevation.de>
parents: 1607
diff changeset
4724 "^remove|rm":
83238c1db6de Cleanup of indentation, spacing, newlines, strings and line length
Thomas Arendsen Hein <thomas@intevation.de>
parents: 1607
diff changeset
4725 (remove,
6346
8e3b651382f5 improved semantics for remove (issue438)
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 6336
diff changeset
4726 [('A', 'after', None, _('record delete for missing files')),
8e3b651382f5 improved semantics for remove (issue438)
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 6336
diff changeset
4727 ('f', 'force', None,
6347
3b42f7ac6916 tiny tab cleanup
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 6346
diff changeset
4728 _('remove (and delete) file even if added or modified')),
3188
725e3d3145d8 factor opts: walk options
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 3187
diff changeset
4729 ] + walkopts,
7364
ad7f736f3214 help: remove redundant 'hg <command>' from command synopses
Matt Mackall <mpm@selenic.com>
parents: 7361
diff changeset
4730 _('[OPTION]... FILE...')),
12699
0159a674a7bc commands: add move alias for the rename command
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 12697
diff changeset
4731 "rename|move|mv":
1615
83238c1db6de Cleanup of indentation, spacing, newlines, strings and line length
Thomas Arendsen Hein <thomas@intevation.de>
parents: 1607
diff changeset
4732 (rename,
1816
08f4398bdb1a Updated help synopsises and reordered some options. Dropped [-n] from revert.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 1812
diff changeset
4733 [('A', 'after', None, _('record a rename that has already occurred')),
1615
83238c1db6de Cleanup of indentation, spacing, newlines, strings and line length
Thomas Arendsen Hein <thomas@intevation.de>
parents: 1607
diff changeset
4734 ('f', 'force', None,
1816
08f4398bdb1a Updated help synopsises and reordered some options. Dropped [-n] from revert.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 1812
diff changeset
4735 _('forcibly copy over an existing managed file')),
3189
a73a785ea8e1 factor opts: --dry-run option
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 3188
diff changeset
4736 ] + walkopts + dryrunopts,
7364
ad7f736f3214 help: remove redundant 'hg <command>' from command synopses
Matt Mackall <mpm@selenic.com>
parents: 7361
diff changeset
4737 _('[OPTION]... SOURCE... DEST')),
6518
92ccccb55ba3 resolve: new command
Matt Mackall <mpm@selenic.com>
parents: 6509
diff changeset
4738 "resolve":
92ccccb55ba3 resolve: new command
Matt Mackall <mpm@selenic.com>
parents: 6509
diff changeset
4739 (resolve,
9747
85a3285860d3 hg help resolve grossly mischaracterizes the --all switch
timeless@mozdev.org
parents: 9740
diff changeset
4740 [('a', 'all', None, _('select all unresolved files')),
7527
5a14a8f3b909 resolve: require -a switch to resolve all files
Matt Mackall <mpm@selenic.com>
parents: 7449
diff changeset
4741 ('l', 'list', None, _('list state of files needing merge')),
6518
92ccccb55ba3 resolve: new command
Matt Mackall <mpm@selenic.com>
parents: 6509
diff changeset
4742 ('m', 'mark', None, _('mark files as resolved')),
11836
53fdc0989047 resolve: updated help documentation for improved clarity
Mark Edgington <edgimar@gmail.com>
parents: 11777
diff changeset
4743 ('u', 'unmark', None, _('mark files as unresolved')),
12750
05bd2658bbb3 merge: add --tool argument to merge and resolve
Steve Borho <steve@borho.org>
parents: 12727
diff changeset
4744 ('t', 'tool', '', _('specify merge tool')),
9646
5b001f534452 commands: adding --no-status to resolve to match status
timeless <timeless@gmail.com>
parents: 9645
diff changeset
4745 ('n', 'no-status', None, _('hide status prefix'))]
7765
da9acc68b1dd resolve: accepts walkopts (-I and -X)
Simon Heimberg <simohe@besonet.ch>
parents: 7763
diff changeset
4746 + walkopts,
7364
ad7f736f3214 help: remove redundant 'hg <command>' from command synopses
Matt Mackall <mpm@selenic.com>
parents: 7361
diff changeset
4747 _('[OPTION]... [FILE]...')),
5574
d4ec6d61b3ee imported patch rev-help
Matt Mackall <mpm@selenic.com>
parents: 5573
diff changeset
4748 "revert":
697
cb1be2327220 Multiple cleanups of things detected by pylint.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 696
diff changeset
4749 (revert,
2983
3b7626b861f8 revert: add -a as alias for --all
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2982
diff changeset
4750 [('a', 'all', None, _('revert all changes when no arguments given')),
11321
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4751 ('d', 'date', '',
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4752 _('tipmost revision matching date'), _('DATE')),
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4753 ('r', 'rev', '',
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4754 _('revert to the specified revision'), _('REV')),
2029
d436b21b20dc rewrite revert command. fix issues 93, 123, 147.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2022
diff changeset
4755 ('', 'no-backup', None, _('do not save backup copies of files')),
3189
a73a785ea8e1 factor opts: --dry-run option
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 3188
diff changeset
4756 ] + walkopts + dryrunopts,
7364
ad7f736f3214 help: remove redundant 'hg <command>' from command synopses
Matt Mackall <mpm@selenic.com>
parents: 7361
diff changeset
4757 _('[OPTION]... [-r REV] [NAME]...')),
10882
f0bfe42c7b1f rollback: add dry-run argument, emit transaction description
Steve Borho <steve@borho.org>
parents: 10835
diff changeset
4758 "rollback": (rollback, dryrunopts),
7364
ad7f736f3214 help: remove redundant 'hg <command>' from command synopses
Matt Mackall <mpm@selenic.com>
parents: 7361
diff changeset
4759 "root": (root, []),
697
cb1be2327220 Multiple cleanups of things detected by pylint.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 696
diff changeset
4760 "^serve":
cb1be2327220 Multiple cleanups of things detected by pylint.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 696
diff changeset
4761 (serve,
11321
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4762 [('A', 'accesslog', '',
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4763 _('name of access log file to write to'), _('FILE')),
1740
f95654385065 add --daemon option to serve command. for issue 45.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 1736
diff changeset
4764 ('d', 'daemon', None, _('run server in background')),
11321
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4765 ('', 'daemon-pipefds', '',
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4766 _('used internally by daemon mode'), _('NUM')),
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4767 ('E', 'errorlog', '',
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4768 _('name of error log file to write to'), _('FILE')),
10635
27027bee318e serve: fix port config
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 10632
diff changeset
4769 # use string type, then we can check if something was passed
11321
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4770 ('p', 'port', '',
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4771 _('port to listen on (default: 8000)'), _('PORT')),
10282
08a0f04b56bd many, many trivial check-code fixups
Matt Mackall <mpm@selenic.com>
parents: 10270
diff changeset
4772 ('a', 'address', '',
11321
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4773 _('address to listen on (default: all interfaces)'), _('ADDR')),
10282
08a0f04b56bd many, many trivial check-code fixups
Matt Mackall <mpm@selenic.com>
parents: 10270
diff changeset
4774 ('', 'prefix', '',
11321
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4775 _('prefix path to serve from (default: server root)'), _('PREFIX')),
1615
83238c1db6de Cleanup of indentation, spacing, newlines, strings and line length
Thomas Arendsen Hein <thomas@intevation.de>
parents: 1607
diff changeset
4776 ('n', 'name', '',
11321
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4777 _('name to show in web pages (default: working directory)'),
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4778 _('NAME')),
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4779 ('', 'web-conf', '',
12582
18c79cef795c serve: let --web-conf help reference hgweb
Mads Kiilerich <mads@kiilerich.com>
parents: 12400
diff changeset
4780 _('name of the hgweb config file (see "hg help hgweb")'),
11321
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4781 _('FILE')),
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4782 ('', 'webdir-conf', '',
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4783 _('name of the hgweb config file (DEPRECATED)'), _('FILE')),
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4784 ('', 'pid-file', '',
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4785 _('name of file to write process ID to'), _('FILE')),
1402
9d2c2e6b32b5 i18n part2: use '_' for all strings who are part of the user interface
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1400
diff changeset
4786 ('', 'stdio', None, _('for remote clients')),
11321
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4787 ('t', 'templates', '',
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4788 _('web templates to use'), _('TEMPLATE')),
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4789 ('', 'style', '',
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4790 _('template style to use'), _('STYLE')),
4860
f3802f9f1840 Add SSL support to hg serve, activated via --certificate option
Brendan Cully <brendan@kublai.com>
parents: 4857
diff changeset
4791 ('6', 'ipv6', None, _('use IPv6 in addition to IPv4')),
11321
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4792 ('', 'certificate', '',
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4793 _('SSL certificate file'), _('FILE'))],
7364
ad7f736f3214 help: remove redundant 'hg <command>' from command synopses
Matt Mackall <mpm@selenic.com>
parents: 7361
diff changeset
4794 _('[OPTION]...')),
5781
45d034c79ece Sort commands table again and add some missing 'hg' in synopsises.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 5778
diff changeset
4795 "showconfig|debugconfig":
45d034c79ece Sort commands table again and add some missing 'hg' in synopsises.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 5778
diff changeset
4796 (showconfig,
45d034c79ece Sort commands table again and add some missing 'hg' in synopsises.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 5778
diff changeset
4797 [('u', 'untrusted', None, _('show untrusted configuration options'))],
7364
ad7f736f3214 help: remove redundant 'hg <command>' from command synopses
Matt Mackall <mpm@selenic.com>
parents: 7361
diff changeset
4798 _('[-u] [NAME]...')),
9603
220d39af2e57 Introduce summary command
Matt Mackall <mpm@selenic.com>
parents: 9584
diff changeset
4799 "^summary|sum":
9620
a7ef354da662 summary: add --remote
Matt Mackall <mpm@selenic.com>
parents: 9619
diff changeset
4800 (summary,
9625
022b15b9ec8c summary: remove reference to -p
Matt Mackall <mpm@selenic.com>
parents: 9620
diff changeset
4801 [('', 'remote', None, _('check for push and pull'))], '[--remote]'),
1507
cd8fadd8c689 Add explicit 'st' alias for status
Matt Mackall <mpm@selenic.com>
parents: 1506
diff changeset
4802 "^status|st":
840
141744605b51 hg status: added options to select files by status.
tksoh@users.sourceforge.net
parents: 839
diff changeset
4803 (status,
2661
5c10b7ed3411 status: add -c (clean) and -A (all files) options
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2639
diff changeset
4804 [('A', 'all', None, _('show status of all files')),
5c10b7ed3411 status: add -c (clean) and -A (all files) options
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2639
diff changeset
4805 ('m', 'modified', None, _('show only modified files')),
1402
9d2c2e6b32b5 i18n part2: use '_' for all strings who are part of the user interface
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1400
diff changeset
4806 ('a', 'added', None, _('show only added files')),
9d2c2e6b32b5 i18n part2: use '_' for all strings who are part of the user interface
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1400
diff changeset
4807 ('r', 'removed', None, _('show only removed files')),
1619
1ba0d7041ac4 Distinguish removed and deleted files. Tests are not fixed yet.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 1618
diff changeset
4808 ('d', 'deleted', None, _('show only deleted (but tracked) files')),
2661
5c10b7ed3411 status: add -c (clean) and -A (all files) options
Vadim Gelfer <vadim.gelfer@gmail.com>
parents: 2639
diff changeset
4809 ('c', 'clean', None, _('show only files without changes')),
1402
9d2c2e6b32b5 i18n part2: use '_' for all strings who are part of the user interface
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1400
diff changeset
4810 ('u', 'unknown', None, _('show only unknown (not tracked) files')),
4156
30857b5779f8 Fix help text for hg status -i
Thomas Arendsen Hein <thomas@intevation.de>
parents: 4143
diff changeset
4811 ('i', 'ignored', None, _('show only ignored files')),
1402
9d2c2e6b32b5 i18n part2: use '_' for all strings who are part of the user interface
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 1400
diff changeset
4812 ('n', 'no-status', None, _('hide status prefix')),
2639
001703ec311d Add an option '-C|--copies' to hg status to show the source of copied files.
Brendan Cully <brendan@kublai.com>
parents: 2630
diff changeset
4813 ('C', 'copies', None, _('show source of copied files')),
1602
fb4149eebdd4 strictly adher to 80 chars per line
Muli Ben-Yehuda <mulix@mulix.org>
parents: 1601
diff changeset
4814 ('0', 'print0', None,
fb4149eebdd4 strictly adher to 80 chars per line
Muli Ben-Yehuda <mulix@mulix.org>
parents: 1601
diff changeset
4815 _('end filenames with NUL, for use with xargs')),
11321
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4816 ('', 'rev', [],
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4817 _('show difference from revision'), _('REV')),
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4818 ('', 'change', '',
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4819 _('list the changed files of a revision'), _('REV')),
12166
441a74b8def1 status: recurse into subrepositories with --subrepos/-S flag
Martin Geisler <mg@lazybytes.net>
parents: 12132
diff changeset
4820 ] + walkopts + subrepoopts,
7364
ad7f736f3214 help: remove redundant 'hg <command>' from command synopses
Matt Mackall <mpm@selenic.com>
parents: 7361
diff changeset
4821 _('[OPTION]... [FILE]...')),
697
cb1be2327220 Multiple cleanups of things detected by pylint.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 696
diff changeset
4822 "tag":
cb1be2327220 Multiple cleanups of things detected by pylint.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 696
diff changeset
4823 (tag,
13135
1c1ca9d393f4 tag: abort if not at a branch head (issue2552)
Kevin Bullock <kbullock@ringworld.org>
parents: 13134
diff changeset
4824 [('f', 'force', None, _('force tag')),
4267
8185a1ca8628 tags: require -f to replace an existing tag
Matt Mackall <mpm@selenic.com>
parents: 4247
diff changeset
4825 ('l', 'local', None, _('make the tag local')),
11321
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4826 ('r', 'rev', '',
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4827 _('revision to tag'), _('REV')),
5147
c80af96943aa refactor options from cmdtable
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 5125
diff changeset
4828 ('', 'remove', None, _('remove a tag')),
c80af96943aa refactor options from cmdtable
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 5125
diff changeset
4829 # -l/--local is already there, commitopts cannot be used
11185
6d7cf82453be tag: add -e/--edit option for modifying the commit message
Steve Losh <steve@stevelosh.com>
parents: 11181
diff changeset
4830 ('e', 'edit', None, _('edit commit message')),
11321
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4831 ('m', 'message', '',
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4832 _('use <text> as commit message'), _('TEXT')),
5147
c80af96943aa refactor options from cmdtable
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 5125
diff changeset
4833 ] + commitopts2,
9952
5b149c88d9e8 commands: add missing options in command line help
timeless@mozdev.org
parents: 9951
diff changeset
4834 _('[-f] [-l] [-m TEXT] [-d DATE] [-u USER] [-r REV] NAME...')),
9604
fcc85abc762e commands: fix missing empty synopses
Matt Mackall <mpm@selenic.com>
parents: 9603
diff changeset
4835 "tags": (tags, [], ''),
1762
8eaa8e06a364 Add option -b/--branch to hg tip (as done for hg parents).
Thomas Arendsen Hein <thomas@intevation.de>
parents: 1761
diff changeset
4836 "tip":
8eaa8e06a364 Add option -b/--branch to hg tip (as done for hg parents).
Thomas Arendsen Hein <thomas@intevation.de>
parents: 1761
diff changeset
4837 (tip,
6192
cd65a67aff31 Introduce templateopts and logopts to reduce duplicate option definitions.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 6191
diff changeset
4838 [('p', 'patch', None, _('show patch')),
7763
cdc913e7fc5f log-like commands now use -G for --graph, -g for --git
Jim Correia <jim.correia@pobox.com>
parents: 7762
diff changeset
4839 ('g', 'git', None, _('use git extended diff format')),
6192
cd65a67aff31 Introduce templateopts and logopts to reduce duplicate option definitions.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 6191
diff changeset
4840 ] + templateopts,
9952
5b149c88d9e8 commands: add missing options in command line help
timeless@mozdev.org
parents: 9951
diff changeset
4841 _('[-p] [-g]')),
1218
cde6818e082a Add preliminary support for the bundle and unbundle commands
mpm@selenic.com
parents: 1215
diff changeset
4842 "unbundle":
cde6818e082a Add preliminary support for the bundle and unbundle commands
mpm@selenic.com
parents: 1215
diff changeset
4843 (unbundle,
1601
a1b25fb2e764 Error handling for unbundle, fix option line wrapping
Matt Mackall <mpm@selenic.com>
parents: 1600
diff changeset
4844 [('u', 'update', None,
10210
43f8abcec42d commands: fix help string for pull -u and unbundle -u.
Greg Ward <greg-hg@gerg.ca>
parents: 10206
diff changeset
4845 _('update to new branch head if changesets were unbundled'))],
7364
ad7f736f3214 help: remove redundant 'hg <command>' from command synopses
Matt Mackall <mpm@selenic.com>
parents: 7361
diff changeset
4846 _('[-u] FILE...')),
593
ca3c499e94c6 Shorten help
mpm@selenic.com
parents: 592
diff changeset
4847 "^update|up|checkout|co":
697
cb1be2327220 Multiple cleanups of things detected by pylint.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 696
diff changeset
4848 (update,
9718
fe1b19bfe75b help: describe new cross-branch behavior in update help text, plus cleanups
Stuart W Marks <smarks@smarks.org>
parents: 9714
diff changeset
4849 [('C', 'clean', None, _('discard uncommitted changes (no backup)')),
12688
8c034a825cfe help: improve description of update --check
Kevin Bullock <kbullock@ringworld.org>
parents: 12618
diff changeset
4850 ('c', 'check', None,
8c034a825cfe help: improve description of update --check
Kevin Bullock <kbullock@ringworld.org>
parents: 12618
diff changeset
4851 _('update across branches if no uncommitted changes')),
11321
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4852 ('d', 'date', '',
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4853 _('tipmost revision matching date'), _('DATE')),
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4854 ('r', 'rev', '',
40c06bbf58be help: show value requirement and multiple occurrence of options
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 11317
diff changeset
4855 _('revision'), _('REV'))],
9718
fe1b19bfe75b help: describe new cross-branch behavior in update help text, plus cleanups
Stuart W Marks <smarks@smarks.org>
parents: 9714
diff changeset
4856 _('[-c] [-C] [-d DATE] [[-r] REV]')),
7364
ad7f736f3214 help: remove redundant 'hg <command>' from command synopses
Matt Mackall <mpm@selenic.com>
parents: 7361
diff changeset
4857 "verify": (verify, []),
ad7f736f3214 help: remove redundant 'hg <command>' from command synopses
Matt Mackall <mpm@selenic.com>
parents: 7361
diff changeset
4858 "version": (version_, []),
1046
772507daaa17 Sort global options by topic: directories, ui, timing, other
Thomas Arendsen Hein <thomas@intevation.de>
parents: 1044
diff changeset
4859 }
209
63af1db35611 Beginning of new command parsing interface
mpm@selenic.com
parents:
diff changeset
4860
12131
c061f9882ff7 debugdata: try to access filelogs through repo, if possible
Sune Foldager <cryo@cyanite.org>
parents: 12130
diff changeset
4861 norepo = ("clone init version help debugcommands debugcomplete"
13723
e615765fdcc7 wireproto: add known([id]) function
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 13720
diff changeset
4862 " debugdate debuginstall debugfsinfo debugpushkey debugwireargs"
13741
b51bf961b3cb wireproto: add getbundle() function
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents: 13727
diff changeset
4863 " debugknown debuggetbundle debugbundle")
12131
c061f9882ff7 debugdata: try to access filelogs through repo, if possible
Sune Foldager <cryo@cyanite.org>
parents: 12130
diff changeset
4864 optionalrepo = ("identify paths serve showconfig debugancestor debugdag"
12132
8a0e5b0c0ba9 debugindex(dot): try to access filelogs through repo, if possible
Sune Foldager <sune.foldager@edlund.dk>
parents: 12131
diff changeset
4865 " debugdata debugindex debugindexdot")