Mercurial > hg > mercurial-crew-with-dirclash
annotate mercurial/commands.py @ 5483:0c43f87baba3 default tip
Fix file-changed-to-dir and dir-to-file commits (issue660).
Allow adding to dirstate files that clash with previously existing
but marked for removal. Protect from reintroducing clashes by revert.
This change doesn't address related issues with update. Current
workaround is to do "clean" update by manually removing conflicting
files/dirs from working directory.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Sat, 27 Oct 2007 16:27:55 +0400 |
parents | 8feb33c2d153 |
children |
rev | line source |
---|---|
249 | 1 # commands.py - command processing for mercurial |
2 # | |
4635
63b9d2deed48
Updated copyright notices and add "and others" to "hg version"
Thomas Arendsen Hein <thomas@intevation.de>
parents:
4615
diff
changeset
|
3 # Copyright 2005-2007 Matt Mackall <mpm@selenic.com> |
249 | 4 # |
5 # This software may be used and distributed according to the terms | |
6 # of the GNU General Public License, incorporated herein by reference. | |
7 | |
1092 | 8 from node import * |
3893 | 9 from i18n import _ |
5034
c0417a319e39
commands: move commit to cmdutil as wrapper for commit-like functions
Bryan O'Sullivan <bos@serpentine.com>
parents:
4967
diff
changeset
|
10 import os, re, sys, urllib |
5185
18a9fbb5cd78
dispatch: move command dispatching into its own module
Matt Mackall <mpm@selenic.com>
parents:
5184
diff
changeset
|
11 import hg, util, revlog, bundlerepo, extensions |
3886
abaee83ce0a6
Replace demandload with new demandimport
Matt Mackall <mpm@selenic.com>
parents:
3885
diff
changeset
|
12 import difflib, patch, time, help, mdiff, tempfile |
4549
0c61124ad877
dispatch: move dispatching code to cmdutil
Matt Mackall <mpm@selenic.com>
parents:
4548
diff
changeset
|
13 import errno, version, socket |
3886
abaee83ce0a6
Replace demandload with new demandimport
Matt Mackall <mpm@selenic.com>
parents:
3885
diff
changeset
|
14 import archival, changegroup, cmdutil, hgweb.server, sshserver |
2738
ad4155e757da
Kill ui.setconfig_remoteopts
Matt Mackall <mpm@selenic.com>
parents:
2718
diff
changeset
|
15 |
255 | 16 # Commands start here, listed alphabetically |
209 | 17 |
724
1c0c413cccdd
Get add and locate to use new repo and dirstate walk code.
Bryan O'Sullivan <bos@serpentine.com>
parents:
723
diff
changeset
|
18 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
|
19 """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
|
20 |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
21 Schedule files to be version controlled and added to the repository. |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
22 |
3831
531c116b2028
Add doc notes about revert and hg status vs diff
Matt Mackall <mpm@selenic.com>
parents:
3828
diff
changeset
|
23 The files will be added to the repository at the next commit. To |
531c116b2028
Add doc notes about revert and hg status vs diff
Matt Mackall <mpm@selenic.com>
parents:
3828
diff
changeset
|
24 undo an add before that, see hg revert. |
1437
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
25 |
1568
1d7d0c07e8f3
make all commands be repo-wide by default
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1567
diff
changeset
|
26 If no names are given, add all files in the repository. |
1437
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
27 """ |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
28 |
724
1c0c413cccdd
Get add and locate to use new repo and dirstate walk code.
Bryan O'Sullivan <bos@serpentine.com>
parents:
723
diff
changeset
|
29 names = [] |
2881
cf98cd70d2c4
move walk and matchpats from commands to cmdutil.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2877
diff
changeset
|
30 for src, abs, rel, exact in cmdutil.walk(repo, pats, opts): |
942
7eb8cbcca7c4
Modify commands.walk to yield a 4-tuple.
Bryan O'Sullivan <bos@serpentine.com>
parents:
940
diff
changeset
|
31 if exact: |
1615
83238c1db6de
Cleanup of indentation, spacing, newlines, strings and line length
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1607
diff
changeset
|
32 if ui.verbose: |
83238c1db6de
Cleanup of indentation, spacing, newlines, strings and line length
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1607
diff
changeset
|
33 ui.status(_('adding %s\n') % rel) |
724
1c0c413cccdd
Get add and locate to use new repo and dirstate walk code.
Bryan O'Sullivan <bos@serpentine.com>
parents:
723
diff
changeset
|
34 names.append(abs) |
4950
30847b8af7ca
dirstate: add __contains__ and make __getitem__ more useful
Matt Mackall <mpm@selenic.com>
parents:
4948
diff
changeset
|
35 elif abs not in repo.dirstate: |
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
|
36 ui.status(_('adding %s\n') % rel) |
724
1c0c413cccdd
Get add and locate to use new repo and dirstate walk code.
Bryan O'Sullivan <bos@serpentine.com>
parents:
723
diff
changeset
|
37 names.append(abs) |
2503
37655f10ced6
Don't require opts['dry_run'] to be set to fix external tools like tailor.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
2494
diff
changeset
|
38 if not opts.get('dry_run'): |
2411
734df6333ca4
add: add -n/--dry-run option
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2410
diff
changeset
|
39 repo.add(names) |
213 | 40 |
766
b444a7e053f1
Get addremove to use new walk code.
Bryan O'Sullivan <bos@serpentine.com>
parents:
764
diff
changeset
|
41 def addremove(ui, repo, *pats, **opts): |
3174
3637d5d17cbc
Documentation fixes for addremove.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3165
diff
changeset
|
42 """add all new files, delete all missing files |
2181
690da72b0b16
deprecate addremove command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2179
diff
changeset
|
43 |
1437
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
44 Add all new files and remove all missing files from the repository. |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
45 |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
46 New files are ignored if they match any of the patterns in .hgignore. As |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
47 with add, these changes take effect at the next commit. |
2958
ff3ea21a981a
addremove: add -s/--similarity option
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2956
diff
changeset
|
48 |
ff3ea21a981a
addremove: add -s/--similarity option
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2956
diff
changeset
|
49 Use the -s option to detect renamed files. With a parameter > 0, |
ff3ea21a981a
addremove: add -s/--similarity option
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2956
diff
changeset
|
50 this compares every removed file with every added file and records |
ff3ea21a981a
addremove: add -s/--similarity option
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2956
diff
changeset
|
51 those similar enough as renames. This option takes a percentage |
ff3ea21a981a
addremove: add -s/--similarity option
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2956
diff
changeset
|
52 between 0 (disabled) and 100 (files must be identical) as its |
ff3ea21a981a
addremove: add -s/--similarity option
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2956
diff
changeset
|
53 parameter. Detecting renamed files this way can be expensive. |
1437
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
54 """ |
4966
8d982aef0be1
addremove: print meaningful error message if --similar not numeric
Bryan O'Sullivan <bos@serpentine.com>
parents:
4932
diff
changeset
|
55 try: |
8d982aef0be1
addremove: print meaningful error message if --similar not numeric
Bryan O'Sullivan <bos@serpentine.com>
parents:
4932
diff
changeset
|
56 sim = float(opts.get('similarity') or 0) |
8d982aef0be1
addremove: print meaningful error message if --similar not numeric
Bryan O'Sullivan <bos@serpentine.com>
parents:
4932
diff
changeset
|
57 except ValueError: |
8d982aef0be1
addremove: print meaningful error message if --similar not numeric
Bryan O'Sullivan <bos@serpentine.com>
parents:
4932
diff
changeset
|
58 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
|
59 if sim < 0 or sim > 100: |
ff3ea21a981a
addremove: add -s/--similarity option
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2956
diff
changeset
|
60 raise util.Abort(_('similarity must be between 0 and 100')) |
ff3ea21a981a
addremove: add -s/--similarity option
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2956
diff
changeset
|
61 return cmdutil.addremove(repo, pats, opts, similarity=sim/100.) |
219
8ff4532376a4
hg checkout: refuse to checkout if there are outstanding changes
mpm@selenic.com
parents:
214
diff
changeset
|
62 |
733
1966c553f652
Convert annotate over to walk interface.
Bryan O'Sullivan <bos@serpentine.com>
parents:
732
diff
changeset
|
63 def annotate(ui, repo, *pats, **opts): |
1437
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
64 """show changeset information per file line |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
65 |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
66 List changes in files, showing the revision id responsible for each line |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
67 |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
68 This command is useful to discover who did a change or when a change took |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
69 place. |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
70 |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
71 Without the -a option, annotate will avoid processing files it |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
72 detects as binary. With -a, annotate will generate an annotation |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
73 anyway, probably with undesirable results. |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
74 """ |
4847
2192001e4bb4
Add --line-number option to hg annotate (issue506)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
4836
diff
changeset
|
75 getdate = util.cachefunc(lambda x: util.datestr(x[0].date())) |
1522 | 76 |
744 | 77 if not pats: |
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
|
78 raise util.Abort(_('at least one file name or pattern required')) |
744 | 79 |
4847
2192001e4bb4
Add --line-number option to hg annotate (issue506)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
4836
diff
changeset
|
80 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:
4836
diff
changeset
|
81 ('number', lambda x: str(x[0].rev())), |
2192001e4bb4
Add --line-number option to hg annotate (issue506)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
4836
diff
changeset
|
82 ('changeset', lambda x: short(x[0].node())), |
2192001e4bb4
Add --line-number option to hg annotate (issue506)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
4836
diff
changeset
|
83 ('date', getdate), |
2192001e4bb4
Add --line-number option to hg annotate (issue506)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
4836
diff
changeset
|
84 ('follow', lambda x: x[0].path()), |
2192001e4bb4
Add --line-number option to hg annotate (issue506)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
4836
diff
changeset
|
85 ] |
2192001e4bb4
Add --line-number option to hg annotate (issue506)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
4836
diff
changeset
|
86 |
3165
5c93dd0ae413
Refactor annotate copy support.
Brendan Cully <brendan@kublai.com>
parents:
3159
diff
changeset
|
87 if (not opts['user'] and not opts['changeset'] and not opts['date'] |
5c93dd0ae413
Refactor annotate copy support.
Brendan Cully <brendan@kublai.com>
parents:
3159
diff
changeset
|
88 and not opts['follow']): |
714
29fcd195e056
Some cleanups in commands.annotate().
Thomas Arendsen Hein <thomas@intevation.de>
parents:
712
diff
changeset
|
89 opts['number'] = 1 |
209 | 90 |
4847
2192001e4bb4
Add --line-number option to hg annotate (issue506)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
4836
diff
changeset
|
91 linenumber = opts.get('line_number') is not None |
2192001e4bb4
Add --line-number option to hg annotate (issue506)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
4836
diff
changeset
|
92 if (linenumber and (not opts['changeset']) and (not opts['number'])): |
2192001e4bb4
Add --line-number option to hg annotate (issue506)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
4836
diff
changeset
|
93 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:
4836
diff
changeset
|
94 |
2192001e4bb4
Add --line-number option to hg annotate (issue506)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
4836
diff
changeset
|
95 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:
4836
diff
changeset
|
96 if linenumber: |
2192001e4bb4
Add --line-number option to hg annotate (issue506)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
4836
diff
changeset
|
97 lastfunc = funcmap[-1] |
2192001e4bb4
Add --line-number option to hg annotate (issue506)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
4836
diff
changeset
|
98 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:
4836
diff
changeset
|
99 |
3127
81da3c45aabd
Move defaultrev into changectx
Brendan Cully <brendan@kublai.com>
parents:
3092
diff
changeset
|
100 ctx = repo.changectx(opts['rev']) |
1016 | 101 |
2881
cf98cd70d2c4
move walk and matchpats from commands to cmdutil.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2877
diff
changeset
|
102 for src, abs, rel, exact in cmdutil.walk(repo, pats, opts, |
cf98cd70d2c4
move walk and matchpats from commands to cmdutil.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2877
diff
changeset
|
103 node=ctx.node()): |
2566
d8560b458f76
Convert hg annotate to context api
Matt Mackall <mpm@selenic.com>
parents:
2565
diff
changeset
|
104 fctx = ctx.filectx(abs) |
d8560b458f76
Convert hg annotate to context api
Matt Mackall <mpm@selenic.com>
parents:
2565
diff
changeset
|
105 if not opts['text'] and util.binary(fctx.data()): |
1625
e1bcf7fa983f
correct the relative path when walking from a subdir
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1622
diff
changeset
|
106 ui.write(_("%s: binary file\n") % ((pats and rel) or abs)) |
1016 | 107 continue |
108 | |
4847
2192001e4bb4
Add --line-number option to hg annotate (issue506)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
4836
diff
changeset
|
109 lines = fctx.annotate(follow=opts.get('follow'), |
2192001e4bb4
Add --line-number option to hg annotate (issue506)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
4836
diff
changeset
|
110 linenumber=linenumber) |
209 | 111 pieces = [] |
112 | |
4847
2192001e4bb4
Add --line-number option to hg annotate (issue506)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
4836
diff
changeset
|
113 for f in funcmap: |
2192001e4bb4
Add --line-number option to hg annotate (issue506)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
4836
diff
changeset
|
114 l = [f(n) for n, dummy in lines] |
2192001e4bb4
Add --line-number option to hg annotate (issue506)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
4836
diff
changeset
|
115 if l: |
2192001e4bb4
Add --line-number option to hg annotate (issue506)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
4836
diff
changeset
|
116 m = max(map(len, l)) |
2192001e4bb4
Add --line-number option to hg annotate (issue506)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
4836
diff
changeset
|
117 pieces.append(["%*s" % (m, x) for x in l]) |
209 | 118 |
771 | 119 if pieces: |
120 for p, l in zip(zip(*pieces), lines): | |
121 ui.write("%s: %s" % (" ".join(p), l[1])) | |
209 | 122 |
2112
2b03c6733efa
add "archive" command, like "cvs export" only better.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2092
diff
changeset
|
123 def archive(ui, repo, dest, **opts): |
2b03c6733efa
add "archive" command, like "cvs export" only better.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2092
diff
changeset
|
124 '''create unversioned archive of a repository revision |
2b03c6733efa
add "archive" command, like "cvs export" only better.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2092
diff
changeset
|
125 |
2b03c6733efa
add "archive" command, like "cvs export" only better.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2092
diff
changeset
|
126 By default, the revision used is the parent of the working |
2b03c6733efa
add "archive" command, like "cvs export" only better.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2092
diff
changeset
|
127 directory; use "-r" to specify a different revision. |
2b03c6733efa
add "archive" command, like "cvs export" only better.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2092
diff
changeset
|
128 |
2b03c6733efa
add "archive" command, like "cvs export" only better.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2092
diff
changeset
|
129 To specify the type of archive to create, use "-t". Valid |
2b03c6733efa
add "archive" command, like "cvs export" only better.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2092
diff
changeset
|
130 types are: |
2b03c6733efa
add "archive" command, like "cvs export" only better.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2092
diff
changeset
|
131 |
2b03c6733efa
add "archive" command, like "cvs export" only better.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2092
diff
changeset
|
132 "files" (default): a directory full of files |
2b03c6733efa
add "archive" command, like "cvs export" only better.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2092
diff
changeset
|
133 "tar": tar archive, uncompressed |
2b03c6733efa
add "archive" command, like "cvs export" only better.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2092
diff
changeset
|
134 "tbz2": tar archive, compressed using bzip2 |
2b03c6733efa
add "archive" command, like "cvs export" only better.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2092
diff
changeset
|
135 "tgz": tar archive, compressed using gzip |
2b03c6733efa
add "archive" command, like "cvs export" only better.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2092
diff
changeset
|
136 "uzip": zip archive, uncompressed |
2b03c6733efa
add "archive" command, like "cvs export" only better.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2092
diff
changeset
|
137 "zip": zip archive, compressed using deflate |
2b03c6733efa
add "archive" command, like "cvs export" only better.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2092
diff
changeset
|
138 |
2b03c6733efa
add "archive" command, like "cvs export" only better.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2092
diff
changeset
|
139 The exact name of the destination archive or directory is given |
2b03c6733efa
add "archive" command, like "cvs export" only better.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2092
diff
changeset
|
140 using a format string; see "hg help export" for details. |
2b03c6733efa
add "archive" command, like "cvs export" only better.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2092
diff
changeset
|
141 |
2b03c6733efa
add "archive" command, like "cvs export" only better.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2092
diff
changeset
|
142 Each member added to an archive file has a directory prefix |
2b03c6733efa
add "archive" command, like "cvs export" only better.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2092
diff
changeset
|
143 prepended. Use "-p" to specify a format string for the prefix. |
2b03c6733efa
add "archive" command, like "cvs export" only better.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2092
diff
changeset
|
144 The default is the basename of the archive, with suffixes removed. |
2b03c6733efa
add "archive" command, like "cvs export" only better.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2092
diff
changeset
|
145 ''' |
2b03c6733efa
add "archive" command, like "cvs export" only better.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2092
diff
changeset
|
146 |
5061
a49f2a4d5ff7
archive: abort on empty repository. Fixes #624.
Brendan Cully <brendan@kublai.com>
parents:
4966
diff
changeset
|
147 ctx = repo.changectx(opts['rev']) |
a49f2a4d5ff7
archive: abort on empty repository. Fixes #624.
Brendan Cully <brendan@kublai.com>
parents:
4966
diff
changeset
|
148 if not ctx: |
a49f2a4d5ff7
archive: abort on empty repository. Fixes #624.
Brendan Cully <brendan@kublai.com>
parents:
4966
diff
changeset
|
149 raise util.Abort(_('repository has no revisions')) |
a49f2a4d5ff7
archive: abort on empty repository. Fixes #624.
Brendan Cully <brendan@kublai.com>
parents:
4966
diff
changeset
|
150 node = ctx.node() |
2873
4ec58b157265
refactor text diff/patch code.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2870
diff
changeset
|
151 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
|
152 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
|
153 raise util.Abort(_('repository root cannot be destination')) |
2881
cf98cd70d2c4
move walk and matchpats from commands to cmdutil.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2877
diff
changeset
|
154 dummy, matchfn, dummy = cmdutil.matchpats(repo, [], opts) |
2476
0f7e4a39d9af
archive: make "hg archive -t XXX -" to write to stdout
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2473
diff
changeset
|
155 kind = opts.get('type') or 'files' |
0f7e4a39d9af
archive: make "hg archive -t XXX -" to write to stdout
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2473
diff
changeset
|
156 prefix = opts['prefix'] |
0f7e4a39d9af
archive: make "hg archive -t XXX -" to write to stdout
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2473
diff
changeset
|
157 if dest == '-': |
0f7e4a39d9af
archive: make "hg archive -t XXX -" to write to stdout
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2473
diff
changeset
|
158 if kind == 'files': |
0f7e4a39d9af
archive: make "hg archive -t XXX -" to write to stdout
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2473
diff
changeset
|
159 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
|
160 dest = sys.stdout |
0f7e4a39d9af
archive: make "hg archive -t XXX -" to write to stdout
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2473
diff
changeset
|
161 if not prefix: prefix = os.path.basename(repo.root) + '-%h' |
2873
4ec58b157265
refactor text diff/patch code.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2870
diff
changeset
|
162 prefix = cmdutil.make_filename(repo, prefix, node) |
2476
0f7e4a39d9af
archive: make "hg archive -t XXX -" to write to stdout
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2473
diff
changeset
|
163 archival.archive(repo, dest, node, kind, not opts['no_decode'], |
0f7e4a39d9af
archive: make "hg archive -t XXX -" to write to stdout
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2473
diff
changeset
|
164 matchfn, prefix) |
2112
2b03c6733efa
add "archive" command, like "cvs export" only better.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2092
diff
changeset
|
165 |
4450
8fa54b9c6c5a
accept -r REV in more places
Daniel Holth <dholth@fastmail.fm>
parents:
4442
diff
changeset
|
166 def backout(ui, repo, node=None, rev=None, **opts): |
2158
ec96c4518236
add backout command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2153
diff
changeset
|
167 '''reverse effect of earlier changeset |
ec96c4518236
add backout command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2153
diff
changeset
|
168 |
2254
827fcfe88b14
backout command: better help.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2245
diff
changeset
|
169 Commit the backed out changes as a new changeset. The new |
827fcfe88b14
backout command: better help.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2245
diff
changeset
|
170 changeset is a child of the backed out changeset. |
2158
ec96c4518236
add backout command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2153
diff
changeset
|
171 |
ec96c4518236
add backout command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2153
diff
changeset
|
172 If you back out a changeset other than the tip, a new head is |
2254
827fcfe88b14
backout command: better help.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2245
diff
changeset
|
173 created. This head is the parent of the working directory. If |
827fcfe88b14
backout command: better help.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2245
diff
changeset
|
174 you back out an old changeset, your working directory will appear |
827fcfe88b14
backout command: better help.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2245
diff
changeset
|
175 old after the backout. You should merge the backout changeset |
827fcfe88b14
backout command: better help.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2245
diff
changeset
|
176 with another head. |
827fcfe88b14
backout command: better help.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2245
diff
changeset
|
177 |
827fcfe88b14
backout command: better help.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2245
diff
changeset
|
178 The --merge option remembers the parent of the working directory |
827fcfe88b14
backout command: better help.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2245
diff
changeset
|
179 before starting the backout, then merges the new head with that |
827fcfe88b14
backout command: better help.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2245
diff
changeset
|
180 changeset afterwards. This saves you from doing the merge by |
827fcfe88b14
backout command: better help.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2245
diff
changeset
|
181 hand. The result of this merge is not committed, as for a normal |
827fcfe88b14
backout command: better help.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2245
diff
changeset
|
182 merge.''' |
4450
8fa54b9c6c5a
accept -r REV in more places
Daniel Holth <dholth@fastmail.fm>
parents:
4442
diff
changeset
|
183 if rev and node: |
8fa54b9c6c5a
accept -r REV in more places
Daniel Holth <dholth@fastmail.fm>
parents:
4442
diff
changeset
|
184 raise util.Abort(_("please specify just one revision")) |
8fa54b9c6c5a
accept -r REV in more places
Daniel Holth <dholth@fastmail.fm>
parents:
4442
diff
changeset
|
185 |
8fa54b9c6c5a
accept -r REV in more places
Daniel Holth <dholth@fastmail.fm>
parents:
4442
diff
changeset
|
186 if not rev: |
8fa54b9c6c5a
accept -r REV in more places
Daniel Holth <dholth@fastmail.fm>
parents:
4442
diff
changeset
|
187 rev = node |
2158
ec96c4518236
add backout command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2153
diff
changeset
|
188 |
4726
f6e961c0155b
Fix and test 'hg backout' without or with too many revisions.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
4718
diff
changeset
|
189 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
|
190 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
|
191 |
4549
0c61124ad877
dispatch: move dispatching code to cmdutil
Matt Mackall <mpm@selenic.com>
parents:
4548
diff
changeset
|
192 cmdutil.bail_if_changed(repo) |
2158
ec96c4518236
add backout command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2153
diff
changeset
|
193 op1, op2 = repo.dirstate.parents() |
ec96c4518236
add backout command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2153
diff
changeset
|
194 if op2 != nullid: |
ec96c4518236
add backout command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2153
diff
changeset
|
195 raise util.Abort(_('outstanding uncommitted merge')) |
ec96c4518236
add backout command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2153
diff
changeset
|
196 node = repo.lookup(rev) |
2614
8ba1c31f6864
backout: allow backout of merge changeset with --parent option.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2613
diff
changeset
|
197 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
|
198 if p1 == nullid: |
2158
ec96c4518236
add backout command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2153
diff
changeset
|
199 raise util.Abort(_('cannot back out a change with no parents')) |
ec96c4518236
add backout command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2153
diff
changeset
|
200 if p2 != nullid: |
2614
8ba1c31f6864
backout: allow backout of merge changeset with --parent option.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2613
diff
changeset
|
201 if not opts['parent']: |
8ba1c31f6864
backout: allow backout of merge changeset with --parent option.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2613
diff
changeset
|
202 raise util.Abort(_('cannot back out a merge changeset without ' |
8ba1c31f6864
backout: allow backout of merge changeset with --parent option.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2613
diff
changeset
|
203 '--parent')) |
8ba1c31f6864
backout: allow backout of merge changeset with --parent option.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2613
diff
changeset
|
204 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
|
205 if p not in (p1, p2): |
3679
2956948b81f3
fix warnings generated by pygettext.py.
Marcos Chaves <marcos.nospam@gmail.com>
parents:
3673
diff
changeset
|
206 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
|
207 (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
|
208 parent = p |
8ba1c31f6864
backout: allow backout of merge changeset with --parent option.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2613
diff
changeset
|
209 else: |
8ba1c31f6864
backout: allow backout of merge changeset with --parent option.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2613
diff
changeset
|
210 if opts['parent']: |
8ba1c31f6864
backout: allow backout of merge changeset with --parent option.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2613
diff
changeset
|
211 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
|
212 parent = p1 |
2822
30f59f4a327e
Introduce update helper functions: update, merge, clean, and revert
Matt Mackall <mpm@selenic.com>
parents:
2820
diff
changeset
|
213 hg.clean(repo, node, show_stats=False) |
2158
ec96c4518236
add backout command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2153
diff
changeset
|
214 revert_opts = opts.copy() |
3818
120be84f33de
Add --date support to update and revert
Matt Mackall <mpm@selenic.com>
parents:
3816
diff
changeset
|
215 revert_opts['date'] = None |
2965
890e285c52a1
revert: require --all to revert all files.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2963
diff
changeset
|
216 revert_opts['all'] = True |
2158
ec96c4518236
add backout command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2153
diff
changeset
|
217 revert_opts['rev'] = hex(parent) |
ec96c4518236
add backout command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2153
diff
changeset
|
218 revert(ui, repo, **revert_opts) |
ec96c4518236
add backout command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2153
diff
changeset
|
219 commit_opts = opts.copy() |
ec96c4518236
add backout command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2153
diff
changeset
|
220 commit_opts['addremove'] = False |
2159
5c34b98ad6b1
Small cleanups to backout command:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
2158
diff
changeset
|
221 if not commit_opts['message'] and not commit_opts['logfile']: |
4718
934275cd4526
backout: report short hash in commit message
Matt Mackall <mpm@selenic.com>
parents:
4699
diff
changeset
|
222 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
|
223 commit_opts['force_editor'] = True |
2158
ec96c4518236
add backout command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2153
diff
changeset
|
224 commit(ui, repo, **commit_opts) |
ec96c4518236
add backout command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2153
diff
changeset
|
225 def nice(node): |
ec96c4518236
add backout command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2153
diff
changeset
|
226 return '%d:%s' % (repo.changelog.rev(node), short(node)) |
ec96c4518236
add backout command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2153
diff
changeset
|
227 ui.status(_('changeset %s backs out changeset %s\n') % |
ec96c4518236
add backout command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2153
diff
changeset
|
228 (nice(repo.changelog.tip()), nice(node))) |
2493
9c660e691e90
print message after backout that tells that backout adds new head.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2482
diff
changeset
|
229 if op1 != node: |
9c660e691e90
print message after backout that tells that backout adds new head.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2482
diff
changeset
|
230 if opts['merge']: |
9c660e691e90
print message after backout that tells that backout adds new head.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2482
diff
changeset
|
231 ui.status(_('merging with changeset %s\n') % nice(op1)) |
3885
1e0b94cfba0e
Remove deprecated old-style branch support
Matt Mackall <mpm@selenic.com>
parents:
3862
diff
changeset
|
232 hg.merge(repo, hex(op1)) |
2493
9c660e691e90
print message after backout that tells that backout adds new head.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2482
diff
changeset
|
233 else: |
9c660e691e90
print message after backout that tells that backout adds new head.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2482
diff
changeset
|
234 ui.status(_('the backout changeset is a new head - ' |
9c660e691e90
print message after backout that tells that backout adds new head.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2482
diff
changeset
|
235 'do not forget to merge\n')) |
2761
0aa458261901
fix hg backup option recommendation for auto-merge
Christian Ebert <blacktrash@gmx.net>
parents:
2760
diff
changeset
|
236 ui.status(_('(use "backout --merge" ' |
0aa458261901
fix hg backup option recommendation for auto-merge
Christian Ebert <blacktrash@gmx.net>
parents:
2760
diff
changeset
|
237 'if you want to auto-merge)\n')) |
2158
ec96c4518236
add backout command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2153
diff
changeset
|
238 |
4197
b2873c587b1a
branch: require --force to shadow existing branches
Brendan Cully <brendan@kublai.com>
parents:
4195
diff
changeset
|
239 def branch(ui, repo, label=None, **opts): |
3502
8dc14d630b29
add branch and branches commands
Matt Mackall <mpm@selenic.com>
parents:
3467
diff
changeset
|
240 """set or show the current branch name |
8dc14d630b29
add branch and branches commands
Matt Mackall <mpm@selenic.com>
parents:
3467
diff
changeset
|
241 |
4601
e69da61e467e
Notify the user that hg branch does not create a branch until commit
Brendan Cully <brendan@kublai.com>
parents:
4593
diff
changeset
|
242 With no argument, show the current branch name. With one argument, |
e69da61e467e
Notify the user that hg branch does not create a branch until commit
Brendan Cully <brendan@kublai.com>
parents:
4593
diff
changeset
|
243 set the working directory branch name (the branch does not exist in |
e69da61e467e
Notify the user that hg branch does not create a branch until commit
Brendan Cully <brendan@kublai.com>
parents:
4593
diff
changeset
|
244 the repository until the next commit). |
4197
b2873c587b1a
branch: require --force to shadow existing branches
Brendan Cully <brendan@kublai.com>
parents:
4195
diff
changeset
|
245 |
b2873c587b1a
branch: require --force to shadow existing branches
Brendan Cully <brendan@kublai.com>
parents:
4195
diff
changeset
|
246 Unless --force is specified, branch will not let you set a |
b2873c587b1a
branch: require --force to shadow existing branches
Brendan Cully <brendan@kublai.com>
parents:
4195
diff
changeset
|
247 branch name that shadows an existing branch. |
3502
8dc14d630b29
add branch and branches commands
Matt Mackall <mpm@selenic.com>
parents:
3467
diff
changeset
|
248 """ |
8dc14d630b29
add branch and branches commands
Matt Mackall <mpm@selenic.com>
parents:
3467
diff
changeset
|
249 |
4207
7e1c8a565a4f
Move branch read/write to dirstate where it belongs
Matt Mackall <mpm@selenic.com>
parents:
4204
diff
changeset
|
250 if label: |
4197
b2873c587b1a
branch: require --force to shadow existing branches
Brendan Cully <brendan@kublai.com>
parents:
4195
diff
changeset
|
251 if not opts.get('force') and label in repo.branchtags(): |
b2873c587b1a
branch: require --force to shadow existing branches
Brendan Cully <brendan@kublai.com>
parents:
4195
diff
changeset
|
252 if label not in [p.branch() for p in repo.workingctx().parents()]: |
b2873c587b1a
branch: require --force to shadow existing branches
Brendan Cully <brendan@kublai.com>
parents:
4195
diff
changeset
|
253 raise util.Abort(_('a branch of the same name already exists' |
b2873c587b1a
branch: require --force to shadow existing branches
Brendan Cully <brendan@kublai.com>
parents:
4195
diff
changeset
|
254 ' (use --force to override)')) |
4207
7e1c8a565a4f
Move branch read/write to dirstate where it belongs
Matt Mackall <mpm@selenic.com>
parents:
4204
diff
changeset
|
255 repo.dirstate.setbranch(util.fromlocal(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
|
256 ui.status(_('marked working directory as branch %s\n') % label) |
3502
8dc14d630b29
add branch and branches commands
Matt Mackall <mpm@selenic.com>
parents:
3467
diff
changeset
|
257 else: |
4207
7e1c8a565a4f
Move branch read/write to dirstate where it belongs
Matt Mackall <mpm@selenic.com>
parents:
4204
diff
changeset
|
258 ui.write("%s\n" % util.tolocal(repo.dirstate.branch())) |
3502
8dc14d630b29
add branch and branches commands
Matt Mackall <mpm@selenic.com>
parents:
3467
diff
changeset
|
259 |
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
|
260 def branches(ui, repo, active=False): |
3502
8dc14d630b29
add branch and branches commands
Matt Mackall <mpm@selenic.com>
parents:
3467
diff
changeset
|
261 """list repository named branches |
8dc14d630b29
add branch and branches commands
Matt Mackall <mpm@selenic.com>
parents:
3467
diff
changeset
|
262 |
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
|
263 List the repository's named branches, indicating which ones are |
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
|
264 inactive. If active is specified, only show active branches. |
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
|
265 |
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
|
266 A branch is considered active if it contains unmerged heads. |
3502
8dc14d630b29
add branch and branches commands
Matt Mackall <mpm@selenic.com>
parents:
3467
diff
changeset
|
267 """ |
8dc14d630b29
add branch and branches commands
Matt Mackall <mpm@selenic.com>
parents:
3467
diff
changeset
|
268 b = repo.branchtags() |
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
|
269 heads = dict.fromkeys(repo.heads(), 1) |
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
|
270 l = [((n in heads), repo.changelog.rev(n), n, t) for t, n in b.items()] |
3502
8dc14d630b29
add branch and branches commands
Matt Mackall <mpm@selenic.com>
parents:
3467
diff
changeset
|
271 l.sort() |
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
|
272 l.reverse() |
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
|
273 for ishead, r, n, t in l: |
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
|
274 if active and not ishead: |
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
|
275 # If we're only displaying active branches, abort the loop on |
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
|
276 # encountering the first inactive head |
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
|
277 break |
3502
8dc14d630b29
add branch and branches commands
Matt Mackall <mpm@selenic.com>
parents:
3467
diff
changeset
|
278 else: |
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
|
279 hexfunc = ui.debugflag and hex or short |
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
|
280 if ui.quiet: |
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
|
281 ui.write("%s\n" % t) |
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
|
282 else: |
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
|
283 spaces = " " * (30 - util.locallen(t)) |
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
|
284 # The code only gets here if inactive branches are being |
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
|
285 # displayed or the branch is active. |
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
|
286 isinactive = ((not ishead) and " (inactive)") or '' |
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
|
287 ui.write("%s%s %s:%s%s\n" % (t, spaces, r, hexfunc(n), isinactive)) |
3502
8dc14d630b29
add branch and branches commands
Matt Mackall <mpm@selenic.com>
parents:
3467
diff
changeset
|
288 |
2494
73ac95671788
push, outgoing, bundle: fall back to "default" if "default-push" not defined
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2493
diff
changeset
|
289 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
|
290 """create a changegroup file |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
291 |
3508
aa8f086cb141
Corrected help text for bundle.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3507
diff
changeset
|
292 Generate a compressed changegroup file collecting changesets not |
aa8f086cb141
Corrected help text for bundle.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3507
diff
changeset
|
293 found in the other repository. |
aa8f086cb141
Corrected help text for bundle.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3507
diff
changeset
|
294 |
aa8f086cb141
Corrected help text for bundle.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3507
diff
changeset
|
295 If no destination repository is specified the destination is assumed |
aa8f086cb141
Corrected help text for bundle.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3507
diff
changeset
|
296 to have all the nodes specified by one or more --base parameters. |
aa8f086cb141
Corrected help text for bundle.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3507
diff
changeset
|
297 |
aa8f086cb141
Corrected help text for bundle.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3507
diff
changeset
|
298 The bundle file can then be transferred using conventional means and |
aa8f086cb141
Corrected help text for bundle.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3507
diff
changeset
|
299 applied to another repository with the unbundle or pull command. |
aa8f086cb141
Corrected help text for bundle.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3507
diff
changeset
|
300 This is useful when direct push and pull are not available or when |
aa8f086cb141
Corrected help text for bundle.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3507
diff
changeset
|
301 exporting an entire repository is undesirable. |
aa8f086cb141
Corrected help text for bundle.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3507
diff
changeset
|
302 |
aa8f086cb141
Corrected help text for bundle.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3507
diff
changeset
|
303 Applying bundles preserves all changeset contents including |
aa8f086cb141
Corrected help text for bundle.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3507
diff
changeset
|
304 permissions, copy/rename information, and revision history. |
1437
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
305 """ |
3283
d89e98840b08
add -r/--rev and --base option to bundle
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3277
diff
changeset
|
306 revs = opts.get('rev') or None |
d89e98840b08
add -r/--rev and --base option to bundle
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3277
diff
changeset
|
307 if revs: |
d89e98840b08
add -r/--rev and --base option to bundle
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3277
diff
changeset
|
308 revs = [repo.lookup(rev) for rev in revs] |
d89e98840b08
add -r/--rev and --base option to bundle
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3277
diff
changeset
|
309 base = opts.get('base') |
d89e98840b08
add -r/--rev and --base option to bundle
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3277
diff
changeset
|
310 if base: |
d89e98840b08
add -r/--rev and --base option to bundle
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3277
diff
changeset
|
311 if dest: |
d89e98840b08
add -r/--rev and --base option to bundle
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3277
diff
changeset
|
312 raise util.Abort(_("--base is incompatible with specifiying " |
d89e98840b08
add -r/--rev and --base option to bundle
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3277
diff
changeset
|
313 "a destination")) |
3293
a225055b3b59
bundle --base: use the right set for the base
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3283
diff
changeset
|
314 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:
3283
diff
changeset
|
315 # create the right base |
a225055b3b59
bundle --base: use the right set for the base
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3283
diff
changeset
|
316 # XXX: nodesbetween / changegroup* should be "fixed" instead |
3283
d89e98840b08
add -r/--rev and --base option to bundle
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3277
diff
changeset
|
317 o = [] |
3656
e50891e461e4
Consolidate brinfo handling
Matt Mackall <mpm@selenic.com>
parents:
3648
diff
changeset
|
318 has = {nullid: None} |
3283
d89e98840b08
add -r/--rev and --base option to bundle
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3277
diff
changeset
|
319 for n in base: |
3634 | 320 has.update(repo.changelog.reachable(n)) |
3283
d89e98840b08
add -r/--rev and --base option to bundle
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3277
diff
changeset
|
321 if revs: |
3293
a225055b3b59
bundle --base: use the right set for the base
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3283
diff
changeset
|
322 visit = list(revs) |
3283
d89e98840b08
add -r/--rev and --base option to bundle
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3277
diff
changeset
|
323 else: |
3293
a225055b3b59
bundle --base: use the right set for the base
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3283
diff
changeset
|
324 visit = repo.changelog.heads() |
3634 | 325 seen = {} |
3293
a225055b3b59
bundle --base: use the right set for the base
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3283
diff
changeset
|
326 while visit: |
a225055b3b59
bundle --base: use the right set for the base
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3283
diff
changeset
|
327 n = visit.pop(0) |
3634 | 328 parents = [p for p in repo.changelog.parents(n) if p not in has] |
3293
a225055b3b59
bundle --base: use the right set for the base
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3283
diff
changeset
|
329 if len(parents) == 0: |
a225055b3b59
bundle --base: use the right set for the base
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3283
diff
changeset
|
330 o.insert(0, n) |
a225055b3b59
bundle --base: use the right set for the base
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3283
diff
changeset
|
331 else: |
3509
630e0b216192
fix graph traversal in commands.bundle (it wasn't O(n))
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3508
diff
changeset
|
332 for p in parents: |
630e0b216192
fix graph traversal in commands.bundle (it wasn't O(n))
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3508
diff
changeset
|
333 if p not in seen: |
3634 | 334 seen[p] = 1 |
3509
630e0b216192
fix graph traversal in commands.bundle (it wasn't O(n))
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3508
diff
changeset
|
335 visit.append(p) |
3283
d89e98840b08
add -r/--rev and --base option to bundle
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3277
diff
changeset
|
336 else: |
4549
0c61124ad877
dispatch: move dispatching code to cmdutil
Matt Mackall <mpm@selenic.com>
parents:
4548
diff
changeset
|
337 cmdutil.setremoteconfig(ui, opts) |
5241 | 338 dest, revs, checkout = hg.parseurl( |
4478
b2b55acbacdd
Add support for url#id syntax
Matt Mackall <mpm@selenic.com>
parents:
4474
diff
changeset
|
339 ui.expandpath(dest or 'default-push', dest or 'default'), revs) |
3283
d89e98840b08
add -r/--rev and --base option to bundle
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3277
diff
changeset
|
340 other = hg.repository(ui, dest) |
d89e98840b08
add -r/--rev and --base option to bundle
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3277
diff
changeset
|
341 o = repo.findoutgoing(other, force=opts['force']) |
d89e98840b08
add -r/--rev and --base option to bundle
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3277
diff
changeset
|
342 |
d89e98840b08
add -r/--rev and --base option to bundle
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3277
diff
changeset
|
343 if revs: |
d89e98840b08
add -r/--rev and --base option to bundle
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3277
diff
changeset
|
344 cg = repo.changegroupsubset(o, revs, 'bundle') |
d89e98840b08
add -r/--rev and --base option to bundle
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3277
diff
changeset
|
345 else: |
d89e98840b08
add -r/--rev and --base option to bundle
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3277
diff
changeset
|
346 cg = repo.changegroup(o, 'bundle') |
3704
9c1737a3e254
fix writebundle for bz2 bundles
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3680
diff
changeset
|
347 changegroup.writebundle(cg, fname, "HG10BZ") |
1218
cde6818e082a
Add preliminary support for the bundle and unbundle commands
mpm@selenic.com
parents:
1215
diff
changeset
|
348 |
1254
e6560042b7b8
Switch cat command to use walk code.
Bryan O'Sullivan <bos@serpentine.com>
parents:
1253
diff
changeset
|
349 def cat(ui, repo, file1, *pats, **opts): |
3913
283ee8971570
doc string fix: hg cat and manifest default to current parent revision.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3900
diff
changeset
|
350 """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
|
351 |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
352 Print the specified files as they were at the given revision. |
3914
3c82ab166eea
doc fix: hg tags defaults to current parent revision, too.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3913
diff
changeset
|
353 If no revision is given, the parent of the working directory is used, |
3c82ab166eea
doc fix: hg tags defaults to current parent revision, too.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3913
diff
changeset
|
354 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
|
355 |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
356 Output may be to a file, in which case the name of the file is |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
357 given using a format string. The formatting rules are the same as |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
358 for the export command, with the following additions: |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
359 |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
360 %s basename of file being printed |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
361 %d dirname of file being printed, or '.' if in repo root |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
362 %p root-relative path name of file being printed |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
363 """ |
3127
81da3c45aabd
Move defaultrev into changectx
Brendan Cully <brendan@kublai.com>
parents:
3092
diff
changeset
|
364 ctx = repo.changectx(opts['rev']) |
4697
5b2d986de0f8
cat: return an error on failure
Matt Mackall <mpm@selenic.com>
parents:
4692
diff
changeset
|
365 err = 1 |
2881
cf98cd70d2c4
move walk and matchpats from commands to cmdutil.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2877
diff
changeset
|
366 for src, abs, rel, exact in cmdutil.walk(repo, (file1,) + pats, opts, |
cf98cd70d2c4
move walk and matchpats from commands to cmdutil.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2877
diff
changeset
|
367 ctx.node()): |
2873
4ec58b157265
refactor text diff/patch code.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2870
diff
changeset
|
368 fp = cmdutil.make_file(repo, opts['output'], ctx.node(), pathname=abs) |
2565
7f78ca2c7977
convert hg cat to new context api
Matt Mackall <mpm@selenic.com>
parents:
2562
diff
changeset
|
369 fp.write(ctx.filectx(abs).data()) |
4697
5b2d986de0f8
cat: return an error on failure
Matt Mackall <mpm@selenic.com>
parents:
4692
diff
changeset
|
370 err = 0 |
5b2d986de0f8
cat: return an error on failure
Matt Mackall <mpm@selenic.com>
parents:
4692
diff
changeset
|
371 return err |
248 | 372 |
698
df78d8ccac4c
Use python function instead of external 'cp' command when cloning repos.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
697
diff
changeset
|
373 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
|
374 """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
|
375 |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
376 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
|
377 |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
378 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
|
379 basename of the source. |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
380 |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
381 The location of the source is added to the new repository's |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
382 .hg/hgrc file, as the default to be used for future pulls. |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
383 |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
384 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
|
385 and destination are on the same filesystem (note this applies only |
2df98f616645
Expand clone help with hardlink information
Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com>
parents:
2761
diff
changeset
|
386 to the repository data, not to the checked out files). Some |
2df98f616645
Expand clone help with hardlink information
Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com>
parents:
2761
diff
changeset
|
387 filesystems, such as AFS, implement hardlinking incorrectly, but |
2df98f616645
Expand clone help with hardlink information
Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com>
parents:
2761
diff
changeset
|
388 do not report errors. In these cases, use the --pull option to |
2df98f616645
Expand clone help with hardlink information
Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com>
parents:
2761
diff
changeset
|
389 avoid hardlinking. |
2df98f616645
Expand clone help with hardlink information
Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com>
parents:
2761
diff
changeset
|
390 |
2df98f616645
Expand clone help with hardlink information
Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com>
parents:
2761
diff
changeset
|
391 You can safely clone repositories and checked out files using full |
2df98f616645
Expand clone help with hardlink information
Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com>
parents:
2761
diff
changeset
|
392 hardlinks with |
2df98f616645
Expand clone help with hardlink information
Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com>
parents:
2761
diff
changeset
|
393 |
2df98f616645
Expand clone help with hardlink information
Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com>
parents:
2761
diff
changeset
|
394 $ cp -al REPO REPOCLONE |
2df98f616645
Expand clone help with hardlink information
Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com>
parents:
2761
diff
changeset
|
395 |
2df98f616645
Expand clone help with hardlink information
Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com>
parents:
2761
diff
changeset
|
396 which is the fastest way to clone. However, the operation is not |
2df98f616645
Expand clone help with hardlink information
Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com>
parents:
2761
diff
changeset
|
397 atomic (making sure REPO is not modified during the operation is |
2df98f616645
Expand clone help with hardlink information
Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com>
parents:
2761
diff
changeset
|
398 up to you) and you have to make sure your editor breaks hardlinks |
2df98f616645
Expand clone help with hardlink information
Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com>
parents:
2761
diff
changeset
|
399 (Emacs and most Linux Kernel tools do so). |
1811
6cb548cffdf5
resync commands.py docstrings with hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1804
diff
changeset
|
400 |
2764
71029a3247cb
clone: replace long help string of inaky with doc comment.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2763
diff
changeset
|
401 If you use the -r option to clone up to a specific revision, no |
71029a3247cb
clone: replace long help string of inaky with doc comment.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2763
diff
changeset
|
402 subsequent revisions will be present in the cloned repository. |
71029a3247cb
clone: replace long help string of inaky with doc comment.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2763
diff
changeset
|
403 This option implies --pull, even on local repositories. |
71029a3247cb
clone: replace long help string of inaky with doc comment.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2763
diff
changeset
|
404 |
1811
6cb548cffdf5
resync commands.py docstrings with hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1804
diff
changeset
|
405 See pull for valid source format details. |
2590
911b56853fdd
Additional information about URLs in pull/push/clone/init:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
2589
diff
changeset
|
406 |
911b56853fdd
Additional information about URLs in pull/push/clone/init:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
2589
diff
changeset
|
407 It is possible to specify an ssh:// URL as the destination, but no |
3583
8ee579885d23
doc: clone doesn't create a working directory in remote repos
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3578
diff
changeset
|
408 .hg/hgrc and working directory will be created on the remote side. |
8ee579885d23
doc: clone doesn't create a working directory in remote repos
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3578
diff
changeset
|
409 Look at the help text for the pull command for important details |
8ee579885d23
doc: clone doesn't create a working directory in remote repos
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3578
diff
changeset
|
410 about ssh:// URLs. |
1437
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
411 """ |
4549
0c61124ad877
dispatch: move dispatching code to cmdutil
Matt Mackall <mpm@selenic.com>
parents:
4548
diff
changeset
|
412 cmdutil.setremoteconfig(ui, opts) |
4478
b2b55acbacdd
Add support for url#id syntax
Matt Mackall <mpm@selenic.com>
parents:
4474
diff
changeset
|
413 hg.clone(ui, source, dest, |
2597
5ba8be56fa8f
clone: move code into hg module. make doc better.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2590
diff
changeset
|
414 pull=opts['pull'], |
2620
de82749d3a71
clone: change name of --stream to --uncompressed.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2618
diff
changeset
|
415 stream=opts['uncompressed'], |
2597
5ba8be56fa8f
clone: move code into hg module. make doc better.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2590
diff
changeset
|
416 rev=opts['rev'], |
5ba8be56fa8f
clone: move code into hg module. make doc better.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2590
diff
changeset
|
417 update=not opts['noupdate']) |
515 | 418 |
813
80fd2958235a
Adapt commit to use file matching code.
Bryan O'Sullivan <bos@serpentine.com>
parents:
812
diff
changeset
|
419 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
|
420 """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
|
421 |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
422 Commit changes to the given files into the repository. |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
423 |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
424 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
|
425 will be committed. |
1437
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
426 |
1996
4c70b10f0418
Don't mention deprecated HGEDITOR variable in the help text of commit.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1995
diff
changeset
|
427 If no commit message is specified, the editor configured in your hgrc |
4c70b10f0418
Don't mention deprecated HGEDITOR variable in the help text of commit.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1995
diff
changeset
|
428 or in the EDITOR environment variable is started to enter a message. |
1437
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
429 """ |
5034
c0417a319e39
commands: move commit to cmdutil as wrapper for commit-like functions
Bryan O'Sullivan <bos@serpentine.com>
parents:
4967
diff
changeset
|
430 def commitfunc(ui, repo, files, message, match, opts): |
c0417a319e39
commands: move commit to cmdutil as wrapper for commit-like functions
Bryan O'Sullivan <bos@serpentine.com>
parents:
4967
diff
changeset
|
431 return repo.commit(files, message, opts['user'], opts['date'], match, |
c0417a319e39
commands: move commit to cmdutil as wrapper for commit-like functions
Bryan O'Sullivan <bos@serpentine.com>
parents:
4967
diff
changeset
|
432 force_editor=opts.get('force_editor')) |
c0417a319e39
commands: move commit to cmdutil as wrapper for commit-like functions
Bryan O'Sullivan <bos@serpentine.com>
parents:
4967
diff
changeset
|
433 cmdutil.commit(ui, repo, commitfunc, pats, opts) |
245 | 434 |
4961
126f527b3ba3
Make repo locks recursive, eliminate all passing of lock/wlock
Matt Mackall <mpm@selenic.com>
parents:
4959
diff
changeset
|
435 def docopy(ui, repo, pats, opts): |
1822
64df4220b349
copy/rename to a removed destination file
Robin Farine <robin.farine@terminus.org>
parents:
1812
diff
changeset
|
436 # called with the repo lock held |
3652
d2d8d23944a9
commands.docopy: pay attention on whether paths use "/" or os.sep
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
3648
diff
changeset
|
437 # |
d2d8d23944a9
commands.docopy: pay attention on whether paths use "/" or os.sep
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
3648
diff
changeset
|
438 # hgsep => pathname that uses "/" to separate directories |
d2d8d23944a9
commands.docopy: pay attention on whether paths use "/" or os.sep
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
3648
diff
changeset
|
439 # ossep => pathname that uses os.sep to separate directories |
1512
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
1507
diff
changeset
|
440 cwd = repo.getcwd() |
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
1507
diff
changeset
|
441 errors = 0 |
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
1507
diff
changeset
|
442 copied = [] |
1514
faf46d810a85
avoid to copy more than one file to the same destination file
Robin Farine <robin.farine@terminus.org>
parents:
1513
diff
changeset
|
443 targets = {} |
1249
a5355fa5e33a
Fix up copy command to behave more like regular "cp".
Bryan O'Sullivan <bos@serpentine.com>
parents:
1247
diff
changeset
|
444 |
3652
d2d8d23944a9
commands.docopy: pay attention on whether paths use "/" or os.sep
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
3648
diff
changeset
|
445 # abs: hgsep |
d2d8d23944a9
commands.docopy: pay attention on whether paths use "/" or os.sep
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
3648
diff
changeset
|
446 # rel: ossep |
d2d8d23944a9
commands.docopy: pay attention on whether paths use "/" or os.sep
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
3648
diff
changeset
|
447 # return: hgsep |
1249
a5355fa5e33a
Fix up copy command to behave more like regular "cp".
Bryan O'Sullivan <bos@serpentine.com>
parents:
1247
diff
changeset
|
448 def okaytocopy(abs, rel, exact): |
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
|
449 reasons = {'?': _('is not managed'), |
1634
f49f602fae92
copy & rename can ignore removed source files
Robin Farine <robin.farine@terminus.org>
parents:
1633
diff
changeset
|
450 'r': _('has been marked for remove')} |
4950
30847b8af7ca
dirstate: add __contains__ and make __getitem__ more useful
Matt Mackall <mpm@selenic.com>
parents:
4948
diff
changeset
|
451 state = repo.dirstate[abs] |
1747
91c56c427171
transitive copy/rename
Robin Farine <robin.farine@terminus.org>
parents:
1743
diff
changeset
|
452 reason = reasons.get(state) |
1249
a5355fa5e33a
Fix up copy command to behave more like regular "cp".
Bryan O'Sullivan <bos@serpentine.com>
parents:
1247
diff
changeset
|
453 if reason: |
4777
44e17f5029d0
Make hg add foo; hg mv foo bar work.
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4738
diff
changeset
|
454 if exact: |
44e17f5029d0
Make hg add foo; hg mv foo bar work.
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4738
diff
changeset
|
455 ui.warn(_('%s: not copying - file %s\n') % (rel, reason)) |
44e17f5029d0
Make hg add foo; hg mv foo bar work.
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4738
diff
changeset
|
456 else: |
1747
91c56c427171
transitive copy/rename
Robin Farine <robin.farine@terminus.org>
parents:
1743
diff
changeset
|
457 if state == 'a': |
91c56c427171
transitive copy/rename
Robin Farine <robin.farine@terminus.org>
parents:
1743
diff
changeset
|
458 origsrc = repo.dirstate.copied(abs) |
91c56c427171
transitive copy/rename
Robin Farine <robin.farine@terminus.org>
parents:
1743
diff
changeset
|
459 if origsrc is not None: |
91c56c427171
transitive copy/rename
Robin Farine <robin.farine@terminus.org>
parents:
1743
diff
changeset
|
460 return origsrc |
91c56c427171
transitive copy/rename
Robin Farine <robin.farine@terminus.org>
parents:
1743
diff
changeset
|
461 return abs |
91c56c427171
transitive copy/rename
Robin Farine <robin.farine@terminus.org>
parents:
1743
diff
changeset
|
462 |
3652
d2d8d23944a9
commands.docopy: pay attention on whether paths use "/" or os.sep
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
3648
diff
changeset
|
463 # origsrc: hgsep |
d2d8d23944a9
commands.docopy: pay attention on whether paths use "/" or os.sep
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
3648
diff
changeset
|
464 # abssrc: hgsep |
d2d8d23944a9
commands.docopy: pay attention on whether paths use "/" or os.sep
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
3648
diff
changeset
|
465 # relsrc: ossep |
4523
b9d311928caf
Use absolute paths in docopy.
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4516
diff
changeset
|
466 # otarget: ossep |
b9d311928caf
Use absolute paths in docopy.
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4516
diff
changeset
|
467 def copy(origsrc, abssrc, relsrc, otarget, exact): |
b9d311928caf
Use absolute paths in docopy.
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4516
diff
changeset
|
468 abstarget = util.canonpath(repo.root, cwd, otarget) |
4525
78b6add1f966
Add dirstate.pathto and localrepo.pathto.
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4524
diff
changeset
|
469 reltarget = repo.pathto(abstarget, cwd) |
1514
faf46d810a85
avoid to copy more than one file to the same destination file
Robin Farine <robin.farine@terminus.org>
parents:
1513
diff
changeset
|
470 prevsrc = targets.get(abstarget) |
4523
b9d311928caf
Use absolute paths in docopy.
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4516
diff
changeset
|
471 src = repo.wjoin(abssrc) |
b9d311928caf
Use absolute paths in docopy.
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4516
diff
changeset
|
472 target = repo.wjoin(abstarget) |
1514
faf46d810a85
avoid to copy more than one file to the same destination file
Robin Farine <robin.farine@terminus.org>
parents:
1513
diff
changeset
|
473 if prevsrc is not None: |
faf46d810a85
avoid to copy more than one file to the same destination file
Robin Farine <robin.farine@terminus.org>
parents:
1513
diff
changeset
|
474 ui.warn(_('%s: not overwriting - %s collides with %s\n') % |
4526
cbabc9ac7424
docopy: use repo.pathto to format paths for printing
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4525
diff
changeset
|
475 (reltarget, repo.pathto(abssrc, cwd), |
cbabc9ac7424
docopy: use repo.pathto to format paths for printing
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4525
diff
changeset
|
476 repo.pathto(prevsrc, cwd))) |
1514
faf46d810a85
avoid to copy more than one file to the same destination file
Robin Farine <robin.farine@terminus.org>
parents:
1513
diff
changeset
|
477 return |
4523
b9d311928caf
Use absolute paths in docopy.
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4516
diff
changeset
|
478 if (not opts['after'] and os.path.exists(target) or |
4950
30847b8af7ca
dirstate: add __contains__ and make __getitem__ more useful
Matt Mackall <mpm@selenic.com>
parents:
4948
diff
changeset
|
479 opts['after'] and repo.dirstate[abstarget] in 'mn'): |
1565
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1561
diff
changeset
|
480 if not opts['force']: |
1513
5c3b93b244aa
copy & rename don't overwrite unless --force is specified
Robin Farine <robin.farine@terminus.org>
parents:
1512
diff
changeset
|
481 ui.warn(_('%s: not overwriting - file exists\n') % |
5c3b93b244aa
copy & rename don't overwrite unless --force is specified
Robin Farine <robin.farine@terminus.org>
parents:
1512
diff
changeset
|
482 reltarget) |
5c3b93b244aa
copy & rename don't overwrite unless --force is specified
Robin Farine <robin.farine@terminus.org>
parents:
1512
diff
changeset
|
483 return |
2503
37655f10ced6
Don't require opts['dry_run'] to be set to fix external tools like tailor.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
2494
diff
changeset
|
484 if not opts['after'] and not opts.get('dry_run'): |
4523
b9d311928caf
Use absolute paths in docopy.
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4516
diff
changeset
|
485 os.unlink(target) |
1565
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1561
diff
changeset
|
486 if opts['after']: |
4523
b9d311928caf
Use absolute paths in docopy.
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4516
diff
changeset
|
487 if not os.path.exists(target): |
1565
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1561
diff
changeset
|
488 return |
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1561
diff
changeset
|
489 else: |
4523
b9d311928caf
Use absolute paths in docopy.
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4516
diff
changeset
|
490 targetdir = os.path.dirname(target) or '.' |
2503
37655f10ced6
Don't require opts['dry_run'] to be set to fix external tools like tailor.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
2494
diff
changeset
|
491 if not os.path.isdir(targetdir) and not opts.get('dry_run'): |
1512
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
1507
diff
changeset
|
492 os.makedirs(targetdir) |
1249
a5355fa5e33a
Fix up copy command to behave more like regular "cp".
Bryan O'Sullivan <bos@serpentine.com>
parents:
1247
diff
changeset
|
493 try: |
4950
30847b8af7ca
dirstate: add __contains__ and make __getitem__ more useful
Matt Mackall <mpm@selenic.com>
parents:
4948
diff
changeset
|
494 restore = repo.dirstate[abstarget] == 'r' |
2503
37655f10ced6
Don't require opts['dry_run'] to be set to fix external tools like tailor.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
2494
diff
changeset
|
495 if restore and not opts.get('dry_run'): |
4961
126f527b3ba3
Make repo locks recursive, eliminate all passing of lock/wlock
Matt Mackall <mpm@selenic.com>
parents:
4959
diff
changeset
|
496 repo.undelete([abstarget]) |
1822
64df4220b349
copy/rename to a removed destination file
Robin Farine <robin.farine@terminus.org>
parents:
1812
diff
changeset
|
497 try: |
2503
37655f10ced6
Don't require opts['dry_run'] to be set to fix external tools like tailor.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
2494
diff
changeset
|
498 if not opts.get('dry_run'): |
4523
b9d311928caf
Use absolute paths in docopy.
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4516
diff
changeset
|
499 util.copyfile(src, target) |
1822
64df4220b349
copy/rename to a removed destination file
Robin Farine <robin.farine@terminus.org>
parents:
1812
diff
changeset
|
500 restore = False |
64df4220b349
copy/rename to a removed destination file
Robin Farine <robin.farine@terminus.org>
parents:
1812
diff
changeset
|
501 finally: |
64df4220b349
copy/rename to a removed destination file
Robin Farine <robin.farine@terminus.org>
parents:
1812
diff
changeset
|
502 if restore: |
4961
126f527b3ba3
Make repo locks recursive, eliminate all passing of lock/wlock
Matt Mackall <mpm@selenic.com>
parents:
4959
diff
changeset
|
503 repo.remove([abstarget]) |
1249
a5355fa5e33a
Fix up copy command to behave more like regular "cp".
Bryan O'Sullivan <bos@serpentine.com>
parents:
1247
diff
changeset
|
504 except IOError, inst: |
a5355fa5e33a
Fix up copy command to behave more like regular "cp".
Bryan O'Sullivan <bos@serpentine.com>
parents:
1247
diff
changeset
|
505 if inst.errno == errno.ENOENT: |
1512
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
1507
diff
changeset
|
506 ui.warn(_('%s: deleted in working copy\n') % relsrc) |
1249
a5355fa5e33a
Fix up copy command to behave more like regular "cp".
Bryan O'Sullivan <bos@serpentine.com>
parents:
1247
diff
changeset
|
507 else: |
1512
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
1507
diff
changeset
|
508 ui.warn(_('%s: cannot copy - %s\n') % |
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
1507
diff
changeset
|
509 (relsrc, inst.strerror)) |
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
1507
diff
changeset
|
510 errors += 1 |
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
1507
diff
changeset
|
511 return |
1565
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1561
diff
changeset
|
512 if ui.verbose or not exact: |
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1561
diff
changeset
|
513 ui.status(_('copying %s to %s\n') % (relsrc, reltarget)) |
1514
faf46d810a85
avoid to copy more than one file to the same destination file
Robin Farine <robin.farine@terminus.org>
parents:
1513
diff
changeset
|
514 targets[abstarget] = abssrc |
4777
44e17f5029d0
Make hg add foo; hg mv foo bar work.
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4738
diff
changeset
|
515 if abstarget != origsrc: |
4950
30847b8af7ca
dirstate: add __contains__ and make __getitem__ more useful
Matt Mackall <mpm@selenic.com>
parents:
4948
diff
changeset
|
516 if repo.dirstate[origsrc] == 'a': |
4864
fc8b3e7cbf6b
improve warning for hg add foo; hg mv foo bar
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4803
diff
changeset
|
517 if not ui.quiet: |
fc8b3e7cbf6b
improve warning for hg add foo; hg mv foo bar
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4803
diff
changeset
|
518 ui.warn(_("%s has not been committed yet, so no copy " |
fc8b3e7cbf6b
improve warning for hg add foo; hg mv foo bar
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4803
diff
changeset
|
519 "data will be stored for %s.\n") |
fc8b3e7cbf6b
improve warning for hg add foo; hg mv foo bar
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4803
diff
changeset
|
520 % (repo.pathto(origsrc, cwd), reltarget)) |
4777
44e17f5029d0
Make hg add foo; hg mv foo bar work.
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4738
diff
changeset
|
521 if abstarget not in repo.dirstate and not opts.get('dry_run'): |
4961
126f527b3ba3
Make repo locks recursive, eliminate all passing of lock/wlock
Matt Mackall <mpm@selenic.com>
parents:
4959
diff
changeset
|
522 repo.add([abstarget]) |
4777
44e17f5029d0
Make hg add foo; hg mv foo bar work.
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4738
diff
changeset
|
523 elif not opts.get('dry_run'): |
4961
126f527b3ba3
Make repo locks recursive, eliminate all passing of lock/wlock
Matt Mackall <mpm@selenic.com>
parents:
4959
diff
changeset
|
524 repo.copy(origsrc, abstarget) |
1512
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
1507
diff
changeset
|
525 copied.append((abssrc, relsrc, exact)) |
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
1507
diff
changeset
|
526 |
3652
d2d8d23944a9
commands.docopy: pay attention on whether paths use "/" or os.sep
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
3648
diff
changeset
|
527 # pat: ossep |
d2d8d23944a9
commands.docopy: pay attention on whether paths use "/" or os.sep
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
3648
diff
changeset
|
528 # dest ossep |
d2d8d23944a9
commands.docopy: pay attention on whether paths use "/" or os.sep
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
3648
diff
changeset
|
529 # srcs: list of (hgsep, hgsep, ossep, bool) |
d2d8d23944a9
commands.docopy: pay attention on whether paths use "/" or os.sep
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
3648
diff
changeset
|
530 # return: function that takes hgsep and returns ossep |
1565
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1561
diff
changeset
|
531 def targetpathfn(pat, dest, srcs): |
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1561
diff
changeset
|
532 if os.path.isdir(pat): |
1633
94c179a92f4a
copy/rename '.' or '..' correctly
Robin Farine <robin.farine@terminus.org>
parents:
1626
diff
changeset
|
533 abspfx = util.canonpath(repo.root, cwd, pat) |
3652
d2d8d23944a9
commands.docopy: pay attention on whether paths use "/" or os.sep
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
3648
diff
changeset
|
534 abspfx = util.localpath(abspfx) |
1565
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1561
diff
changeset
|
535 if destdirexists: |
1633
94c179a92f4a
copy/rename '.' or '..' correctly
Robin Farine <robin.farine@terminus.org>
parents:
1626
diff
changeset
|
536 striplen = len(os.path.split(abspfx)[0]) |
1565
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1561
diff
changeset
|
537 else: |
1633
94c179a92f4a
copy/rename '.' or '..' correctly
Robin Farine <robin.farine@terminus.org>
parents:
1626
diff
changeset
|
538 striplen = len(abspfx) |
1565
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1561
diff
changeset
|
539 if striplen: |
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1561
diff
changeset
|
540 striplen += len(os.sep) |
3652
d2d8d23944a9
commands.docopy: pay attention on whether paths use "/" or os.sep
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
3648
diff
changeset
|
541 res = lambda p: os.path.join(dest, util.localpath(p)[striplen:]) |
1565
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1561
diff
changeset
|
542 elif destdirexists: |
3652
d2d8d23944a9
commands.docopy: pay attention on whether paths use "/" or os.sep
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
3648
diff
changeset
|
543 res = lambda p: os.path.join(dest, |
d2d8d23944a9
commands.docopy: pay attention on whether paths use "/" or os.sep
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
3648
diff
changeset
|
544 os.path.basename(util.localpath(p))) |
1565
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1561
diff
changeset
|
545 else: |
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1561
diff
changeset
|
546 res = lambda p: dest |
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1561
diff
changeset
|
547 return res |
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1561
diff
changeset
|
548 |
3652
d2d8d23944a9
commands.docopy: pay attention on whether paths use "/" or os.sep
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
3648
diff
changeset
|
549 # pat: ossep |
d2d8d23944a9
commands.docopy: pay attention on whether paths use "/" or os.sep
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
3648
diff
changeset
|
550 # dest ossep |
d2d8d23944a9
commands.docopy: pay attention on whether paths use "/" or os.sep
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
3648
diff
changeset
|
551 # srcs: list of (hgsep, hgsep, ossep, bool) |
d2d8d23944a9
commands.docopy: pay attention on whether paths use "/" or os.sep
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
3648
diff
changeset
|
552 # return: function that takes hgsep and returns ossep |
1565
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1561
diff
changeset
|
553 def targetpathafterfn(pat, dest, srcs): |
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1561
diff
changeset
|
554 if util.patkind(pat, None)[0]: |
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1561
diff
changeset
|
555 # a mercurial pattern |
3652
d2d8d23944a9
commands.docopy: pay attention on whether paths use "/" or os.sep
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
3648
diff
changeset
|
556 res = lambda p: os.path.join(dest, |
d2d8d23944a9
commands.docopy: pay attention on whether paths use "/" or os.sep
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
3648
diff
changeset
|
557 os.path.basename(util.localpath(p))) |
1633
94c179a92f4a
copy/rename '.' or '..' correctly
Robin Farine <robin.farine@terminus.org>
parents:
1626
diff
changeset
|
558 else: |
94c179a92f4a
copy/rename '.' or '..' correctly
Robin Farine <robin.farine@terminus.org>
parents:
1626
diff
changeset
|
559 abspfx = util.canonpath(repo.root, cwd, pat) |
94c179a92f4a
copy/rename '.' or '..' correctly
Robin Farine <robin.farine@terminus.org>
parents:
1626
diff
changeset
|
560 if len(abspfx) < len(srcs[0][0]): |
94c179a92f4a
copy/rename '.' or '..' correctly
Robin Farine <robin.farine@terminus.org>
parents:
1626
diff
changeset
|
561 # A directory. Either the target path contains the last |
94c179a92f4a
copy/rename '.' or '..' correctly
Robin Farine <robin.farine@terminus.org>
parents:
1626
diff
changeset
|
562 # component of the source path or it does not. |
94c179a92f4a
copy/rename '.' or '..' correctly
Robin Farine <robin.farine@terminus.org>
parents:
1626
diff
changeset
|
563 def evalpath(striplen): |
94c179a92f4a
copy/rename '.' or '..' correctly
Robin Farine <robin.farine@terminus.org>
parents:
1626
diff
changeset
|
564 score = 0 |
94c179a92f4a
copy/rename '.' or '..' correctly
Robin Farine <robin.farine@terminus.org>
parents:
1626
diff
changeset
|
565 for s in srcs: |
3652
d2d8d23944a9
commands.docopy: pay attention on whether paths use "/" or os.sep
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
3648
diff
changeset
|
566 t = os.path.join(dest, util.localpath(s[0])[striplen:]) |
1633
94c179a92f4a
copy/rename '.' or '..' correctly
Robin Farine <robin.farine@terminus.org>
parents:
1626
diff
changeset
|
567 if os.path.exists(t): |
94c179a92f4a
copy/rename '.' or '..' correctly
Robin Farine <robin.farine@terminus.org>
parents:
1626
diff
changeset
|
568 score += 1 |
94c179a92f4a
copy/rename '.' or '..' correctly
Robin Farine <robin.farine@terminus.org>
parents:
1626
diff
changeset
|
569 return score |
1565
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1561
diff
changeset
|
570 |
3652
d2d8d23944a9
commands.docopy: pay attention on whether paths use "/" or os.sep
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
3648
diff
changeset
|
571 abspfx = util.localpath(abspfx) |
1633
94c179a92f4a
copy/rename '.' or '..' correctly
Robin Farine <robin.farine@terminus.org>
parents:
1626
diff
changeset
|
572 striplen = len(abspfx) |
94c179a92f4a
copy/rename '.' or '..' correctly
Robin Farine <robin.farine@terminus.org>
parents:
1626
diff
changeset
|
573 if striplen: |
94c179a92f4a
copy/rename '.' or '..' correctly
Robin Farine <robin.farine@terminus.org>
parents:
1626
diff
changeset
|
574 striplen += len(os.sep) |
94c179a92f4a
copy/rename '.' or '..' correctly
Robin Farine <robin.farine@terminus.org>
parents:
1626
diff
changeset
|
575 if os.path.isdir(os.path.join(dest, os.path.split(abspfx)[1])): |
94c179a92f4a
copy/rename '.' or '..' correctly
Robin Farine <robin.farine@terminus.org>
parents:
1626
diff
changeset
|
576 score = evalpath(striplen) |
94c179a92f4a
copy/rename '.' or '..' correctly
Robin Farine <robin.farine@terminus.org>
parents:
1626
diff
changeset
|
577 striplen1 = len(os.path.split(abspfx)[0]) |
94c179a92f4a
copy/rename '.' or '..' correctly
Robin Farine <robin.farine@terminus.org>
parents:
1626
diff
changeset
|
578 if striplen1: |
94c179a92f4a
copy/rename '.' or '..' correctly
Robin Farine <robin.farine@terminus.org>
parents:
1626
diff
changeset
|
579 striplen1 += len(os.sep) |
94c179a92f4a
copy/rename '.' or '..' correctly
Robin Farine <robin.farine@terminus.org>
parents:
1626
diff
changeset
|
580 if evalpath(striplen1) > score: |
94c179a92f4a
copy/rename '.' or '..' correctly
Robin Farine <robin.farine@terminus.org>
parents:
1626
diff
changeset
|
581 striplen = striplen1 |
3652
d2d8d23944a9
commands.docopy: pay attention on whether paths use "/" or os.sep
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
3648
diff
changeset
|
582 res = lambda p: os.path.join(dest, |
d2d8d23944a9
commands.docopy: pay attention on whether paths use "/" or os.sep
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
3648
diff
changeset
|
583 util.localpath(p)[striplen:]) |
1565
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1561
diff
changeset
|
584 else: |
1633
94c179a92f4a
copy/rename '.' or '..' correctly
Robin Farine <robin.farine@terminus.org>
parents:
1626
diff
changeset
|
585 # a file |
94c179a92f4a
copy/rename '.' or '..' correctly
Robin Farine <robin.farine@terminus.org>
parents:
1626
diff
changeset
|
586 if destdirexists: |
3652
d2d8d23944a9
commands.docopy: pay attention on whether paths use "/" or os.sep
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
3648
diff
changeset
|
587 res = lambda p: os.path.join(dest, |
d2d8d23944a9
commands.docopy: pay attention on whether paths use "/" or os.sep
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
3648
diff
changeset
|
588 os.path.basename(util.localpath(p))) |
1633
94c179a92f4a
copy/rename '.' or '..' correctly
Robin Farine <robin.farine@terminus.org>
parents:
1626
diff
changeset
|
589 else: |
94c179a92f4a
copy/rename '.' or '..' correctly
Robin Farine <robin.farine@terminus.org>
parents:
1626
diff
changeset
|
590 res = lambda p: dest |
1565
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1561
diff
changeset
|
591 return res |
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1561
diff
changeset
|
592 |
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1561
diff
changeset
|
593 |
4055
e37786b29bed
docopy: deal with globs on windows in a better way
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4053
diff
changeset
|
594 pats = util.expand_glob(pats) |
1512
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
1507
diff
changeset
|
595 if not pats: |
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
1507
diff
changeset
|
596 raise util.Abort(_('no source or destination specified')) |
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
1507
diff
changeset
|
597 if len(pats) == 1: |
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
1507
diff
changeset
|
598 raise util.Abort(_('no destination specified')) |
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
1507
diff
changeset
|
599 dest = pats.pop() |
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
1507
diff
changeset
|
600 destdirexists = os.path.isdir(dest) |
5329
7e6138cb8d38
copy: if destination ends with "/", make sure it's a directory
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
5298
diff
changeset
|
601 if not destdirexists: |
7e6138cb8d38
copy: if destination ends with "/", make sure it's a directory
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
5298
diff
changeset
|
602 if len(pats) > 1 or util.patkind(pats[0], None)[0]: |
7e6138cb8d38
copy: if destination ends with "/", make sure it's a directory
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
5298
diff
changeset
|
603 raise util.Abort(_('with multiple sources, destination must be an ' |
7e6138cb8d38
copy: if destination ends with "/", make sure it's a directory
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
5298
diff
changeset
|
604 'existing directory')) |
7e6138cb8d38
copy: if destination ends with "/", make sure it's a directory
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
5298
diff
changeset
|
605 if dest.endswith(os.sep) or os.altsep and dest.endswith(os.altsep): |
7e6138cb8d38
copy: if destination ends with "/", make sure it's a directory
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
5298
diff
changeset
|
606 raise util.Abort(_('destination %s is not a directory') % dest) |
1565
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1561
diff
changeset
|
607 if opts['after']: |
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1561
diff
changeset
|
608 tfn = targetpathafterfn |
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1561
diff
changeset
|
609 else: |
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1561
diff
changeset
|
610 tfn = targetpathfn |
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1561
diff
changeset
|
611 copylist = [] |
1512
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
1507
diff
changeset
|
612 for pat in pats: |
1565
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1561
diff
changeset
|
613 srcs = [] |
4055
e37786b29bed
docopy: deal with globs on windows in a better way
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4053
diff
changeset
|
614 for tag, abssrc, relsrc, exact in cmdutil.walk(repo, [pat], opts, |
e37786b29bed
docopy: deal with globs on windows in a better way
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4053
diff
changeset
|
615 globbed=True): |
1747
91c56c427171
transitive copy/rename
Robin Farine <robin.farine@terminus.org>
parents:
1743
diff
changeset
|
616 origsrc = okaytocopy(abssrc, relsrc, exact) |
91c56c427171
transitive copy/rename
Robin Farine <robin.farine@terminus.org>
parents:
1743
diff
changeset
|
617 if origsrc: |
91c56c427171
transitive copy/rename
Robin Farine <robin.farine@terminus.org>
parents:
1743
diff
changeset
|
618 srcs.append((origsrc, abssrc, relsrc, exact)) |
1565
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1561
diff
changeset
|
619 if not srcs: |
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1561
diff
changeset
|
620 continue |
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1561
diff
changeset
|
621 copylist.append((tfn(pat, dest, srcs), srcs)) |
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1561
diff
changeset
|
622 if not copylist: |
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1561
diff
changeset
|
623 raise util.Abort(_('no files to copy')) |
4bcbc126b80b
fix rename --after
Robin Farine <robin.farine@terminus.org>
parents:
1561
diff
changeset
|
624 |
2414
86e07466bcfc
remove: add -n/--dry-run option
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2413
diff
changeset
|
625 for targetpath, srcs in copylist: |
86e07466bcfc
remove: add -n/--dry-run option
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2413
diff
changeset
|
626 for origsrc, abssrc, relsrc, exact in srcs: |
86e07466bcfc
remove: add -n/--dry-run option
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2413
diff
changeset
|
627 copy(origsrc, abssrc, relsrc, targetpath(abssrc), exact) |
1512
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
1507
diff
changeset
|
628 |
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
1507
diff
changeset
|
629 if errors: |
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
|
630 ui.warn(_('(consider using --after)\n')) |
1512
53ad6ee6ede4
generalize copy/rename to handle more than one source directory
Robin Farine <robin.farine@terminus.org>
parents:
1507
diff
changeset
|
631 return errors, copied |
1253
a45e717c61a8
Add rename/mv command.
Bryan O'Sullivan <bos@serpentine.com>
parents:
1250
diff
changeset
|
632 |
a45e717c61a8
Add rename/mv command.
Bryan O'Sullivan <bos@serpentine.com>
parents:
1250
diff
changeset
|
633 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
|
634 """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
|
635 |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
636 Mark dest as having copies of source files. If dest is a |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
637 directory, copies are put in that directory. If dest is a file, |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
638 there can only be one source. |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
639 |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
640 By default, this command copies the contents of files as they |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
641 stand in the working directory. If invoked with --after, the |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
642 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
|
643 |
3831
531c116b2028
Add doc notes about revert and hg status vs diff
Matt Mackall <mpm@selenic.com>
parents:
3828
diff
changeset
|
644 This command takes effect in the next commit. To undo a copy |
531c116b2028
Add doc notes about revert and hg status vs diff
Matt Mackall <mpm@selenic.com>
parents:
3828
diff
changeset
|
645 before that, see hg revert. |
1437
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
646 """ |
4958 | 647 wlock = repo.wlock(False) |
4959
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
648 try: |
4961
126f527b3ba3
Make repo locks recursive, eliminate all passing of lock/wlock
Matt Mackall <mpm@selenic.com>
parents:
4959
diff
changeset
|
649 errs, copied = docopy(ui, repo, pats, opts) |
4959
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
650 finally: |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
651 del wlock |
1249
a5355fa5e33a
Fix up copy command to behave more like regular "cp".
Bryan O'Sullivan <bos@serpentine.com>
parents:
1247
diff
changeset
|
652 return errs |
363 | 653 |
1262 | 654 def debugancestor(ui, index, rev1, rev2): |
655 """find the ancestor revision of two revisions in a given index""" | |
4267
b11a2fb59cf5
revlog: simplify revlog version handling
Matt Mackall <mpm@selenic.com>
parents:
4266
diff
changeset
|
656 r = revlog.revlog(util.opener(os.getcwd(), audit=False), index) |
1262 | 657 a = r.ancestor(r.lookup(rev1), r.lookup(rev2)) |
658 ui.write("%d:%s\n" % (r.rev(a), hex(a))) | |
659 | |
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
|
660 def debugcomplete(ui, cmd='', **opts): |
1887
913397c27cd8
new command debugcomplete
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1875
diff
changeset
|
661 """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
|
662 |
5e7aff1b6ae1
add --options to debugcomplete and change bash_completion to use it
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
2033
diff
changeset
|
663 if opts['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
|
664 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
|
665 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
|
666 if cmd: |
5185
18a9fbb5cd78
dispatch: move command dispatching into its own module
Matt Mackall <mpm@selenic.com>
parents:
5184
diff
changeset
|
667 aliases, entry = cmdutil.findcmd(ui, cmd, table) |
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
|
668 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
|
669 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
|
670 for o in t: |
5e7aff1b6ae1
add --options to debugcomplete and change bash_completion to use it
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
2033
diff
changeset
|
671 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
|
672 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
|
673 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
|
674 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
|
675 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
|
676 |
5185
18a9fbb5cd78
dispatch: move command dispatching into its own module
Matt Mackall <mpm@selenic.com>
parents:
5184
diff
changeset
|
677 clist = cmdutil.findpossible(ui, cmd, table).keys() |
1887
913397c27cd8
new command debugcomplete
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1875
diff
changeset
|
678 clist.sort() |
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
|
679 ui.write("%s\n" % "\n".join(clist)) |
1887
913397c27cd8
new command debugcomplete
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1875
diff
changeset
|
680 |
3972
356e20d46b34
commands.py: use contexts in various places (debug*state, revert)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3951
diff
changeset
|
681 def debugrebuildstate(ui, repo, rev=""): |
1755
a8f7791e3680
add 'debugrebuildstate' to rebuild the dirstate from a given revision
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1754
diff
changeset
|
682 """rebuild the dirstate as it would look like for the given revision""" |
3972
356e20d46b34
commands.py: use contexts in various places (debug*state, revert)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3951
diff
changeset
|
683 if rev == "": |
1755
a8f7791e3680
add 'debugrebuildstate' to rebuild the dirstate from a given revision
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1754
diff
changeset
|
684 rev = repo.changelog.tip() |
3972
356e20d46b34
commands.py: use contexts in various places (debug*state, revert)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3951
diff
changeset
|
685 ctx = repo.changectx(rev) |
356e20d46b34
commands.py: use contexts in various places (debug*state, revert)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3951
diff
changeset
|
686 files = ctx.manifest() |
1760
13f8e068d13c
fix typo in debugrebuildstate
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1755
diff
changeset
|
687 wlock = repo.wlock() |
4959
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
688 try: |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
689 repo.dirstate.rebuild(rev, files) |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
690 finally: |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
691 del wlock |
1755
a8f7791e3680
add 'debugrebuildstate' to rebuild the dirstate from a given revision
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1754
diff
changeset
|
692 |
596 | 693 def debugcheckstate(ui, repo): |
694 """validate the correctness of the current dirstate""" | |
460 | 695 parent1, parent2 = repo.dirstate.parents() |
3972
356e20d46b34
commands.py: use contexts in various places (debug*state, revert)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3951
diff
changeset
|
696 m1 = repo.changectx(parent1).manifest() |
356e20d46b34
commands.py: use contexts in various places (debug*state, revert)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3951
diff
changeset
|
697 m2 = repo.changectx(parent2).manifest() |
460 | 698 errors = 0 |
4950
30847b8af7ca
dirstate: add __contains__ and make __getitem__ more useful
Matt Mackall <mpm@selenic.com>
parents:
4948
diff
changeset
|
699 for f in repo.dirstate: |
30847b8af7ca
dirstate: add __contains__ and make __getitem__ more useful
Matt Mackall <mpm@selenic.com>
parents:
4948
diff
changeset
|
700 state = repo.dirstate[f] |
460 | 701 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
|
702 ui.warn(_("%s in state %s, but not in manifest1\n") % (f, state)) |
460 | 703 errors += 1 |
704 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
|
705 ui.warn(_("%s in state %s, but also in manifest1\n") % (f, state)) |
460 | 706 errors += 1 |
707 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
|
708 ui.warn(_("%s in state %s, but not in either manifest\n") % |
582 | 709 (f, state)) |
460 | 710 errors += 1 |
711 for f in m1: | |
4950
30847b8af7ca
dirstate: add __contains__ and make __getitem__ more useful
Matt Mackall <mpm@selenic.com>
parents:
4948
diff
changeset
|
712 state = repo.dirstate[f] |
460 | 713 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
|
714 ui.warn(_("%s in manifest1, but listed as state %s") % (f, state)) |
460 | 715 errors += 1 |
716 if errors: | |
1602
fb4149eebdd4
strictly adher to 80 chars per line
Muli Ben-Yehuda <mulix@mulix.org>
parents:
1601
diff
changeset
|
717 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
|
718 raise util.Abort(error) |
460 | 719 |
3539
e1508621e9ef
add --untrusted to showconfig
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
3524
diff
changeset
|
720 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
|
721 """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
|
722 |
1e80d47b8581
debugconfig: allow to print by section and exact item name
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2407
diff
changeset
|
723 With no args, print names and values of all config items. |
1e80d47b8581
debugconfig: allow to print by section and exact item name
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2407
diff
changeset
|
724 |
1e80d47b8581
debugconfig: allow to print by section and exact item name
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2407
diff
changeset
|
725 With one arg of the form section.name, print just the value of |
1e80d47b8581
debugconfig: allow to print by section and exact item name
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2407
diff
changeset
|
726 that config item. |
1e80d47b8581
debugconfig: allow to print by section and exact item name
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2407
diff
changeset
|
727 |
1e80d47b8581
debugconfig: allow to print by section and exact item name
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2407
diff
changeset
|
728 With multiple args, print names and values of all config items |
1e80d47b8581
debugconfig: allow to print by section and exact item name
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2407
diff
changeset
|
729 with matching section names.""" |
1e80d47b8581
debugconfig: allow to print by section and exact item name
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2407
diff
changeset
|
730 |
3539
e1508621e9ef
add --untrusted to showconfig
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
3524
diff
changeset
|
731 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
|
732 if values: |
1e80d47b8581
debugconfig: allow to print by section and exact item name
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2407
diff
changeset
|
733 if len([v for v in values if '.' in v]) > 1: |
1e80d47b8581
debugconfig: allow to print by section and exact item name
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2407
diff
changeset
|
734 raise util.Abort(_('only one config item permitted')) |
3539
e1508621e9ef
add --untrusted to showconfig
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
3524
diff
changeset
|
735 for section, name, value in ui.walkconfig(untrusted=untrusted): |
2410
1e80d47b8581
debugconfig: allow to print by section and exact item name
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2407
diff
changeset
|
736 sectname = section + '.' + name |
1e80d47b8581
debugconfig: allow to print by section and exact item name
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2407
diff
changeset
|
737 if values: |
1e80d47b8581
debugconfig: allow to print by section and exact item name
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2407
diff
changeset
|
738 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
|
739 if v == section: |
1e80d47b8581
debugconfig: allow to print by section and exact item name
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2407
diff
changeset
|
740 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
|
741 elif v == sectname: |
1e80d47b8581
debugconfig: allow to print by section and exact item name
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2407
diff
changeset
|
742 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
|
743 else: |
1e80d47b8581
debugconfig: allow to print by section and exact item name
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2407
diff
changeset
|
744 ui.write('%s=%s\n' % (sectname, value)) |
1028
25e7ea0f2cff
Add commands.debugconfig.
Bryan O'Sullivan <bos@serpentine.com>
parents:
989
diff
changeset
|
745 |
1395
c2eb204917f8
Add debugsetparents command
Matt Mackall <mpm@selenic.com>
parents:
1390
diff
changeset
|
746 def debugsetparents(ui, repo, rev1, rev2=None): |
1470
fb9b84c91222
minor fix on command help docstrings
TK Soh <teekaysoh@yahoo.com>
parents:
1469
diff
changeset
|
747 """manually set the parents of the current working directory |
1395
c2eb204917f8
Add debugsetparents command
Matt Mackall <mpm@selenic.com>
parents:
1390
diff
changeset
|
748 |
c2eb204917f8
Add debugsetparents command
Matt Mackall <mpm@selenic.com>
parents:
1390
diff
changeset
|
749 This is useful for writing repository conversion tools, but should |
c2eb204917f8
Add debugsetparents command
Matt Mackall <mpm@selenic.com>
parents:
1390
diff
changeset
|
750 be used with care. |
c2eb204917f8
Add debugsetparents command
Matt Mackall <mpm@selenic.com>
parents:
1390
diff
changeset
|
751 """ |
c2eb204917f8
Add debugsetparents command
Matt Mackall <mpm@selenic.com>
parents:
1390
diff
changeset
|
752 |
c2eb204917f8
Add debugsetparents command
Matt Mackall <mpm@selenic.com>
parents:
1390
diff
changeset
|
753 if not rev2: |
c2eb204917f8
Add debugsetparents command
Matt Mackall <mpm@selenic.com>
parents:
1390
diff
changeset
|
754 rev2 = hex(nullid) |
c2eb204917f8
Add debugsetparents command
Matt Mackall <mpm@selenic.com>
parents:
1390
diff
changeset
|
755 |
4249
89075f106414
debugsetparents: wlock the repo before updating the dirstate
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4231
diff
changeset
|
756 wlock = repo.wlock() |
89075f106414
debugsetparents: wlock the repo before updating the dirstate
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4231
diff
changeset
|
757 try: |
89075f106414
debugsetparents: wlock the repo before updating the dirstate
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4231
diff
changeset
|
758 repo.dirstate.setparents(repo.lookup(rev1), repo.lookup(rev2)) |
89075f106414
debugsetparents: wlock the repo before updating the dirstate
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4231
diff
changeset
|
759 finally: |
4959
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
760 del wlock |
1395
c2eb204917f8
Add debugsetparents command
Matt Mackall <mpm@selenic.com>
parents:
1390
diff
changeset
|
761 |
596 | 762 def debugstate(ui, repo): |
763 """show the contents of the current dirstate""" | |
5139
49554ba98951
debugstate: print symlinks as 'lnk', not '777'
Bryan O'Sullivan <bos@serpentine.com>
parents:
5138
diff
changeset
|
764 k = repo.dirstate._map.items() |
4950
30847b8af7ca
dirstate: add __contains__ and make __getitem__ more useful
Matt Mackall <mpm@selenic.com>
parents:
4948
diff
changeset
|
765 k.sort() |
5139
49554ba98951
debugstate: print symlinks as 'lnk', not '777'
Bryan O'Sullivan <bos@serpentine.com>
parents:
5138
diff
changeset
|
766 for file_, ent in k: |
49554ba98951
debugstate: print symlinks as 'lnk', not '777'
Bryan O'Sullivan <bos@serpentine.com>
parents:
5138
diff
changeset
|
767 if ent[3] == -1: |
4053
994fec0ee900
mtime can be -1 after a merge and cause tracebacks on win32.
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
4043
diff
changeset
|
768 # Pad or slice to locale representation |
994fec0ee900
mtime can be -1 after a merge and cause tracebacks on win32.
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
4043
diff
changeset
|
769 locale_len = len(time.strftime("%x %X", time.localtime(0))) |
994fec0ee900
mtime can be -1 after a merge and cause tracebacks on win32.
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
4043
diff
changeset
|
770 timestr = 'unset' |
994fec0ee900
mtime can be -1 after a merge and cause tracebacks on win32.
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
4043
diff
changeset
|
771 timestr = timestr[:locale_len] + ' '*(locale_len - len(timestr)) |
994fec0ee900
mtime can be -1 after a merge and cause tracebacks on win32.
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
4043
diff
changeset
|
772 else: |
5139
49554ba98951
debugstate: print symlinks as 'lnk', not '777'
Bryan O'Sullivan <bos@serpentine.com>
parents:
5138
diff
changeset
|
773 timestr = time.strftime("%x %X", time.localtime(ent[3])) |
49554ba98951
debugstate: print symlinks as 'lnk', not '777'
Bryan O'Sullivan <bos@serpentine.com>
parents:
5138
diff
changeset
|
774 if ent[1] & 020000: |
49554ba98951
debugstate: print symlinks as 'lnk', not '777'
Bryan O'Sullivan <bos@serpentine.com>
parents:
5138
diff
changeset
|
775 mode = 'lnk' |
49554ba98951
debugstate: print symlinks as 'lnk', not '777'
Bryan O'Sullivan <bos@serpentine.com>
parents:
5138
diff
changeset
|
776 else: |
49554ba98951
debugstate: print symlinks as 'lnk', not '777'
Bryan O'Sullivan <bos@serpentine.com>
parents:
5138
diff
changeset
|
777 mode = '%3o' % (ent[1] & 0777) |
49554ba98951
debugstate: print symlinks as 'lnk', not '777'
Bryan O'Sullivan <bos@serpentine.com>
parents:
5138
diff
changeset
|
778 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
|
779 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
|
780 ui.write(_("copy: %s -> %s\n") % (repo.dirstate.copied(f), f)) |
460 | 781 |
1039
4296754ba7b4
Add debugdata for dumping revlog revision data
mpm@selenic.com
parents:
1037
diff
changeset
|
782 def debugdata(ui, file_, rev): |
4267
b11a2fb59cf5
revlog: simplify revlog version handling
Matt Mackall <mpm@selenic.com>
parents:
4266
diff
changeset
|
783 """dump the contents of a data file revision""" |
b11a2fb59cf5
revlog: simplify revlog version handling
Matt Mackall <mpm@selenic.com>
parents:
4266
diff
changeset
|
784 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
|
785 try: |
1cc7c0cbc30b
Fix traceback during invalid rev identifier for debugdata
Anupam Kapoor<anupam.kapoor@gmail.com>
parents:
1312
diff
changeset
|
786 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
|
787 except KeyError: |
3069
bc3fe3b5b785
Never apply string formatting to generated errors with util.Abort.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3068
diff
changeset
|
788 raise util.Abort(_('invalid revision identifier %s') % rev) |
1039
4296754ba7b4
Add debugdata for dumping revlog revision data
mpm@selenic.com
parents:
1037
diff
changeset
|
789 |
3815 | 790 def debugdate(ui, date, range=None, **opts): |
3807 | 791 """parse and display a date""" |
3815 | 792 if opts["extended"]: |
793 d = util.parsedate(date, util.extendeddateformats) | |
794 else: | |
795 d = util.parsedate(date) | |
3807 | 796 ui.write("internal: %s %s\n" % d) |
797 ui.write("standard: %s\n" % util.datestr(d)) | |
3815 | 798 if range: |
799 m = util.matchdate(range) | |
800 ui.write("match: %s\n" % m(d[0])) | |
3807 | 801 |
697
cb1be2327220
Multiple cleanups of things detected by pylint.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
696
diff
changeset
|
802 def debugindex(ui, file_): |
596 | 803 """dump the contents of an index file""" |
4267
b11a2fb59cf5
revlog: simplify revlog version handling
Matt Mackall <mpm@selenic.com>
parents:
4266
diff
changeset
|
804 r = revlog.revlog(util.opener(os.getcwd(), audit=False), file_) |
582 | 805 ui.write(" rev offset length base linkrev" + |
989 | 806 " nodeid p1 p2\n") |
3467
df7202f6887c
use xrange instead of range
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3466
diff
changeset
|
807 for i in xrange(r.count()): |
2072 | 808 node = r.node(i) |
5321
599f3a690d8f
debugindex: more robust for damaged indexes
Matt Mackall <mpm@selenic.com>
parents:
5310
diff
changeset
|
809 try: |
599f3a690d8f
debugindex: more robust for damaged indexes
Matt Mackall <mpm@selenic.com>
parents:
5310
diff
changeset
|
810 pp = r.parents(node) |
599f3a690d8f
debugindex: more robust for damaged indexes
Matt Mackall <mpm@selenic.com>
parents:
5310
diff
changeset
|
811 except: |
599f3a690d8f
debugindex: more robust for damaged indexes
Matt Mackall <mpm@selenic.com>
parents:
5310
diff
changeset
|
812 pp = [nullid, nullid] |
989 | 813 ui.write("% 6d % 9d % 7d % 6d % 7d %s %s %s\n" % ( |
2072 | 814 i, r.start(i), r.length(i), r.base(i), r.linkrev(node), |
815 short(node), short(pp[0]), short(pp[1]))) | |
248 | 816 |
697
cb1be2327220
Multiple cleanups of things detected by pylint.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
696
diff
changeset
|
817 def debugindexdot(ui, file_): |
596 | 818 """dump an index DAG as a .dot file""" |
4267
b11a2fb59cf5
revlog: simplify revlog version handling
Matt Mackall <mpm@selenic.com>
parents:
4266
diff
changeset
|
819 r = revlog.revlog(util.opener(os.getcwd(), audit=False), file_) |
582 | 820 ui.write("digraph G {\n") |
3467
df7202f6887c
use xrange instead of range
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3466
diff
changeset
|
821 for i in xrange(r.count()): |
2287
3f18d1eea370
Update debugindexdot to work with RevlogNG.
Samuel Masham <samuel.masham@gmail.com>
parents:
2283
diff
changeset
|
822 node = r.node(i) |
3f18d1eea370
Update debugindexdot to work with RevlogNG.
Samuel Masham <samuel.masham@gmail.com>
parents:
2283
diff
changeset
|
823 pp = r.parents(node) |
3f18d1eea370
Update debugindexdot to work with RevlogNG.
Samuel Masham <samuel.masham@gmail.com>
parents:
2283
diff
changeset
|
824 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
|
825 if pp[1] != nullid: |
3f18d1eea370
Update debugindexdot to work with RevlogNG.
Samuel Masham <samuel.masham@gmail.com>
parents:
2283
diff
changeset
|
826 ui.write("\t%d -> %d\n" % (r.rev(pp[1]), i)) |
582 | 827 ui.write("}\n") |
248 | 828 |
3844
3ba82c3f4bc3
Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents:
3840
diff
changeset
|
829 def debuginstall(ui): |
3ba82c3f4bc3
Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents:
3840
diff
changeset
|
830 '''test Mercurial installation''' |
3ba82c3f4bc3
Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents:
3840
diff
changeset
|
831 |
3846
18855084b922
Make debuginstall actually attempt to use external patch and merge
Matt Mackall <mpm@selenic.com>
parents:
3844
diff
changeset
|
832 def writetemp(contents): |
4836
035489f60842
Use a prefix for debuginstall tempfiles.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
4819
diff
changeset
|
833 (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
|
834 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
|
835 f.write(contents) |
18855084b922
Make debuginstall actually attempt to use external patch and merge
Matt Mackall <mpm@selenic.com>
parents:
3844
diff
changeset
|
836 f.close() |
18855084b922
Make debuginstall actually attempt to use external patch and merge
Matt Mackall <mpm@selenic.com>
parents:
3844
diff
changeset
|
837 return name |
18855084b922
Make debuginstall actually attempt to use external patch and merge
Matt Mackall <mpm@selenic.com>
parents:
3844
diff
changeset
|
838 |
3844
3ba82c3f4bc3
Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents:
3840
diff
changeset
|
839 problems = 0 |
3ba82c3f4bc3
Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents:
3840
diff
changeset
|
840 |
3ba82c3f4bc3
Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents:
3840
diff
changeset
|
841 # encoding |
3ba82c3f4bc3
Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents:
3840
diff
changeset
|
842 ui.status(_("Checking encoding (%s)...\n") % util._encoding) |
3ba82c3f4bc3
Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents:
3840
diff
changeset
|
843 try: |
3ba82c3f4bc3
Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents:
3840
diff
changeset
|
844 util.fromlocal("test") |
3ba82c3f4bc3
Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents:
3840
diff
changeset
|
845 except util.Abort, inst: |
3ba82c3f4bc3
Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents:
3840
diff
changeset
|
846 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
|
847 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
|
848 problems += 1 |
3ba82c3f4bc3
Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents:
3840
diff
changeset
|
849 |
3ba82c3f4bc3
Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents:
3840
diff
changeset
|
850 # compiled modules |
3ba82c3f4bc3
Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents:
3840
diff
changeset
|
851 ui.status(_("Checking extensions...\n")) |
3ba82c3f4bc3
Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents:
3840
diff
changeset
|
852 try: |
3ba82c3f4bc3
Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents:
3840
diff
changeset
|
853 import bdiff, mpatch, base85 |
3ba82c3f4bc3
Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents:
3840
diff
changeset
|
854 except Exception, inst: |
3ba82c3f4bc3
Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents:
3840
diff
changeset
|
855 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
|
856 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
|
857 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
|
858 problems += 1 |
3ba82c3f4bc3
Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents:
3840
diff
changeset
|
859 |
3ba82c3f4bc3
Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents:
3840
diff
changeset
|
860 # templates |
3ba82c3f4bc3
Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents:
3840
diff
changeset
|
861 ui.status(_("Checking templates...\n")) |
3ba82c3f4bc3
Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents:
3840
diff
changeset
|
862 try: |
3ba82c3f4bc3
Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents:
3840
diff
changeset
|
863 import templater |
3ba82c3f4bc3
Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents:
3840
diff
changeset
|
864 t = templater.templater(templater.templatepath("map-cmdline.default")) |
3ba82c3f4bc3
Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents:
3840
diff
changeset
|
865 except Exception, inst: |
3ba82c3f4bc3
Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents:
3840
diff
changeset
|
866 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
|
867 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
|
868 problems += 1 |
3ba82c3f4bc3
Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents:
3840
diff
changeset
|
869 |
3ba82c3f4bc3
Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents:
3840
diff
changeset
|
870 # patch |
3ba82c3f4bc3
Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents:
3840
diff
changeset
|
871 ui.status(_("Checking patch...\n")) |
5310
ba3dc7883968
debuginstall: stop looking for patch utility, just test it
Patrick Mezard <pmezard@gmail.com>
parents:
5300
diff
changeset
|
872 patchproblems = 0 |
ba3dc7883968
debuginstall: stop looking for patch utility, just test it
Patrick Mezard <pmezard@gmail.com>
parents:
5300
diff
changeset
|
873 a = "1\n2\n3\n4\n" |
ba3dc7883968
debuginstall: stop looking for patch utility, just test it
Patrick Mezard <pmezard@gmail.com>
parents:
5300
diff
changeset
|
874 b = "1\n2\n3\ninsert\n4\n" |
ba3dc7883968
debuginstall: stop looking for patch utility, just test it
Patrick Mezard <pmezard@gmail.com>
parents:
5300
diff
changeset
|
875 fa = writetemp(a) |
ba3dc7883968
debuginstall: stop looking for patch utility, just test it
Patrick Mezard <pmezard@gmail.com>
parents:
5300
diff
changeset
|
876 d = mdiff.unidiff(a, None, b, None, os.path.basename(fa)) |
ba3dc7883968
debuginstall: stop looking for patch utility, just test it
Patrick Mezard <pmezard@gmail.com>
parents:
5300
diff
changeset
|
877 fd = writetemp(d) |
ba3dc7883968
debuginstall: stop looking for patch utility, just test it
Patrick Mezard <pmezard@gmail.com>
parents:
5300
diff
changeset
|
878 |
ba3dc7883968
debuginstall: stop looking for patch utility, just test it
Patrick Mezard <pmezard@gmail.com>
parents:
5300
diff
changeset
|
879 files = {} |
ba3dc7883968
debuginstall: stop looking for patch utility, just test it
Patrick Mezard <pmezard@gmail.com>
parents:
5300
diff
changeset
|
880 try: |
ba3dc7883968
debuginstall: stop looking for patch utility, just test it
Patrick Mezard <pmezard@gmail.com>
parents:
5300
diff
changeset
|
881 patch.patch(fd, ui, cwd=os.path.dirname(fa), files=files) |
ba3dc7883968
debuginstall: stop looking for patch utility, just test it
Patrick Mezard <pmezard@gmail.com>
parents:
5300
diff
changeset
|
882 except util.Abort, e: |
ba3dc7883968
debuginstall: stop looking for patch utility, just test it
Patrick Mezard <pmezard@gmail.com>
parents:
5300
diff
changeset
|
883 ui.write(_(" patch call failed:\n")) |
ba3dc7883968
debuginstall: stop looking for patch utility, just test it
Patrick Mezard <pmezard@gmail.com>
parents:
5300
diff
changeset
|
884 ui.write(" " + str(e) + "\n") |
ba3dc7883968
debuginstall: stop looking for patch utility, just test it
Patrick Mezard <pmezard@gmail.com>
parents:
5300
diff
changeset
|
885 patchproblems += 1 |
3846
18855084b922
Make debuginstall actually attempt to use external patch and merge
Matt Mackall <mpm@selenic.com>
parents:
3844
diff
changeset
|
886 else: |
5310
ba3dc7883968
debuginstall: stop looking for patch utility, just test it
Patrick Mezard <pmezard@gmail.com>
parents:
5300
diff
changeset
|
887 if list(files) != [os.path.basename(fa)]: |
ba3dc7883968
debuginstall: stop looking for patch utility, just test it
Patrick Mezard <pmezard@gmail.com>
parents:
5300
diff
changeset
|
888 ui.write(_(" unexpected patch output!\n")) |
ba3dc7883968
debuginstall: stop looking for patch utility, just test it
Patrick Mezard <pmezard@gmail.com>
parents:
5300
diff
changeset
|
889 patchproblems += 1 |
ba3dc7883968
debuginstall: stop looking for patch utility, just test it
Patrick Mezard <pmezard@gmail.com>
parents:
5300
diff
changeset
|
890 a = file(fa).read() |
ba3dc7883968
debuginstall: stop looking for patch utility, just test it
Patrick Mezard <pmezard@gmail.com>
parents:
5300
diff
changeset
|
891 if a != b: |
ba3dc7883968
debuginstall: stop looking for patch utility, just test it
Patrick Mezard <pmezard@gmail.com>
parents:
5300
diff
changeset
|
892 ui.write(_(" patch test failed!\n")) |
ba3dc7883968
debuginstall: stop looking for patch utility, just test it
Patrick Mezard <pmezard@gmail.com>
parents:
5300
diff
changeset
|
893 patchproblems += 1 |
ba3dc7883968
debuginstall: stop looking for patch utility, just test it
Patrick Mezard <pmezard@gmail.com>
parents:
5300
diff
changeset
|
894 |
ba3dc7883968
debuginstall: stop looking for patch utility, just test it
Patrick Mezard <pmezard@gmail.com>
parents:
5300
diff
changeset
|
895 if patchproblems: |
ba3dc7883968
debuginstall: stop looking for patch utility, just test it
Patrick Mezard <pmezard@gmail.com>
parents:
5300
diff
changeset
|
896 if ui.config('ui', 'patch'): |
ba3dc7883968
debuginstall: stop looking for patch utility, just test it
Patrick Mezard <pmezard@gmail.com>
parents:
5300
diff
changeset
|
897 ui.write(_(" (Current patch tool may be incompatible with patch," |
ba3dc7883968
debuginstall: stop looking for patch utility, just test it
Patrick Mezard <pmezard@gmail.com>
parents:
5300
diff
changeset
|
898 " or misconfigured. Please check your .hgrc file)\n")) |
4516
96d8a56d4ef9
Removed trailing whitespace and tabs from python files
Thomas Arendsen Hein <thomas@intevation.de>
parents:
4505
diff
changeset
|
899 else: |
5310
ba3dc7883968
debuginstall: stop looking for patch utility, just test it
Patrick Mezard <pmezard@gmail.com>
parents:
5300
diff
changeset
|
900 ui.write(_(" Internal patcher failure, please report this error" |
ba3dc7883968
debuginstall: stop looking for patch utility, just test it
Patrick Mezard <pmezard@gmail.com>
parents:
5300
diff
changeset
|
901 " to http://www.selenic.com/mercurial/bts\n")) |
ba3dc7883968
debuginstall: stop looking for patch utility, just test it
Patrick Mezard <pmezard@gmail.com>
parents:
5300
diff
changeset
|
902 problems += patchproblems |
ba3dc7883968
debuginstall: stop looking for patch utility, just test it
Patrick Mezard <pmezard@gmail.com>
parents:
5300
diff
changeset
|
903 |
ba3dc7883968
debuginstall: stop looking for patch utility, just test it
Patrick Mezard <pmezard@gmail.com>
parents:
5300
diff
changeset
|
904 os.unlink(fa) |
ba3dc7883968
debuginstall: stop looking for patch utility, just test it
Patrick Mezard <pmezard@gmail.com>
parents:
5300
diff
changeset
|
905 os.unlink(fd) |
3844
3ba82c3f4bc3
Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents:
3840
diff
changeset
|
906 |
3ba82c3f4bc3
Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents:
3840
diff
changeset
|
907 # merge helper |
3ba82c3f4bc3
Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents:
3840
diff
changeset
|
908 ui.status(_("Checking merge helper...\n")) |
3ba82c3f4bc3
Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents:
3840
diff
changeset
|
909 cmd = (os.environ.get("HGMERGE") or ui.config("ui", "merge") |
3ba82c3f4bc3
Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents:
3840
diff
changeset
|
910 or "hgmerge") |
4482
62019c4427e3
Introduce find_exe. Use instead of find_in_path for programs.
Bryan O'Sullivan <bos@serpentine.com>
parents:
4438
diff
changeset
|
911 cmdpath = util.find_exe(cmd) or util.find_exe(cmd.split()[0]) |
3844
3ba82c3f4bc3
Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents:
3840
diff
changeset
|
912 if not cmdpath: |
3ba82c3f4bc3
Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents:
3840
diff
changeset
|
913 if cmd == 'hgmerge': |
3ba82c3f4bc3
Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents:
3840
diff
changeset
|
914 ui.write(_(" No merge helper set and can't find default" |
3ba82c3f4bc3
Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents:
3840
diff
changeset
|
915 " hgmerge script in PATH\n")) |
3848
8cbf060f637e
Add some remedies and a username check to debuginstall
Matt Mackall <mpm@selenic.com>
parents:
3846
diff
changeset
|
916 ui.write(_(" (specify a merge helper in your .hgrc file)\n")) |
3844
3ba82c3f4bc3
Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents:
3840
diff
changeset
|
917 else: |
3ba82c3f4bc3
Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents:
3840
diff
changeset
|
918 ui.write(_(" Can't find merge helper '%s' in PATH\n") % cmd) |
3848
8cbf060f637e
Add some remedies and a username check to debuginstall
Matt Mackall <mpm@selenic.com>
parents:
3846
diff
changeset
|
919 ui.write(_(" (specify a merge helper in your .hgrc file)\n")) |
3844
3ba82c3f4bc3
Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents:
3840
diff
changeset
|
920 problems += 1 |
3846
18855084b922
Make debuginstall actually attempt to use external patch and merge
Matt Mackall <mpm@selenic.com>
parents:
3844
diff
changeset
|
921 else: |
18855084b922
Make debuginstall actually attempt to use external patch and merge
Matt Mackall <mpm@selenic.com>
parents:
3844
diff
changeset
|
922 # actually attempt a patch here |
18855084b922
Make debuginstall actually attempt to use external patch and merge
Matt Mackall <mpm@selenic.com>
parents:
3844
diff
changeset
|
923 fa = writetemp("1\n2\n3\n4\n") |
18855084b922
Make debuginstall actually attempt to use external patch and merge
Matt Mackall <mpm@selenic.com>
parents:
3844
diff
changeset
|
924 fl = writetemp("1\n2\n3\ninsert\n4\n") |
18855084b922
Make debuginstall actually attempt to use external patch and merge
Matt Mackall <mpm@selenic.com>
parents:
3844
diff
changeset
|
925 fr = writetemp("begin\n1\n2\n3\n4\n") |
4798
452d171a1b39
Fixed calling the merge script and reporting errors in debuginstall (issue617)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
4777
diff
changeset
|
926 r = util.system('%s "%s" "%s" "%s"' % (cmd, fl, fa, fr)) |
3846
18855084b922
Make debuginstall actually attempt to use external patch and merge
Matt Mackall <mpm@selenic.com>
parents:
3844
diff
changeset
|
927 if r: |
4798
452d171a1b39
Fixed calling the merge script and reporting errors in debuginstall (issue617)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
4777
diff
changeset
|
928 ui.write(_(" Got unexpected merge error %d!\n") % r) |
3846
18855084b922
Make debuginstall actually attempt to use external patch and merge
Matt Mackall <mpm@selenic.com>
parents:
3844
diff
changeset
|
929 problems += 1 |
18855084b922
Make debuginstall actually attempt to use external patch and merge
Matt Mackall <mpm@selenic.com>
parents:
3844
diff
changeset
|
930 m = file(fl).read() |
18855084b922
Make debuginstall actually attempt to use external patch and merge
Matt Mackall <mpm@selenic.com>
parents:
3844
diff
changeset
|
931 if m != "begin\n1\n2\n3\ninsert\n4\n": |
4798
452d171a1b39
Fixed calling the merge script and reporting errors in debuginstall (issue617)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
4777
diff
changeset
|
932 ui.write(_(" Got unexpected merge results!\n")) |
3848
8cbf060f637e
Add some remedies and a username check to debuginstall
Matt Mackall <mpm@selenic.com>
parents:
3846
diff
changeset
|
933 ui.write(_(" (your merge helper may have the" |
8cbf060f637e
Add some remedies and a username check to debuginstall
Matt Mackall <mpm@selenic.com>
parents:
3846
diff
changeset
|
934 " wrong argument order)\n")) |
4798
452d171a1b39
Fixed calling the merge script and reporting errors in debuginstall (issue617)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
4777
diff
changeset
|
935 ui.write(_(" Result: %r\n") % m) |
452d171a1b39
Fixed calling the merge script and reporting errors in debuginstall (issue617)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
4777
diff
changeset
|
936 problems += 1 |
3846
18855084b922
Make debuginstall actually attempt to use external patch and merge
Matt Mackall <mpm@selenic.com>
parents:
3844
diff
changeset
|
937 os.unlink(fa) |
18855084b922
Make debuginstall actually attempt to use external patch and merge
Matt Mackall <mpm@selenic.com>
parents:
3844
diff
changeset
|
938 os.unlink(fl) |
18855084b922
Make debuginstall actually attempt to use external patch and merge
Matt Mackall <mpm@selenic.com>
parents:
3844
diff
changeset
|
939 os.unlink(fr) |
3844
3ba82c3f4bc3
Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents:
3840
diff
changeset
|
940 |
3ba82c3f4bc3
Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents:
3840
diff
changeset
|
941 # editor |
3ba82c3f4bc3
Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents:
3840
diff
changeset
|
942 ui.status(_("Checking commit editor...\n")) |
3ba82c3f4bc3
Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents:
3840
diff
changeset
|
943 editor = (os.environ.get("HGEDITOR") or |
3ba82c3f4bc3
Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents:
3840
diff
changeset
|
944 ui.config("ui", "editor") or |
3ba82c3f4bc3
Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents:
3840
diff
changeset
|
945 os.environ.get("EDITOR", "vi")) |
4482
62019c4427e3
Introduce find_exe. Use instead of find_in_path for programs.
Bryan O'Sullivan <bos@serpentine.com>
parents:
4438
diff
changeset
|
946 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
|
947 if not cmdpath: |
3855
b9cdd6f2aa43
debuginstall: fix a copy/paste error
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3848
diff
changeset
|
948 if editor == 'vi': |
3844
3ba82c3f4bc3
Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents:
3840
diff
changeset
|
949 ui.write(_(" No commit editor set and can't find vi in PATH\n")) |
3848
8cbf060f637e
Add some remedies and a username check to debuginstall
Matt Mackall <mpm@selenic.com>
parents:
3846
diff
changeset
|
950 ui.write(_(" (specify a commit editor in your .hgrc file)\n")) |
3844
3ba82c3f4bc3
Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents:
3840
diff
changeset
|
951 else: |
3ba82c3f4bc3
Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents:
3840
diff
changeset
|
952 ui.write(_(" Can't find editor '%s' in PATH\n") % editor) |
3848
8cbf060f637e
Add some remedies and a username check to debuginstall
Matt Mackall <mpm@selenic.com>
parents:
3846
diff
changeset
|
953 ui.write(_(" (specify a commit editor in your .hgrc file)\n")) |
3844
3ba82c3f4bc3
Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents:
3840
diff
changeset
|
954 problems += 1 |
3ba82c3f4bc3
Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents:
3840
diff
changeset
|
955 |
3848
8cbf060f637e
Add some remedies and a username check to debuginstall
Matt Mackall <mpm@selenic.com>
parents:
3846
diff
changeset
|
956 # check username |
8cbf060f637e
Add some remedies and a username check to debuginstall
Matt Mackall <mpm@selenic.com>
parents:
3846
diff
changeset
|
957 ui.status(_("Checking username...\n")) |
8cbf060f637e
Add some remedies and a username check to debuginstall
Matt Mackall <mpm@selenic.com>
parents:
3846
diff
changeset
|
958 user = os.environ.get("HGUSER") |
8cbf060f637e
Add some remedies and a username check to debuginstall
Matt Mackall <mpm@selenic.com>
parents:
3846
diff
changeset
|
959 if user is None: |
8cbf060f637e
Add some remedies and a username check to debuginstall
Matt Mackall <mpm@selenic.com>
parents:
3846
diff
changeset
|
960 user = ui.config("ui", "username") |
8cbf060f637e
Add some remedies and a username check to debuginstall
Matt Mackall <mpm@selenic.com>
parents:
3846
diff
changeset
|
961 if user is None: |
8cbf060f637e
Add some remedies and a username check to debuginstall
Matt Mackall <mpm@selenic.com>
parents:
3846
diff
changeset
|
962 user = os.environ.get("EMAIL") |
8cbf060f637e
Add some remedies and a username check to debuginstall
Matt Mackall <mpm@selenic.com>
parents:
3846
diff
changeset
|
963 if not user: |
8cbf060f637e
Add some remedies and a username check to debuginstall
Matt Mackall <mpm@selenic.com>
parents:
3846
diff
changeset
|
964 ui.warn(" ") |
8cbf060f637e
Add some remedies and a username check to debuginstall
Matt Mackall <mpm@selenic.com>
parents:
3846
diff
changeset
|
965 ui.username() |
8cbf060f637e
Add some remedies and a username check to debuginstall
Matt Mackall <mpm@selenic.com>
parents:
3846
diff
changeset
|
966 ui.write(_(" (specify a username in your .hgrc file)\n")) |
8cbf060f637e
Add some remedies and a username check to debuginstall
Matt Mackall <mpm@selenic.com>
parents:
3846
diff
changeset
|
967 |
3844
3ba82c3f4bc3
Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents:
3840
diff
changeset
|
968 if not problems: |
3ba82c3f4bc3
Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents:
3840
diff
changeset
|
969 ui.status(_("No problems detected\n")) |
3ba82c3f4bc3
Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents:
3840
diff
changeset
|
970 else: |
3ba82c3f4bc3
Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents:
3840
diff
changeset
|
971 ui.write(_("%s problems detected," |
3ba82c3f4bc3
Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents:
3840
diff
changeset
|
972 " please check your install!\n") % problems) |
3ba82c3f4bc3
Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents:
3840
diff
changeset
|
973 |
3ba82c3f4bc3
Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents:
3840
diff
changeset
|
974 return problems |
3ba82c3f4bc3
Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents:
3840
diff
changeset
|
975 |
3659 | 976 def debugrename(ui, repo, file1, *pats, **opts): |
1194
c165cbf56bb1
Add doc string for debugrename.
bos@serpentine.internal.keyresearch.com
parents:
1193
diff
changeset
|
977 """dump rename information""" |
3659 | 978 |
979 ctx = repo.changectx(opts.get('rev', 'tip')) | |
980 for src, abs, rel, exact in cmdutil.walk(repo, (file1,) + pats, opts, | |
981 ctx.node()): | |
982 m = ctx.filectx(abs).renamed() | |
983 if m: | |
984 ui.write(_("%s renamed from %s:%s\n") % (rel, m[0], hex(m[1]))) | |
985 else: | |
986 ui.write(_("%s not renamed\n") % rel) | |
1116 | 987 |
820
89985a1b3427
Clean up walk and changes code to use normalised names properly.
Bryan O'Sullivan <bos@serpentine.com>
parents:
815
diff
changeset
|
988 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
|
989 """show how files match on given patterns""" |
2881
cf98cd70d2c4
move walk and matchpats from commands to cmdutil.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2877
diff
changeset
|
990 items = list(cmdutil.walk(repo, pats, opts)) |
1065
6e94c0365d98
Cleanups to commands.py
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1062
diff
changeset
|
991 if not items: |
6e94c0365d98
Cleanups to commands.py
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1062
diff
changeset
|
992 return |
1309
332f225b835c
Make debugwalk strip trailing spaces and remove these from test-walk.out
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1285
diff
changeset
|
993 fmt = '%%s %%-%ds %%-%ds %%s' % ( |
942
7eb8cbcca7c4
Modify commands.walk to yield a 4-tuple.
Bryan O'Sullivan <bos@serpentine.com>
parents:
940
diff
changeset
|
994 max([len(abs) for (src, abs, rel, exact) in items]), |
7eb8cbcca7c4
Modify commands.walk to yield a 4-tuple.
Bryan O'Sullivan <bos@serpentine.com>
parents:
940
diff
changeset
|
995 max([len(rel) for (src, abs, rel, exact) in items])) |
7eb8cbcca7c4
Modify commands.walk to yield a 4-tuple.
Bryan O'Sullivan <bos@serpentine.com>
parents:
940
diff
changeset
|
996 for src, abs, rel, exact in items: |
1309
332f225b835c
Make debugwalk strip trailing spaces and remove these from test-walk.out
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1285
diff
changeset
|
997 line = fmt % (src, abs, rel, exact and 'exact' or '') |
332f225b835c
Make debugwalk strip trailing spaces and remove these from test-walk.out
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1285
diff
changeset
|
998 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
|
999 |
732
ba0b6d17a6de
Convert diff command over to using walk code.
Bryan O'Sullivan <bos@serpentine.com>
parents:
731
diff
changeset
|
1000 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
|
1001 """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
|
1002 |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
1003 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
|
1004 |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
1005 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
|
1006 |
3828
28134d82db9b
Add notes about diff/merge asymmetry to export, diff, and log
Matt Mackall <mpm@selenic.com>
parents:
3819
diff
changeset
|
1007 NOTE: diff may generate unexpected results for merges, as it will |
28134d82db9b
Add notes about diff/merge asymmetry to export, diff, and log
Matt Mackall <mpm@selenic.com>
parents:
3819
diff
changeset
|
1008 default to comparing against the working directory's first parent |
28134d82db9b
Add notes about diff/merge asymmetry to export, diff, and log
Matt Mackall <mpm@selenic.com>
parents:
3819
diff
changeset
|
1009 changeset if no revisions are specified. |
28134d82db9b
Add notes about diff/merge asymmetry to export, diff, and log
Matt Mackall <mpm@selenic.com>
parents:
3819
diff
changeset
|
1010 |
1437
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
1011 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
|
1012 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
|
1013 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
|
1014 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
|
1015 to its parent. |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
1016 |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
1017 Without the -a option, diff will avoid generating diffs of files |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
1018 it detects as binary. With -a, diff will generate a diff anyway, |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
1019 probably with undesirable results. |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
1020 """ |
3707
67f44b825784
Removed unused ui parameter from revpair/revrange and fix its users.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3706
diff
changeset
|
1021 node1, node2 = cmdutil.revpair(repo, opts['rev']) |
245 | 1022 |
2881
cf98cd70d2c4
move walk and matchpats from commands to cmdutil.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2877
diff
changeset
|
1023 fns, matchfn, anypats = cmdutil.matchpats(repo, pats, opts) |
1014 | 1024 |
2873
4ec58b157265
refactor text diff/patch code.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2870
diff
changeset
|
1025 patch.diff(repo, node1, node2, fns, match=matchfn, |
2908
3848488244fc
Move ui.diffopts to patch.diffopts where it belongs
Matt Mackall <mpm@selenic.com>
parents:
2882
diff
changeset
|
1026 opts=patch.diffopts(ui, opts)) |
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
|
1027 |
580 | 1028 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
|
1029 """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
|
1030 |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
1031 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
|
1032 |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
1033 The information shown in the changeset header is: author, |
3828
28134d82db9b
Add notes about diff/merge asymmetry to export, diff, and log
Matt Mackall <mpm@selenic.com>
parents:
3819
diff
changeset
|
1034 changeset hash, parent(s) and commit comment. |
28134d82db9b
Add notes about diff/merge asymmetry to export, diff, and log
Matt Mackall <mpm@selenic.com>
parents:
3819
diff
changeset
|
1035 |
28134d82db9b
Add notes about diff/merge asymmetry to export, diff, and log
Matt Mackall <mpm@selenic.com>
parents:
3819
diff
changeset
|
1036 NOTE: export may generate unexpected diff output for merge changesets, |
28134d82db9b
Add notes about diff/merge asymmetry to export, diff, and log
Matt Mackall <mpm@selenic.com>
parents:
3819
diff
changeset
|
1037 as it will compare the merge changeset against its first parent only. |
1437
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
1038 |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
1039 Output may be to a file, in which case the name of the file is |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
1040 given using a format string. The formatting rules are as follows: |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
1041 |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
1042 %% literal "%" character |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
1043 %H changeset hash (40 bytes of hexadecimal) |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
1044 %N number of patches being generated |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
1045 %R changeset revision number |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
1046 %b basename of the exporting repository |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
1047 %h short-form changeset hash (12 bytes of hexadecimal) |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
1048 %n zero-padded sequence number, starting at 1 |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
1049 %r zero-padded changeset revision number |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
1050 |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
1051 Without the -a option, export will avoid generating diffs of files |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
1052 it detects as binary. With -a, export will generate a diff anyway, |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
1053 probably with undesirable results. |
1571
bcdc030c59f8
add a --switch-parent option to export against the other parent
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1570
diff
changeset
|
1054 |
bcdc030c59f8
add a --switch-parent option to export against the other parent
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1570
diff
changeset
|
1055 With the --switch-parent option, the diff will be against the second |
bcdc030c59f8
add a --switch-parent option to export against the other parent
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1570
diff
changeset
|
1056 parent. It can be useful to review a merge. |
1437
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
1057 """ |
610
4c02464cb9f0
check export options for changeset before running
shaleh@speakeasy.net
parents:
609
diff
changeset
|
1058 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
|
1059 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
|
1060 revs = cmdutil.revrange(repo, changesets) |
2873
4ec58b157265
refactor text diff/patch code.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2870
diff
changeset
|
1061 if len(revs) > 1: |
4ec58b157265
refactor text diff/patch code.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2870
diff
changeset
|
1062 ui.note(_('exporting patches:\n')) |
4ec58b157265
refactor text diff/patch code.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2870
diff
changeset
|
1063 else: |
4ec58b157265
refactor text diff/patch code.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2870
diff
changeset
|
1064 ui.note(_('exporting patch:\n')) |
3900
2b3175acb653
Don't use node length for calculating revision number length.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3883
diff
changeset
|
1065 patch.export(repo, revs, template=opts['output'], |
2908
3848488244fc
Move ui.diffopts to patch.diffopts where it belongs
Matt Mackall <mpm@selenic.com>
parents:
2882
diff
changeset
|
1066 switch_parent=opts['switch_parent'], |
3848488244fc
Move ui.diffopts to patch.diffopts where it belongs
Matt Mackall <mpm@selenic.com>
parents:
2882
diff
changeset
|
1067 opts=patch.diffopts(ui, opts)) |
246
96cde50a746f
Migrate rawcommit, import, export, history, and merge
mpm@selenic.com
parents:
245
diff
changeset
|
1068 |
1108
7a75d8fbbdaf
Remove some options from 'hg grep':
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1106
diff
changeset
|
1069 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
|
1070 """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
|
1071 |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
1072 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
|
1073 |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
1074 This command behaves differently than Unix grep. It only accepts |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
1075 Python/Perl regexps. It searches repository history, not the |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
1076 working directory. It always prints the revision number in which |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
1077 a match appears. |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
1078 |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
1079 By default, grep only prints output for the first revision of a |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
1080 file in which it finds a match. To get it to print every revision |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
1081 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
|
1082 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
|
1083 use the --all flag. |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
1084 """ |
1057 | 1085 reflags = 0 |
1065
6e94c0365d98
Cleanups to commands.py
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1062
diff
changeset
|
1086 if opts['ignore_case']: |
6e94c0365d98
Cleanups to commands.py
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1062
diff
changeset
|
1087 reflags |= re.I |
4877
242026115e6a
hg grep: handle re.compile errors & update tests/test-grep
Giorgos Keramidas <keramida@ceid.upatras.gr>
parents:
4866
diff
changeset
|
1088 try: |
242026115e6a
hg grep: handle re.compile errors & update tests/test-grep
Giorgos Keramidas <keramida@ceid.upatras.gr>
parents:
4866
diff
changeset
|
1089 regexp = re.compile(pattern, reflags) |
242026115e6a
hg grep: handle re.compile errors & update tests/test-grep
Giorgos Keramidas <keramida@ceid.upatras.gr>
parents:
4866
diff
changeset
|
1090 except Exception, inst: |
242026115e6a
hg grep: handle re.compile errors & update tests/test-grep
Giorgos Keramidas <keramida@ceid.upatras.gr>
parents:
4866
diff
changeset
|
1091 ui.warn(_("grep: invalid match pattern: %s!\n") % inst) |
242026115e6a
hg grep: handle re.compile errors & update tests/test-grep
Giorgos Keramidas <keramida@ceid.upatras.gr>
parents:
4866
diff
changeset
|
1092 return None |
1146
9061f79c6c6f
grep: extend functionality, add man page entry, add unit test.
bos@serpentine.internal.keyresearch.com
parents:
1145
diff
changeset
|
1093 sep, eol = ':', '\n' |
1108
7a75d8fbbdaf
Remove some options from 'hg grep':
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1106
diff
changeset
|
1094 if opts['print0']: |
1146
9061f79c6c6f
grep: extend functionality, add man page entry, add unit test.
bos@serpentine.internal.keyresearch.com
parents:
1145
diff
changeset
|
1095 sep = eol = '\0' |
1057 | 1096 |
1097 fcache = {} | |
1098 def getfile(fn): | |
1099 if fn not in fcache: | |
1100 fcache[fn] = repo.file(fn) | |
1101 return fcache[fn] | |
1102 | |
1103 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
|
1104 begin = 0 |
4eab07ef66e2
grep: speed up matching, and only return one match per line.
bos@serpentine.internal.keyresearch.com
parents:
1058
diff
changeset
|
1105 linenum = 0 |
4eab07ef66e2
grep: speed up matching, and only return one match per line.
bos@serpentine.internal.keyresearch.com
parents:
1058
diff
changeset
|
1106 while True: |
4eab07ef66e2
grep: speed up matching, and only return one match per line.
bos@serpentine.internal.keyresearch.com
parents:
1058
diff
changeset
|
1107 match = regexp.search(body, begin) |
1065
6e94c0365d98
Cleanups to commands.py
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1062
diff
changeset
|
1108 if not match: |
6e94c0365d98
Cleanups to commands.py
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1062
diff
changeset
|
1109 break |
1059
4eab07ef66e2
grep: speed up matching, and only return one match per line.
bos@serpentine.internal.keyresearch.com
parents:
1058
diff
changeset
|
1110 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
|
1111 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
|
1112 lstart = body.rfind('\n', begin, mstart) + 1 or begin |
4eab07ef66e2
grep: speed up matching, and only return one match per line.
bos@serpentine.internal.keyresearch.com
parents:
1058
diff
changeset
|
1113 lend = body.find('\n', mend) |
4eab07ef66e2
grep: speed up matching, and only return one match per line.
bos@serpentine.internal.keyresearch.com
parents:
1058
diff
changeset
|
1114 yield linenum, mstart - lstart, mend - lstart, body[lstart:lend] |
4eab07ef66e2
grep: speed up matching, and only return one match per line.
bos@serpentine.internal.keyresearch.com
parents:
1058
diff
changeset
|
1115 begin = lend + 1 |
1057 | 1116 |
1559
59b3639df0a9
Convert all classes to new-style classes by deriving them from object.
Eric Hopper <hopper@omnifarious.org>
parents:
1552
diff
changeset
|
1117 class linestate(object): |
1057 | 1118 def __init__(self, line, linenum, colstart, colend): |
1119 self.line = line | |
1120 self.linenum = linenum | |
1121 self.colstart = colstart | |
1122 self.colend = colend | |
2868
81f351c5264d
grep: display correct user/revision for --all in reverse.
Brendan Cully <brendan@kublai.com>
parents:
2842
diff
changeset
|
1123 |
1065
6e94c0365d98
Cleanups to commands.py
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1062
diff
changeset
|
1124 def __eq__(self, other): |
6e94c0365d98
Cleanups to commands.py
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1062
diff
changeset
|
1125 return self.line == other.line |
1057 | 1126 |
1127 matches = {} | |
2869
8eaaf1321bfe
grep: add --follow support.
Brendan Cully <brendan@kublai.com>
parents:
2868
diff
changeset
|
1128 copies = {} |
1057 | 1129 def grepbody(fn, rev, body): |
2868
81f351c5264d
grep: display correct user/revision for --all in reverse.
Brendan Cully <brendan@kublai.com>
parents:
2842
diff
changeset
|
1130 matches[rev].setdefault(fn, []) |
1057 | 1131 m = matches[rev][fn] |
1132 for lnum, cstart, cend, line in matchlines(body): | |
1133 s = linestate(line, lnum, cstart, cend) | |
2868
81f351c5264d
grep: display correct user/revision for --all in reverse.
Brendan Cully <brendan@kublai.com>
parents:
2842
diff
changeset
|
1134 m.append(s) |
81f351c5264d
grep: display correct user/revision for --all in reverse.
Brendan Cully <brendan@kublai.com>
parents:
2842
diff
changeset
|
1135 |
81f351c5264d
grep: display correct user/revision for --all in reverse.
Brendan Cully <brendan@kublai.com>
parents:
2842
diff
changeset
|
1136 def difflinestates(a, b): |
81f351c5264d
grep: display correct user/revision for --all in reverse.
Brendan Cully <brendan@kublai.com>
parents:
2842
diff
changeset
|
1137 sm = difflib.SequenceMatcher(None, a, b) |
81f351c5264d
grep: display correct user/revision for --all in reverse.
Brendan Cully <brendan@kublai.com>
parents:
2842
diff
changeset
|
1138 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:
2842
diff
changeset
|
1139 if tag == 'insert': |
3467
df7202f6887c
use xrange instead of range
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3466
diff
changeset
|
1140 for i in xrange(blo, bhi): |
2868
81f351c5264d
grep: display correct user/revision for --all in reverse.
Brendan Cully <brendan@kublai.com>
parents:
2842
diff
changeset
|
1141 yield ('+', b[i]) |
81f351c5264d
grep: display correct user/revision for --all in reverse.
Brendan Cully <brendan@kublai.com>
parents:
2842
diff
changeset
|
1142 elif tag == 'delete': |
3467
df7202f6887c
use xrange instead of range
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3466
diff
changeset
|
1143 for i in xrange(alo, ahi): |
2868
81f351c5264d
grep: display correct user/revision for --all in reverse.
Brendan Cully <brendan@kublai.com>
parents:
2842
diff
changeset
|
1144 yield ('-', a[i]) |
81f351c5264d
grep: display correct user/revision for --all in reverse.
Brendan Cully <brendan@kublai.com>
parents:
2842
diff
changeset
|
1145 elif tag == 'replace': |
3467
df7202f6887c
use xrange instead of range
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3466
diff
changeset
|
1146 for i in xrange(alo, ahi): |
2868
81f351c5264d
grep: display correct user/revision for --all in reverse.
Brendan Cully <brendan@kublai.com>
parents:
2842
diff
changeset
|
1147 yield ('-', a[i]) |
3467
df7202f6887c
use xrange instead of range
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3466
diff
changeset
|
1148 for i in xrange(blo, bhi): |
2868
81f351c5264d
grep: display correct user/revision for --all in reverse.
Brendan Cully <brendan@kublai.com>
parents:
2842
diff
changeset
|
1149 yield ('+', b[i]) |
81f351c5264d
grep: display correct user/revision for --all in reverse.
Brendan Cully <brendan@kublai.com>
parents:
2842
diff
changeset
|
1150 |
1057 | 1151 prev = {} |
1152 def display(fn, rev, states, prevstates): | |
3951
cb66641cdee3
grep: remove count handling, simplify, fix issue337
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3950
diff
changeset
|
1153 found = False |
1146
9061f79c6c6f
grep: extend functionality, add man page entry, add unit test.
bos@serpentine.internal.keyresearch.com
parents:
1145
diff
changeset
|
1154 filerevmatches = {} |
3951
cb66641cdee3
grep: remove count handling, simplify, fix issue337
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3950
diff
changeset
|
1155 r = prev.get(fn, -1) |
cb66641cdee3
grep: remove count handling, simplify, fix issue337
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3950
diff
changeset
|
1156 if opts['all']: |
cb66641cdee3
grep: remove count handling, simplify, fix issue337
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3950
diff
changeset
|
1157 iter = difflinestates(states, prevstates) |
2868
81f351c5264d
grep: display correct user/revision for --all in reverse.
Brendan Cully <brendan@kublai.com>
parents:
2842
diff
changeset
|
1158 else: |
3951
cb66641cdee3
grep: remove count handling, simplify, fix issue337
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3950
diff
changeset
|
1159 iter = [('', l) for l in prevstates] |
cb66641cdee3
grep: remove count handling, simplify, fix issue337
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3950
diff
changeset
|
1160 for change, l in iter: |
2868
81f351c5264d
grep: display correct user/revision for --all in reverse.
Brendan Cully <brendan@kublai.com>
parents:
2842
diff
changeset
|
1161 cols = [fn, str(r)] |
1615
83238c1db6de
Cleanup of indentation, spacing, newlines, strings and line length
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1607
diff
changeset
|
1162 if opts['line_number']: |
83238c1db6de
Cleanup of indentation, spacing, newlines, strings and line length
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1607
diff
changeset
|
1163 cols.append(str(l.linenum)) |
83238c1db6de
Cleanup of indentation, spacing, newlines, strings and line length
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1607
diff
changeset
|
1164 if opts['all']: |
83238c1db6de
Cleanup of indentation, spacing, newlines, strings and line length
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1607
diff
changeset
|
1165 cols.append(change) |
83238c1db6de
Cleanup of indentation, spacing, newlines, strings and line length
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1607
diff
changeset
|
1166 if opts['user']: |
3657
731e739b8659
move walkchangerevs to cmdutils
Matt Mackall <mpm@selenic.com>
parents:
3656
diff
changeset
|
1167 cols.append(ui.shortuser(get(r)[1])) |
1146
9061f79c6c6f
grep: extend functionality, add man page entry, add unit test.
bos@serpentine.internal.keyresearch.com
parents:
1145
diff
changeset
|
1168 if opts['files_with_matches']: |
3554 | 1169 c = (fn, r) |
1615
83238c1db6de
Cleanup of indentation, spacing, newlines, strings and line length
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1607
diff
changeset
|
1170 if c in filerevmatches: |
83238c1db6de
Cleanup of indentation, spacing, newlines, strings and line length
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1607
diff
changeset
|
1171 continue |
1146
9061f79c6c6f
grep: extend functionality, add man page entry, add unit test.
bos@serpentine.internal.keyresearch.com
parents:
1145
diff
changeset
|
1172 filerevmatches[c] = 1 |
9061f79c6c6f
grep: extend functionality, add man page entry, add unit test.
bos@serpentine.internal.keyresearch.com
parents:
1145
diff
changeset
|
1173 else: |
9061f79c6c6f
grep: extend functionality, add man page entry, add unit test.
bos@serpentine.internal.keyresearch.com
parents:
1145
diff
changeset
|
1174 cols.append(l.line) |
9061f79c6c6f
grep: extend functionality, add man page entry, add unit test.
bos@serpentine.internal.keyresearch.com
parents:
1145
diff
changeset
|
1175 ui.write(sep.join(cols), eol) |
3951
cb66641cdee3
grep: remove count handling, simplify, fix issue337
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3950
diff
changeset
|
1176 found = True |
cb66641cdee3
grep: remove count handling, simplify, fix issue337
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3950
diff
changeset
|
1177 return found |
1057 | 1178 |
1179 fstate = {} | |
1145
bd917e1a26dd
grep: change default to printing first matching rev.
Bryan O'Sullivan <bos@serpentine.com>
parents:
1116
diff
changeset
|
1180 skip = {} |
3673
eb0b4a2d70a9
white space and line break cleanups
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3672
diff
changeset
|
1181 get = util.cachefunc(lambda r: repo.changectx(r).changeset()) |
3657
731e739b8659
move walkchangerevs to cmdutils
Matt Mackall <mpm@selenic.com>
parents:
3656
diff
changeset
|
1182 changeiter, matchfn = cmdutil.walkchangerevs(ui, repo, pats, get, opts) |
3951
cb66641cdee3
grep: remove count handling, simplify, fix issue337
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3950
diff
changeset
|
1183 found = False |
2869
8eaaf1321bfe
grep: add --follow support.
Brendan Cully <brendan@kublai.com>
parents:
2868
diff
changeset
|
1184 follow = opts.get('follow') |
1146
9061f79c6c6f
grep: extend functionality, add man page entry, add unit test.
bos@serpentine.internal.keyresearch.com
parents:
1145
diff
changeset
|
1185 for st, rev, fns in changeiter: |
1057 | 1186 if st == 'window': |
1187 matches.clear() | |
1188 elif st == 'add': | |
3561
cd2216599c99
minor hg grep simplification
Matt Mackall <mpm@selenic.com>
parents:
3558
diff
changeset
|
1189 mf = repo.changectx(rev).manifest() |
1057 | 1190 matches[rev] = {} |
1191 for fn in fns: | |
1615
83238c1db6de
Cleanup of indentation, spacing, newlines, strings and line length
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1607
diff
changeset
|
1192 if fn in skip: |
83238c1db6de
Cleanup of indentation, spacing, newlines, strings and line length
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1607
diff
changeset
|
1193 continue |
1057 | 1194 try: |
1195 grepbody(fn, rev, getfile(fn).read(mf[fn])) | |
5168
64888ff907f4
Fix issue 685: trackback in grep -r after rename
Patrick Mezard <pmezard@gmail.com>
parents:
5123
diff
changeset
|
1196 fstate.setdefault(fn, []) |
2869
8eaaf1321bfe
grep: add --follow support.
Brendan Cully <brendan@kublai.com>
parents:
2868
diff
changeset
|
1197 if follow: |
8eaaf1321bfe
grep: add --follow support.
Brendan Cully <brendan@kublai.com>
parents:
2868
diff
changeset
|
1198 copied = getfile(fn).renamed(mf[fn]) |
8eaaf1321bfe
grep: add --follow support.
Brendan Cully <brendan@kublai.com>
parents:
2868
diff
changeset
|
1199 if copied: |
2931 | 1200 copies.setdefault(rev, {})[fn] = copied[0] |
1057 | 1201 except KeyError: |
1202 pass | |
1203 elif st == 'iter': | |
1204 states = matches[rev].items() | |
1205 states.sort() | |
1206 for fn, m in states: | |
2931 | 1207 copy = copies.get(rev, {}).get(fn) |
1615
83238c1db6de
Cleanup of indentation, spacing, newlines, strings and line length
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1607
diff
changeset
|
1208 if fn in skip: |
2869
8eaaf1321bfe
grep: add --follow support.
Brendan Cully <brendan@kublai.com>
parents:
2868
diff
changeset
|
1209 if copy: |
8eaaf1321bfe
grep: add --follow support.
Brendan Cully <brendan@kublai.com>
parents:
2868
diff
changeset
|
1210 skip[copy] = True |
1615
83238c1db6de
Cleanup of indentation, spacing, newlines, strings and line length
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1607
diff
changeset
|
1211 continue |
3951
cb66641cdee3
grep: remove count handling, simplify, fix issue337
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3950
diff
changeset
|
1212 if fn in prev or fstate[fn]: |
cb66641cdee3
grep: remove count handling, simplify, fix issue337
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3950
diff
changeset
|
1213 r = display(fn, rev, m, fstate[fn]) |
cb66641cdee3
grep: remove count handling, simplify, fix issue337
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3950
diff
changeset
|
1214 found = found or r |
cb66641cdee3
grep: remove count handling, simplify, fix issue337
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3950
diff
changeset
|
1215 if r and not opts['all']: |
1145
bd917e1a26dd
grep: change default to printing first matching rev.
Bryan O'Sullivan <bos@serpentine.com>
parents:
1116
diff
changeset
|
1216 skip[fn] = True |
2869
8eaaf1321bfe
grep: add --follow support.
Brendan Cully <brendan@kublai.com>
parents:
2868
diff
changeset
|
1217 if copy: |
8eaaf1321bfe
grep: add --follow support.
Brendan Cully <brendan@kublai.com>
parents:
2868
diff
changeset
|
1218 skip[copy] = True |
1057 | 1219 fstate[fn] = m |
2869
8eaaf1321bfe
grep: add --follow support.
Brendan Cully <brendan@kublai.com>
parents:
2868
diff
changeset
|
1220 if copy: |
8eaaf1321bfe
grep: add --follow support.
Brendan Cully <brendan@kublai.com>
parents:
2868
diff
changeset
|
1221 fstate[copy] = m |
1057 | 1222 prev[fn] = rev |
1223 | |
3950
3d3007064a17
grep: incrementing is always False during 'iter'
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3940
diff
changeset
|
1224 fstate = fstate.items() |
3d3007064a17
grep: incrementing is always False during 'iter'
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3940
diff
changeset
|
1225 fstate.sort() |
3d3007064a17
grep: incrementing is always False during 'iter'
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3940
diff
changeset
|
1226 for fn, state in fstate: |
3d3007064a17
grep: incrementing is always False during 'iter'
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3940
diff
changeset
|
1227 if fn in skip: |
3d3007064a17
grep: incrementing is always False during 'iter'
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3940
diff
changeset
|
1228 continue |
3d3007064a17
grep: incrementing is always False during 'iter'
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3940
diff
changeset
|
1229 if fn not in copies.get(prev[fn], {}): |
3951
cb66641cdee3
grep: remove count handling, simplify, fix issue337
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3950
diff
changeset
|
1230 found = display(fn, rev, {}, state) or found |
cb66641cdee3
grep: remove count handling, simplify, fix issue337
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3950
diff
changeset
|
1231 return (not found and 1) or 0 |
1057 | 1232 |
4648
8e503fa54d2d
Add option to heads to show only heads for current branch.
Eric Hopper <hopper@omnifarious.org>
parents:
4646
diff
changeset
|
1233 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
|
1234 """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
|
1235 |
8e503fa54d2d
Add option to heads to show only heads for current branch.
Eric Hopper <hopper@omnifarious.org>
parents:
4646
diff
changeset
|
1236 With no arguments, show all repository head changesets. |
8e503fa54d2d
Add option to heads to show only heads for current branch.
Eric Hopper <hopper@omnifarious.org>
parents:
4646
diff
changeset
|
1237 |
8e503fa54d2d
Add option to heads to show only heads for current branch.
Eric Hopper <hopper@omnifarious.org>
parents:
4646
diff
changeset
|
1238 If branch or revisions names are given this will show the heads of |
8e503fa54d2d
Add option to heads to show only heads for current branch.
Eric Hopper <hopper@omnifarious.org>
parents:
4646
diff
changeset
|
1239 the specified branches or the branches those revisions are tagged |
8e503fa54d2d
Add option to heads to show only heads for current branch.
Eric Hopper <hopper@omnifarious.org>
parents:
4646
diff
changeset
|
1240 with. |
8e503fa54d2d
Add option to heads to show only heads for current branch.
Eric Hopper <hopper@omnifarious.org>
parents:
4646
diff
changeset
|
1241 |
8e503fa54d2d
Add option to heads to show only heads for current branch.
Eric Hopper <hopper@omnifarious.org>
parents:
4646
diff
changeset
|
1242 Repository "heads" are changesets that don't have child |
1437
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
1243 changesets. They are where development generally takes place and |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
1244 are the usual targets for update and merge operations. |
4648
8e503fa54d2d
Add option to heads to show only heads for current branch.
Eric Hopper <hopper@omnifarious.org>
parents:
4646
diff
changeset
|
1245 |
8e503fa54d2d
Add option to heads to show only heads for current branch.
Eric Hopper <hopper@omnifarious.org>
parents:
4646
diff
changeset
|
1246 Branch heads are changesets that have a given branch tag, but have |
8e503fa54d2d
Add option to heads to show only heads for current branch.
Eric Hopper <hopper@omnifarious.org>
parents:
4646
diff
changeset
|
1247 no child changesets with that tag. They are usually where |
8e503fa54d2d
Add option to heads to show only heads for current branch.
Eric Hopper <hopper@omnifarious.org>
parents:
4646
diff
changeset
|
1248 development on the given branch takes place. |
1437
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
1249 """ |
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
|
1250 if opts['rev']: |
4648
8e503fa54d2d
Add option to heads to show only heads for current branch.
Eric Hopper <hopper@omnifarious.org>
parents:
4646
diff
changeset
|
1251 start = repo.lookup(opts['rev']) |
8e503fa54d2d
Add option to heads to show only heads for current branch.
Eric Hopper <hopper@omnifarious.org>
parents:
4646
diff
changeset
|
1252 else: |
8e503fa54d2d
Add option to heads to show only heads for current branch.
Eric Hopper <hopper@omnifarious.org>
parents:
4646
diff
changeset
|
1253 start = None |
8e503fa54d2d
Add option to heads to show only heads for current branch.
Eric Hopper <hopper@omnifarious.org>
parents:
4646
diff
changeset
|
1254 if not branchrevs: |
8e503fa54d2d
Add option to heads to show only heads for current branch.
Eric Hopper <hopper@omnifarious.org>
parents:
4646
diff
changeset
|
1255 # Assume we're looking repo-wide heads if no revs were specified. |
8e503fa54d2d
Add option to heads to show only heads for current branch.
Eric Hopper <hopper@omnifarious.org>
parents:
4646
diff
changeset
|
1256 heads = 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
|
1257 else: |
4648
8e503fa54d2d
Add option to heads to show only heads for current branch.
Eric Hopper <hopper@omnifarious.org>
parents:
4646
diff
changeset
|
1258 heads = [] |
4649
52259d5fb76d
Small fixes for 8e503fa54d2d (hg heads branch)
Brendan Cully <brendan@kublai.com>
parents:
4648
diff
changeset
|
1259 visitedset = util.set() |
4648
8e503fa54d2d
Add option to heads to show only heads for current branch.
Eric Hopper <hopper@omnifarious.org>
parents:
4646
diff
changeset
|
1260 for branchrev in branchrevs: |
8e503fa54d2d
Add option to heads to show only heads for current branch.
Eric Hopper <hopper@omnifarious.org>
parents:
4646
diff
changeset
|
1261 branch = repo.changectx(branchrev).branch() |
8e503fa54d2d
Add option to heads to show only heads for current branch.
Eric Hopper <hopper@omnifarious.org>
parents:
4646
diff
changeset
|
1262 if branch in visitedset: |
8e503fa54d2d
Add option to heads to show only heads for current branch.
Eric Hopper <hopper@omnifarious.org>
parents:
4646
diff
changeset
|
1263 continue |
8e503fa54d2d
Add option to heads to show only heads for current branch.
Eric Hopper <hopper@omnifarious.org>
parents:
4646
diff
changeset
|
1264 visitedset.add(branch) |
8e503fa54d2d
Add option to heads to show only heads for current branch.
Eric Hopper <hopper@omnifarious.org>
parents:
4646
diff
changeset
|
1265 bheads = repo.branchheads(branch, start) |
8e503fa54d2d
Add option to heads to show only heads for current branch.
Eric Hopper <hopper@omnifarious.org>
parents:
4646
diff
changeset
|
1266 if not bheads: |
8e503fa54d2d
Add option to heads to show only heads for current branch.
Eric Hopper <hopper@omnifarious.org>
parents:
4646
diff
changeset
|
1267 if branch != branchrev: |
8e503fa54d2d
Add option to heads to show only heads for current branch.
Eric Hopper <hopper@omnifarious.org>
parents:
4646
diff
changeset
|
1268 ui.warn(_("no changes on branch %s containing %s are " |
8e503fa54d2d
Add option to heads to show only heads for current branch.
Eric Hopper <hopper@omnifarious.org>
parents:
4646
diff
changeset
|
1269 "reachable from %s\n") |
8e503fa54d2d
Add option to heads to show only heads for current branch.
Eric Hopper <hopper@omnifarious.org>
parents:
4646
diff
changeset
|
1270 % (branch, branchrev, opts['rev'])) |
8e503fa54d2d
Add option to heads to show only heads for current branch.
Eric Hopper <hopper@omnifarious.org>
parents:
4646
diff
changeset
|
1271 else: |
8e503fa54d2d
Add option to heads to show only heads for current branch.
Eric Hopper <hopper@omnifarious.org>
parents:
4646
diff
changeset
|
1272 ui.warn(_("no changes on branch %s are reachable from %s\n") |
8e503fa54d2d
Add option to heads to show only heads for current branch.
Eric Hopper <hopper@omnifarious.org>
parents:
4646
diff
changeset
|
1273 % (branch, opts['rev'])) |
8e503fa54d2d
Add option to heads to show only heads for current branch.
Eric Hopper <hopper@omnifarious.org>
parents:
4646
diff
changeset
|
1274 heads.extend(bheads) |
8e503fa54d2d
Add option to heads to show only heads for current branch.
Eric Hopper <hopper@omnifarious.org>
parents:
4646
diff
changeset
|
1275 if not heads: |
8e503fa54d2d
Add option to heads to show only heads for current branch.
Eric Hopper <hopper@omnifarious.org>
parents:
4646
diff
changeset
|
1276 return 1 |
3646
b4ad640a3bcf
templates: move changeset templating bits to cmdutils
Matt Mackall <mpm@selenic.com>
parents:
3634
diff
changeset
|
1277 displayer = cmdutil.show_changeset(ui, repo, opts) |
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
|
1278 for n in heads: |
3656
e50891e461e4
Consolidate brinfo handling
Matt Mackall <mpm@selenic.com>
parents:
3648
diff
changeset
|
1279 displayer.show(changenode=n) |
221 | 1280 |
3662
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1281 def help_(ui, name=None, with_version=False): |
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1282 """show help for a command, extension, or list of commands |
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1283 |
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1284 With no arguments, print a list of commands and short help. |
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1285 |
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1286 Given a command name, print help for that command. |
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1287 |
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1288 Given an extension name, print help for that extension, and the |
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1289 commands it provides.""" |
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1290 option_lists = [] |
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1291 |
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:
4273
diff
changeset
|
1292 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:
4273
diff
changeset
|
1293 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:
4273
diff
changeset
|
1294 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:
4273
diff
changeset
|
1295 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:
4273
diff
changeset
|
1296 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:
4273
diff
changeset
|
1297 '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:
4273
diff
changeset
|
1298 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:
4273
diff
changeset
|
1299 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:
4273
diff
changeset
|
1300 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:
4273
diff
changeset
|
1301 '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:
4273
diff
changeset
|
1302 elif 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:
4273
diff
changeset
|
1303 msg = _('use "hg -v help%s" to show aliases and ' |
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:
4273
diff
changeset
|
1304 '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:
4273
diff
changeset
|
1305 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:
4273
diff
changeset
|
1306 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:
4273
diff
changeset
|
1307 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:
4273
diff
changeset
|
1308 |
3662
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1309 def helpcmd(name): |
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1310 if with_version: |
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1311 version_(ui) |
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1312 ui.write('\n') |
5185
18a9fbb5cd78
dispatch: move command dispatching into its own module
Matt Mackall <mpm@selenic.com>
parents:
5184
diff
changeset
|
1313 aliases, i = cmdutil.findcmd(ui, name, table) |
3662
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1314 # synopsis |
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1315 ui.write("%s\n\n" % i[2]) |
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1316 |
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1317 # description |
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1318 doc = i[0].__doc__ |
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1319 if not doc: |
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1320 doc = _("(No help text available)") |
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1321 if ui.quiet: |
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1322 doc = doc.splitlines(0)[0] |
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1323 ui.write("%s\n" % doc.rstrip()) |
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1324 |
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1325 if not ui.quiet: |
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1326 # aliases |
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1327 if len(aliases) > 1: |
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1328 ui.write(_("\naliases: %s\n") % ', '.join(aliases[1:])) |
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1329 |
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1330 # options |
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1331 if i[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:
4273
diff
changeset
|
1332 option_lists.append((_("options:\n"), i[1])) |
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:
4273
diff
changeset
|
1333 |
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:
4273
diff
changeset
|
1334 addglobalopts(False) |
3662
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1335 |
4932
93b7e2fa7ee3
help: avoid traceback if an extension has only debug commands
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4924
diff
changeset
|
1336 def helplist(header, select=None): |
3662
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1337 h = {} |
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1338 cmds = {} |
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1339 for c, e in table.items(): |
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1340 f = c.split("|", 1)[0] |
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1341 if select and not select(f): |
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1342 continue |
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1343 if name == "shortlist" and not f.startswith("^"): |
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1344 continue |
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1345 f = f.lstrip("^") |
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1346 if not ui.debugflag and f.startswith("debug"): |
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1347 continue |
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1348 doc = e[0].__doc__ |
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1349 if not doc: |
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1350 doc = _("(No help text available)") |
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1351 h[f] = doc.splitlines(0)[0].rstrip() |
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1352 cmds[f] = c.lstrip("^") |
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1353 |
4932
93b7e2fa7ee3
help: avoid traceback if an extension has only debug commands
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4924
diff
changeset
|
1354 if not h: |
93b7e2fa7ee3
help: avoid traceback if an extension has only debug commands
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4924
diff
changeset
|
1355 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:
4924
diff
changeset
|
1356 return |
93b7e2fa7ee3
help: avoid traceback if an extension has only debug commands
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4924
diff
changeset
|
1357 |
93b7e2fa7ee3
help: avoid traceback if an extension has only debug commands
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4924
diff
changeset
|
1358 ui.status(header) |
3662
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1359 fns = h.keys() |
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1360 fns.sort() |
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1361 m = max(map(len, fns)) |
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1362 for f in fns: |
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1363 if ui.verbose: |
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1364 commands = cmds[f].replace("|",", ") |
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1365 ui.write(" %s:\n %s\n"%(commands, h[f])) |
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1366 else: |
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1367 ui.write(' %-*s %s\n' % (m, f, h[f])) |
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1368 |
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:
4273
diff
changeset
|
1369 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:
4273
diff
changeset
|
1370 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:
4273
diff
changeset
|
1371 |
3798
17a11f4ff260
Add basic support for help topics and a dates topic
Matt Mackall <mpm@selenic.com>
parents:
3787
diff
changeset
|
1372 def helptopic(name): |
17a11f4ff260
Add basic support for help topics and a dates topic
Matt Mackall <mpm@selenic.com>
parents:
3787
diff
changeset
|
1373 v = None |
17a11f4ff260
Add basic support for help topics and a dates topic
Matt Mackall <mpm@selenic.com>
parents:
3787
diff
changeset
|
1374 for i in help.helptable: |
17a11f4ff260
Add basic support for help topics and a dates topic
Matt Mackall <mpm@selenic.com>
parents:
3787
diff
changeset
|
1375 l = i.split('|') |
17a11f4ff260
Add basic support for help topics and a dates topic
Matt Mackall <mpm@selenic.com>
parents:
3787
diff
changeset
|
1376 if name in l: |
17a11f4ff260
Add basic support for help topics and a dates topic
Matt Mackall <mpm@selenic.com>
parents:
3787
diff
changeset
|
1377 v = i |
17a11f4ff260
Add basic support for help topics and a dates topic
Matt Mackall <mpm@selenic.com>
parents:
3787
diff
changeset
|
1378 header = l[-1] |
17a11f4ff260
Add basic support for help topics and a dates topic
Matt Mackall <mpm@selenic.com>
parents:
3787
diff
changeset
|
1379 if not v: |
4549
0c61124ad877
dispatch: move dispatching code to cmdutil
Matt Mackall <mpm@selenic.com>
parents:
4548
diff
changeset
|
1380 raise cmdutil.UnknownCommand(name) |
3798
17a11f4ff260
Add basic support for help topics and a dates topic
Matt Mackall <mpm@selenic.com>
parents:
3787
diff
changeset
|
1381 |
17a11f4ff260
Add basic support for help topics and a dates topic
Matt Mackall <mpm@selenic.com>
parents:
3787
diff
changeset
|
1382 # description |
17a11f4ff260
Add basic support for help topics and a dates topic
Matt Mackall <mpm@selenic.com>
parents:
3787
diff
changeset
|
1383 doc = help.helptable[v] |
17a11f4ff260
Add basic support for help topics and a dates topic
Matt Mackall <mpm@selenic.com>
parents:
3787
diff
changeset
|
1384 if not doc: |
17a11f4ff260
Add basic support for help topics and a dates topic
Matt Mackall <mpm@selenic.com>
parents:
3787
diff
changeset
|
1385 doc = _("(No help text available)") |
3799
58133ba5847d
Allow topics to be callables
Matt Mackall <mpm@selenic.com>
parents:
3798
diff
changeset
|
1386 if callable(doc): |
58133ba5847d
Allow topics to be callables
Matt Mackall <mpm@selenic.com>
parents:
3798
diff
changeset
|
1387 doc = doc() |
3798
17a11f4ff260
Add basic support for help topics and a dates topic
Matt Mackall <mpm@selenic.com>
parents:
3787
diff
changeset
|
1388 |
17a11f4ff260
Add basic support for help topics and a dates topic
Matt Mackall <mpm@selenic.com>
parents:
3787
diff
changeset
|
1389 ui.write("%s\n" % header) |
17a11f4ff260
Add basic support for help topics and a dates topic
Matt Mackall <mpm@selenic.com>
parents:
3787
diff
changeset
|
1390 ui.write("%s\n" % doc.rstrip()) |
17a11f4ff260
Add basic support for help topics and a dates topic
Matt Mackall <mpm@selenic.com>
parents:
3787
diff
changeset
|
1391 |
3662
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1392 def helpext(name): |
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1393 try: |
4544
930ed513c864
Create a separate module for managing extensions
Matt Mackall <mpm@selenic.com>
parents:
4543
diff
changeset
|
1394 mod = extensions.find(name) |
3662
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1395 except KeyError: |
4549
0c61124ad877
dispatch: move dispatching code to cmdutil
Matt Mackall <mpm@selenic.com>
parents:
4548
diff
changeset
|
1396 raise cmdutil.UnknownCommand(name) |
3662
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1397 |
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1398 doc = (mod.__doc__ or _('No help text available')).splitlines(0) |
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1399 ui.write(_('%s extension - %s\n') % (name.split('.')[-1], doc[0])) |
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1400 for d in doc[1:]: |
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1401 ui.write(d, '\n') |
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1402 |
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1403 ui.status('\n') |
4009
86098ec4b77a
fix hg help <ext> for extension that do not define any command
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3914
diff
changeset
|
1404 |
86098ec4b77a
fix hg help <ext> for extension that do not define any command
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3914
diff
changeset
|
1405 try: |
86098ec4b77a
fix hg help <ext> for extension that do not define any command
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3914
diff
changeset
|
1406 ct = mod.cmdtable |
86098ec4b77a
fix hg help <ext> for extension that do not define any command
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3914
diff
changeset
|
1407 except AttributeError: |
4932
93b7e2fa7ee3
help: avoid traceback if an extension has only debug commands
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4924
diff
changeset
|
1408 ct = {} |
93b7e2fa7ee3
help: avoid traceback if an extension has only debug commands
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4924
diff
changeset
|
1409 |
4009
86098ec4b77a
fix hg help <ext> for extension that do not define any command
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3914
diff
changeset
|
1410 modcmds = dict.fromkeys([c.split('|', 1)[0] for c in ct]) |
4932
93b7e2fa7ee3
help: avoid traceback if an extension has only debug commands
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4924
diff
changeset
|
1411 helplist(_('list of commands:\n\n'), modcmds.has_key) |
3662
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1412 |
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1413 if name and name != 'shortlist': |
3798
17a11f4ff260
Add basic support for help topics and a dates topic
Matt Mackall <mpm@selenic.com>
parents:
3787
diff
changeset
|
1414 i = None |
17a11f4ff260
Add basic support for help topics and a dates topic
Matt Mackall <mpm@selenic.com>
parents:
3787
diff
changeset
|
1415 for f in (helpcmd, helptopic, helpext): |
17a11f4ff260
Add basic support for help topics and a dates topic
Matt Mackall <mpm@selenic.com>
parents:
3787
diff
changeset
|
1416 try: |
17a11f4ff260
Add basic support for help topics and a dates topic
Matt Mackall <mpm@selenic.com>
parents:
3787
diff
changeset
|
1417 f(name) |
17a11f4ff260
Add basic support for help topics and a dates topic
Matt Mackall <mpm@selenic.com>
parents:
3787
diff
changeset
|
1418 i = None |
17a11f4ff260
Add basic support for help topics and a dates topic
Matt Mackall <mpm@selenic.com>
parents:
3787
diff
changeset
|
1419 break |
4549
0c61124ad877
dispatch: move dispatching code to cmdutil
Matt Mackall <mpm@selenic.com>
parents:
4548
diff
changeset
|
1420 except cmdutil.UnknownCommand, inst: |
3798
17a11f4ff260
Add basic support for help topics and a dates topic
Matt Mackall <mpm@selenic.com>
parents:
3787
diff
changeset
|
1421 i = inst |
17a11f4ff260
Add basic support for help topics and a dates topic
Matt Mackall <mpm@selenic.com>
parents:
3787
diff
changeset
|
1422 if i: |
17a11f4ff260
Add basic support for help topics and a dates topic
Matt Mackall <mpm@selenic.com>
parents:
3787
diff
changeset
|
1423 raise i |
3662
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1424 |
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1425 else: |
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1426 # program name |
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1427 if ui.verbose or with_version: |
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1428 version_(ui) |
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1429 else: |
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1430 ui.status(_("Mercurial Distributed SCM\n")) |
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1431 ui.status('\n') |
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1432 |
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1433 # list of commands |
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1434 if name == "shortlist": |
4932
93b7e2fa7ee3
help: avoid traceback if an extension has only debug commands
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4924
diff
changeset
|
1435 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:
4273
diff
changeset
|
1436 else: |
4932
93b7e2fa7ee3
help: avoid traceback if an extension has only debug commands
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4924
diff
changeset
|
1437 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:
4924
diff
changeset
|
1438 |
93b7e2fa7ee3
help: avoid traceback if an extension has only debug commands
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4924
diff
changeset
|
1439 helplist(header) |
3662
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1440 |
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1441 # list all option lists |
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1442 opt_output = [] |
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1443 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:
4273
diff
changeset
|
1444 opt_output.append(("\n%s" % title, None)) |
3662
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1445 for shortopt, longopt, default, desc in options: |
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1446 if "DEPRECATED" in desc and not ui.verbose: continue |
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1447 opt_output.append(("%2s%s" % (shortopt and "-%s" % shortopt, |
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1448 longopt and " --%s" % longopt), |
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1449 "%s%s" % (desc, |
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1450 default |
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1451 and _(" (default: %s)") % default |
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1452 or ""))) |
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1453 |
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1454 if opt_output: |
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:
4273
diff
changeset
|
1455 opts_len = max([len(line[0]) for line in opt_output if line[1]] or [0]) |
3662
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1456 for first, second in opt_output: |
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1457 if second: |
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1458 ui.write(" %-*s %s\n" % (opts_len, first, second)) |
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1459 else: |
da361aa7a118
alphabetize help_ in commands
Matt Mackall <mpm@selenic.com>
parents:
3661
diff
changeset
|
1460 ui.write("%s\n" % first) |
221 | 1461 |
4671
150afe6becf6
identify: take a path to a remote repo
Matt Mackall <mpm@selenic.com>
parents:
4667
diff
changeset
|
1462 def identify(ui, repo, source=None, |
150afe6becf6
identify: take a path to a remote repo
Matt Mackall <mpm@selenic.com>
parents:
4667
diff
changeset
|
1463 rev=None, num=None, id=None, branch=None, tags=None): |
4665
091c9e54d306
identify: accept a revision argument
Matt Mackall <mpm@selenic.com>
parents:
4664
diff
changeset
|
1464 """identify the working copy or specified revision |
091c9e54d306
identify: accept a revision argument
Matt Mackall <mpm@selenic.com>
parents:
4664
diff
changeset
|
1465 |
4671
150afe6becf6
identify: take a path to a remote repo
Matt Mackall <mpm@selenic.com>
parents:
4667
diff
changeset
|
1466 With no revision, print a summary of the current state of the repo. |
150afe6becf6
identify: take a path to a remote repo
Matt Mackall <mpm@selenic.com>
parents:
4667
diff
changeset
|
1467 |
150afe6becf6
identify: take a path to a remote repo
Matt Mackall <mpm@selenic.com>
parents:
4667
diff
changeset
|
1468 With a path, do a lookup in another repository. |
1437
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
1469 |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
1470 This summary identifies the repository state using one or two parent |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
1471 hash identifiers, followed by a "+" if there are uncommitted changes |
4665
091c9e54d306
identify: accept a revision argument
Matt Mackall <mpm@selenic.com>
parents:
4664
diff
changeset
|
1472 in the working directory, a list of tags for this revision and a branch |
091c9e54d306
identify: accept a revision argument
Matt Mackall <mpm@selenic.com>
parents:
4664
diff
changeset
|
1473 name for non-default branches. |
1437
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
1474 """ |
4662
f9b8ea362b49
identify: show nullid for empty repo
Matt Mackall <mpm@selenic.com>
parents:
4659
diff
changeset
|
1475 |
5330
4528858e7202
make identify an optionalrepo command
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
5329
diff
changeset
|
1476 if not repo and not source: |
4528858e7202
make identify an optionalrepo command
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
5329
diff
changeset
|
1477 raise util.Abort(_("There is no Mercurial repository here " |
4528858e7202
make identify an optionalrepo command
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
5329
diff
changeset
|
1478 "(.hg not found)")) |
4528858e7202
make identify an optionalrepo command
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
5329
diff
changeset
|
1479 |
2973
fb493241d7f6
Only show long hashes with --debug, not --verbose
Matt Mackall <mpm@selenic.com>
parents:
2963
diff
changeset
|
1480 hexfunc = ui.debugflag and hex or short |
4666
48c94bffdb28
identify: add support for output flags
Matt Mackall <mpm@selenic.com>
parents:
4665
diff
changeset
|
1481 default = not (num or id or branch or tags) |
48c94bffdb28
identify: add support for output flags
Matt Mackall <mpm@selenic.com>
parents:
4665
diff
changeset
|
1482 output = [] |
4664 | 1483 |
4671
150afe6becf6
identify: take a path to a remote repo
Matt Mackall <mpm@selenic.com>
parents:
4667
diff
changeset
|
1484 if source: |
5241 | 1485 source, revs, checkout = hg.parseurl(ui.expandpath(source), []) |
4671
150afe6becf6
identify: take a path to a remote repo
Matt Mackall <mpm@selenic.com>
parents:
4667
diff
changeset
|
1486 srepo = hg.repository(ui, source) |
150afe6becf6
identify: take a path to a remote repo
Matt Mackall <mpm@selenic.com>
parents:
4667
diff
changeset
|
1487 if not rev and revs: |
150afe6becf6
identify: take a path to a remote repo
Matt Mackall <mpm@selenic.com>
parents:
4667
diff
changeset
|
1488 rev = revs[0] |
4667
c7a81e3ae80f
identify: work with remote repos
Matt Mackall <mpm@selenic.com>
parents:
4666
diff
changeset
|
1489 if not rev: |
c7a81e3ae80f
identify: work with remote repos
Matt Mackall <mpm@selenic.com>
parents:
4666
diff
changeset
|
1490 rev = "tip" |
c7a81e3ae80f
identify: work with remote repos
Matt Mackall <mpm@selenic.com>
parents:
4666
diff
changeset
|
1491 if num or branch or tags: |
c7a81e3ae80f
identify: work with remote repos
Matt Mackall <mpm@selenic.com>
parents:
4666
diff
changeset
|
1492 raise util.Abort( |
c7a81e3ae80f
identify: work with remote repos
Matt Mackall <mpm@selenic.com>
parents:
4666
diff
changeset
|
1493 "can't query remote revision number, branch, or tags") |
4671
150afe6becf6
identify: take a path to a remote repo
Matt Mackall <mpm@selenic.com>
parents:
4667
diff
changeset
|
1494 output = [hexfunc(srepo.lookup(rev))] |
4667
c7a81e3ae80f
identify: work with remote repos
Matt Mackall <mpm@selenic.com>
parents:
4666
diff
changeset
|
1495 elif not rev: |
4665
091c9e54d306
identify: accept a revision argument
Matt Mackall <mpm@selenic.com>
parents:
4664
diff
changeset
|
1496 ctx = repo.workingctx() |
091c9e54d306
identify: accept a revision argument
Matt Mackall <mpm@selenic.com>
parents:
4664
diff
changeset
|
1497 parents = ctx.parents() |
4666
48c94bffdb28
identify: add support for output flags
Matt Mackall <mpm@selenic.com>
parents:
4665
diff
changeset
|
1498 changed = False |
48c94bffdb28
identify: add support for output flags
Matt Mackall <mpm@selenic.com>
parents:
4665
diff
changeset
|
1499 if default or id or num: |
48c94bffdb28
identify: add support for output flags
Matt Mackall <mpm@selenic.com>
parents:
4665
diff
changeset
|
1500 changed = ctx.files() + ctx.deleted() |
48c94bffdb28
identify: add support for output flags
Matt Mackall <mpm@selenic.com>
parents:
4665
diff
changeset
|
1501 if default or id: |
48c94bffdb28
identify: add support for output flags
Matt Mackall <mpm@selenic.com>
parents:
4665
diff
changeset
|
1502 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
|
1503 (changed) and "+" or "")] |
48c94bffdb28
identify: add support for output flags
Matt Mackall <mpm@selenic.com>
parents:
4665
diff
changeset
|
1504 if num: |
48c94bffdb28
identify: add support for output flags
Matt Mackall <mpm@selenic.com>
parents:
4665
diff
changeset
|
1505 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
|
1506 (changed) and "+" or "")) |
4665
091c9e54d306
identify: accept a revision argument
Matt Mackall <mpm@selenic.com>
parents:
4664
diff
changeset
|
1507 else: |
091c9e54d306
identify: accept a revision argument
Matt Mackall <mpm@selenic.com>
parents:
4664
diff
changeset
|
1508 ctx = repo.changectx(rev) |
4666
48c94bffdb28
identify: add support for output flags
Matt Mackall <mpm@selenic.com>
parents:
4665
diff
changeset
|
1509 if default or id: |
48c94bffdb28
identify: add support for output flags
Matt Mackall <mpm@selenic.com>
parents:
4665
diff
changeset
|
1510 output = [hexfunc(ctx.node())] |
48c94bffdb28
identify: add support for output flags
Matt Mackall <mpm@selenic.com>
parents:
4665
diff
changeset
|
1511 if num: |
48c94bffdb28
identify: add support for output flags
Matt Mackall <mpm@selenic.com>
parents:
4665
diff
changeset
|
1512 output.append(str(ctx.rev())) |
48c94bffdb28
identify: add support for output flags
Matt Mackall <mpm@selenic.com>
parents:
4665
diff
changeset
|
1513 |
4671
150afe6becf6
identify: take a path to a remote repo
Matt Mackall <mpm@selenic.com>
parents:
4667
diff
changeset
|
1514 if not source and default and not ui.quiet: |
4666
48c94bffdb28
identify: add support for output flags
Matt Mackall <mpm@selenic.com>
parents:
4665
diff
changeset
|
1515 b = util.tolocal(ctx.branch()) |
48c94bffdb28
identify: add support for output flags
Matt Mackall <mpm@selenic.com>
parents:
4665
diff
changeset
|
1516 if b != 'default': |
48c94bffdb28
identify: add support for output flags
Matt Mackall <mpm@selenic.com>
parents:
4665
diff
changeset
|
1517 output.append("(%s)" % b) |
3430 | 1518 |
386
494c8e3f47f3
Improvements for hg identify:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
371
diff
changeset
|
1519 # 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
|
1520 t = "/".join(ctx.tags()) |
48c94bffdb28
identify: add support for output flags
Matt Mackall <mpm@selenic.com>
parents:
4665
diff
changeset
|
1521 if t: |
48c94bffdb28
identify: add support for output flags
Matt Mackall <mpm@selenic.com>
parents:
4665
diff
changeset
|
1522 output.append(t) |
48c94bffdb28
identify: add support for output flags
Matt Mackall <mpm@selenic.com>
parents:
4665
diff
changeset
|
1523 |
48c94bffdb28
identify: add support for output flags
Matt Mackall <mpm@selenic.com>
parents:
4665
diff
changeset
|
1524 if branch: |
48c94bffdb28
identify: add support for output flags
Matt Mackall <mpm@selenic.com>
parents:
4665
diff
changeset
|
1525 output.append(util.tolocal(ctx.branch())) |
48c94bffdb28
identify: add support for output flags
Matt Mackall <mpm@selenic.com>
parents:
4665
diff
changeset
|
1526 |
48c94bffdb28
identify: add support for output flags
Matt Mackall <mpm@selenic.com>
parents:
4665
diff
changeset
|
1527 if tags: |
48c94bffdb28
identify: add support for output flags
Matt Mackall <mpm@selenic.com>
parents:
4665
diff
changeset
|
1528 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
|
1529 |
386
494c8e3f47f3
Improvements for hg identify:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
371
diff
changeset
|
1530 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
|
1531 |
437 | 1532 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
|
1533 """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
|
1534 |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
1535 Import a list of patches and commit them individually. |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
1536 |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
1537 If there are outstanding changes in the working directory, import |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
1538 will abort unless given the -f flag. |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
1539 |
2504
158d3d2ae070
import: parse email messages
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2494
diff
changeset
|
1540 You can import a patch straight from a mail message. Even patches |
158d3d2ae070
import: parse email messages
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2494
diff
changeset
|
1541 as attachments work (body part must be type text/plain or |
2515
a6700c222314
import: make help clearer. suggested by asak.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2513
diff
changeset
|
1542 text/x-patch to be used). From and Subject headers of email |
a6700c222314
import: make help clearer. suggested by asak.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2513
diff
changeset
|
1543 message are used as default committer and commit message. All |
a6700c222314
import: make help clearer. suggested by asak.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2513
diff
changeset
|
1544 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
|
1545 message. |
2504
158d3d2ae070
import: parse email messages
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2494
diff
changeset
|
1546 |
4258 | 1547 If the imported patch was generated by hg export, user and description |
2504
158d3d2ae070
import: parse email messages
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2494
diff
changeset
|
1548 from patch override values from message headers and body. Values |
158d3d2ae070
import: parse email messages
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2494
diff
changeset
|
1549 given on command line with -m and -u override these. |
2400
2e90024e1471
import: allow to import stdin with file name "-"
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2397
diff
changeset
|
1550 |
4258 | 1551 If --exact is specified, import will set the working directory |
1552 to the parent of each patch before applying it, and will abort | |
1553 if the resulting changeset has a different ID than the one | |
1554 recorded in the patch. This may happen due to character set | |
1555 problems or other deficiencies in the text patch format. | |
1556 | |
2400
2e90024e1471
import: allow to import stdin with file name "-"
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2397
diff
changeset
|
1557 To read a patch from standard input, use patch name "-". |
1437
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
1558 """ |
437 | 1559 patches = (patch1,) + patches |
500
ebc4714a7632
[PATCH] Clean up destination directory if a clone fails.
mpm@selenic.com
parents:
499
diff
changeset
|
1560 |
4258 | 1561 if opts.get('exact') or not opts['force']: |
4549
0c61124ad877
dispatch: move dispatching code to cmdutil
Matt Mackall <mpm@selenic.com>
parents:
4548
diff
changeset
|
1562 cmdutil.bail_if_changed(repo) |
966
022bcc738389
hg import: abort with uncommitted changes, override with --force
mpm@selenic.com
parents:
965
diff
changeset
|
1563 |
437 | 1564 d = opts["base"] |
1565 strip = opts["strip"] | |
4959
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
1566 wlock = lock = None |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
1567 try: |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
1568 wlock = repo.wlock() |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
1569 lock = repo.lock() |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
1570 for p in patches: |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
1571 pf = os.path.join(d, p) |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
1572 |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
1573 if pf == '-': |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
1574 ui.status(_("applying patch from stdin\n")) |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
1575 data = patch.extract(ui, sys.stdin) |
2400
2e90024e1471
import: allow to import stdin with file name "-"
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2397
diff
changeset
|
1576 else: |
4959
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
1577 ui.status(_("applying %s\n") % p) |
5203 | 1578 if os.path.exists(pf): |
1579 data = patch.extract(ui, file(pf, 'rb')) | |
1580 else: | |
1581 data = patch.extract(ui, urllib.urlopen(pf)) | |
4959
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
1582 tmpname, message, user, date, branch, nodeid, p1, p2 = data |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
1583 |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
1584 if tmpname is None: |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
1585 raise util.Abort(_('no diffs found')) |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
1586 |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
1587 try: |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
1588 cmdline_message = cmdutil.logmessage(opts) |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
1589 if cmdline_message: |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
1590 # pickup the cmdline msg |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
1591 message = cmdline_message |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
1592 elif message: |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
1593 # pickup the patch msg |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
1594 message = message.strip() |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
1595 else: |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
1596 # launch the editor |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
1597 message = None |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
1598 ui.debug(_('message:\n%s\n') % message) |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
1599 |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
1600 wp = repo.workingctx().parents() |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
1601 if opts.get('exact'): |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
1602 if not nodeid or not p1: |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
1603 raise util.Abort(_('not a mercurial patch')) |
4259
bda63383d529
Make import opportunistically use merge information
Brendan Cully <brendan@kublai.com>
parents:
4258
diff
changeset
|
1604 p1 = repo.lookup(p1) |
4959
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
1605 p2 = repo.lookup(p2 or hex(nullid)) |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
1606 |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
1607 if p1 != wp[0].node(): |
4961
126f527b3ba3
Make repo locks recursive, eliminate all passing of lock/wlock
Matt Mackall <mpm@selenic.com>
parents:
4959
diff
changeset
|
1608 hg.clean(repo, p1) |
4959
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
1609 repo.dirstate.setparents(p1, p2) |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
1610 elif p2: |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
1611 try: |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
1612 p1 = repo.lookup(p1) |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
1613 p2 = repo.lookup(p2) |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
1614 if p1 == wp[0].node(): |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
1615 repo.dirstate.setparents(p1, p2) |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
1616 except hg.RepoError: |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
1617 pass |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
1618 if opts.get('exact') or opts.get('import_branch'): |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
1619 repo.dirstate.setbranch(branch or 'default') |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
1620 |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
1621 files = {} |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
1622 try: |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
1623 fuzz = patch.patch(tmpname, ui, strip=strip, cwd=repo.root, |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
1624 files=files) |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
1625 finally: |
4961
126f527b3ba3
Make repo locks recursive, eliminate all passing of lock/wlock
Matt Mackall <mpm@selenic.com>
parents:
4959
diff
changeset
|
1626 files = patch.updatedir(ui, repo, files) |
126f527b3ba3
Make repo locks recursive, eliminate all passing of lock/wlock
Matt Mackall <mpm@selenic.com>
parents:
4959
diff
changeset
|
1627 n = repo.commit(files, message, user, date) |
4959
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
1628 if opts.get('exact'): |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
1629 if hex(n) != nodeid: |
4961
126f527b3ba3
Make repo locks recursive, eliminate all passing of lock/wlock
Matt Mackall <mpm@selenic.com>
parents:
4959
diff
changeset
|
1630 repo.rollback() |
4959
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
1631 raise util.Abort(_('patch is damaged' + |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
1632 ' or loses information')) |
3460
2d35a8d2b32d
patch: return list of modified files even when an exception is raised
Brendan Cully <brendan@kublai.com>
parents:
3455
diff
changeset
|
1633 finally: |
4959
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
1634 os.unlink(tmpname) |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
1635 finally: |
5053
47a8ea1eb2c3
del transaction before lock before wlock
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
5034
diff
changeset
|
1636 del lock, wlock |
437 | 1637 |
1192
6e165de907c5
Add -p to incoming and outgoing commands to show patch
TK Soh <teekaysoh@yahoo.com>
parents:
1191
diff
changeset
|
1638 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
|
1639 """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
|
1640 |
1979
d545fa1426b9
More detailed documentation about ssh:// URLs; fixes issue170.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1974
diff
changeset
|
1641 Show new changesets found in the specified path/URL or the default |
d545fa1426b9
More detailed documentation about ssh:// URLs; fixes issue170.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1974
diff
changeset
|
1642 pull location. These are the changesets that would be pulled if a pull |
1437
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
1643 was requested. |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
1644 |
1944
fdf40c9b3306
incoming: add support for remote repo using bundlerepo
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1943
diff
changeset
|
1645 For remote repository, using --bundle avoids downloading the changesets |
fdf40c9b3306
incoming: add support for remote repo using bundlerepo
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1943
diff
changeset
|
1646 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
|
1647 |
d545fa1426b9
More detailed documentation about ssh:// URLs; fixes issue170.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1974
diff
changeset
|
1648 See pull for valid source format details. |
1437
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
1649 """ |
5241 | 1650 source, revs, checkout = hg.parseurl(ui.expandpath(source), opts['rev']) |
4549
0c61124ad877
dispatch: move dispatching code to cmdutil
Matt Mackall <mpm@selenic.com>
parents:
4548
diff
changeset
|
1651 cmdutil.setremoteconfig(ui, opts) |
1965
62aa1b90414f
add remotecmd/ssh option support to incoming/outgoing
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1959
diff
changeset
|
1652 |
927
5a830d7bea52
Add hg incoming command for local repositories
mpm@selenic.com
parents:
924
diff
changeset
|
1653 other = hg.repository(ui, source) |
4162
b2d9e553cdc8
incoming/outgoing: print the name of the other repo
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4158
diff
changeset
|
1654 ui.status(_('comparing with %s\n') % source) |
4478
b2b55acbacdd
Add support for url#id syntax
Matt Mackall <mpm@selenic.com>
parents:
4474
diff
changeset
|
1655 if revs: |
5255
65dc707606ed
Push capability checking into protocol-level code.
Bryan O'Sullivan <bos@serpentine.com>
parents:
5241
diff
changeset
|
1656 revs = [other.lookup(rev) for rev in revs] |
4473
671158f060cc
Make "hg incoming -r revision_number" work for remote repos (issue566)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
4324
diff
changeset
|
1657 incoming = repo.findincoming(other, heads=revs, force=opts["force"]) |
1944
fdf40c9b3306
incoming: add support for remote repo using bundlerepo
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1943
diff
changeset
|
1658 if not incoming: |
3940
7997c0e01bfc
hg in: if no incoming csets, remove existing bundle
Matt Mackall <mpm@selenic.com>
parents:
3931
diff
changeset
|
1659 try: |
7997c0e01bfc
hg in: if no incoming csets, remove existing bundle
Matt Mackall <mpm@selenic.com>
parents:
3931
diff
changeset
|
1660 os.unlink(opts["bundle"]) |
7997c0e01bfc
hg in: if no incoming csets, remove existing bundle
Matt Mackall <mpm@selenic.com>
parents:
3931
diff
changeset
|
1661 except: |
7997c0e01bfc
hg in: if no incoming csets, remove existing bundle
Matt Mackall <mpm@selenic.com>
parents:
3931
diff
changeset
|
1662 pass |
1993
fb6ca9801d04
show message if no changes found on incoming
TK Soh <teekaysoh@yahoo.com>
parents:
1981
diff
changeset
|
1663 ui.status(_("no changes found\n")) |
3931
f2cbcf1e98b2
incoming/outgoing: return failure if no changes found
Matt Mackall <mpm@selenic.com>
parents:
3930
diff
changeset
|
1664 return 1 |
1944
fdf40c9b3306
incoming: add support for remote repo using bundlerepo
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1943
diff
changeset
|
1665 |
fdf40c9b3306
incoming: add support for remote repo using bundlerepo
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1943
diff
changeset
|
1666 cleanup = None |
1974
0d54675cd566
Delete bundle file of hg incoming in case of errors, preserve existing files.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1973
diff
changeset
|
1667 try: |
0d54675cd566
Delete bundle file of hg incoming in case of errors, preserve existing files.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1973
diff
changeset
|
1668 fname = opts["bundle"] |
0d54675cd566
Delete bundle file of hg incoming in case of errors, preserve existing files.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1973
diff
changeset
|
1669 if fname or not other.local(): |
0d54675cd566
Delete bundle file of hg incoming in case of errors, preserve existing files.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1973
diff
changeset
|
1670 # create a bundle (uncompressed if other repo is not local) |
4473
671158f060cc
Make "hg incoming -r revision_number" work for remote repos (issue566)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
4324
diff
changeset
|
1671 if revs is None: |
671158f060cc
Make "hg incoming -r revision_number" work for remote repos (issue566)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
4324
diff
changeset
|
1672 cg = other.changegroup(incoming, "incoming") |
671158f060cc
Make "hg incoming -r revision_number" work for remote repos (issue566)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
4324
diff
changeset
|
1673 else: |
671158f060cc
Make "hg incoming -r revision_number" work for remote repos (issue566)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
4324
diff
changeset
|
1674 cg = other.changegroupsubset(incoming, revs, 'incoming') |
3706
0d810798acb1
Use 'bundletype' instead of 'type' to not shadow built-in function.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3704
diff
changeset
|
1675 bundletype = other.local() and "HG10BZ" or "HG10UN" |
0d810798acb1
Use 'bundletype' instead of 'type' to not shadow built-in function.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3704
diff
changeset
|
1676 fname = cleanup = changegroup.writebundle(cg, fname, bundletype) |
1974
0d54675cd566
Delete bundle file of hg incoming in case of errors, preserve existing files.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1973
diff
changeset
|
1677 # keep written bundle? |
0d54675cd566
Delete bundle file of hg incoming in case of errors, preserve existing files.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1973
diff
changeset
|
1678 if opts["bundle"]: |
0d54675cd566
Delete bundle file of hg incoming in case of errors, preserve existing files.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1973
diff
changeset
|
1679 cleanup = None |
0d54675cd566
Delete bundle file of hg incoming in case of errors, preserve existing files.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1973
diff
changeset
|
1680 if not other.local(): |
0d54675cd566
Delete bundle file of hg incoming in case of errors, preserve existing files.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1973
diff
changeset
|
1681 # use the created uncompressed bundlerepo |
0d54675cd566
Delete bundle file of hg incoming in case of errors, preserve existing files.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1973
diff
changeset
|
1682 other = bundlerepo.bundlerepository(ui, repo.root, fname) |
0d54675cd566
Delete bundle file of hg incoming in case of errors, preserve existing files.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1973
diff
changeset
|
1683 |
2521
9cceb439048b
add -r/--rev arguments to incoming and outgoing
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
2515
diff
changeset
|
1684 o = other.changelog.nodesbetween(incoming, revs)[0] |
1974
0d54675cd566
Delete bundle file of hg incoming in case of errors, preserve existing files.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1973
diff
changeset
|
1685 if opts['newest_first']: |
0d54675cd566
Delete bundle file of hg incoming in case of errors, preserve existing files.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1973
diff
changeset
|
1686 o.reverse() |
3646
b4ad640a3bcf
templates: move changeset templating bits to cmdutils
Matt Mackall <mpm@selenic.com>
parents:
3634
diff
changeset
|
1687 displayer = cmdutil.show_changeset(ui, other, opts) |
1974
0d54675cd566
Delete bundle file of hg incoming in case of errors, preserve existing files.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1973
diff
changeset
|
1688 for n in o: |
0d54675cd566
Delete bundle file of hg incoming in case of errors, preserve existing files.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1973
diff
changeset
|
1689 parents = [p for p in other.changelog.parents(n) if p != nullid] |
0d54675cd566
Delete bundle file of hg incoming in case of errors, preserve existing files.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1973
diff
changeset
|
1690 if opts['no_merges'] and len(parents) == 2: |
0d54675cd566
Delete bundle file of hg incoming in case of errors, preserve existing files.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1973
diff
changeset
|
1691 continue |
0d54675cd566
Delete bundle file of hg incoming in case of errors, preserve existing files.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1973
diff
changeset
|
1692 displayer.show(changenode=n) |
0d54675cd566
Delete bundle file of hg incoming in case of errors, preserve existing files.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1973
diff
changeset
|
1693 finally: |
0d54675cd566
Delete bundle file of hg incoming in case of errors, preserve existing files.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1973
diff
changeset
|
1694 if hasattr(other, 'close'): |
0d54675cd566
Delete bundle file of hg incoming in case of errors, preserve existing files.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1973
diff
changeset
|
1695 other.close() |
0d54675cd566
Delete bundle file of hg incoming in case of errors, preserve existing files.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1973
diff
changeset
|
1696 if cleanup: |
0d54675cd566
Delete bundle file of hg incoming in case of errors, preserve existing files.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1973
diff
changeset
|
1697 os.unlink(cleanup) |
1944
fdf40c9b3306
incoming: add support for remote repo using bundlerepo
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1943
diff
changeset
|
1698 |
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
|
1699 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
|
1700 """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
|
1701 |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
1702 Initialize a new repository in the given directory. If the given |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
1703 directory does not exist, it is created. |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
1704 |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
1705 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
|
1706 |
911b56853fdd
Additional information about URLs in pull/push/clone/init:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
2589
diff
changeset
|
1707 It is possible to specify an ssh:// URL as the destination. |
911b56853fdd
Additional information about URLs in pull/push/clone/init:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
2589
diff
changeset
|
1708 Look at the help text for the pull command for important details |
911b56853fdd
Additional information about URLs in pull/push/clone/init:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
2589
diff
changeset
|
1709 about ssh:// URLs. |
1437
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
1710 """ |
4549
0c61124ad877
dispatch: move dispatching code to cmdutil
Matt Mackall <mpm@selenic.com>
parents:
4548
diff
changeset
|
1711 cmdutil.setremoteconfig(ui, opts) |
907
652507dc9fce
Modify init command to take an optional directory to set up.
Bryan O'Sullivan <bos@serpentine.com>
parents:
906
diff
changeset
|
1712 hg.repository(ui, dest, create=1) |
338 | 1713 |
627 | 1714 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
|
1715 """locate files matching specific patterns |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
1716 |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
1717 Print all files under Mercurial control whose names match the |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
1718 given patterns. |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
1719 |
4190
e8ee8fdeddb1
change locate to use relglobs by default
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4175
diff
changeset
|
1720 This command searches the entire repository by default. To search |
4692
c135c6cddbec
Command in doc comment is now on a single line, fixed
paul sorenson <sf@metrak.com>
parents:
4684
diff
changeset
|
1721 just the current directory and its subdirectories, use |
c135c6cddbec
Command in doc comment is now on a single line, fixed
paul sorenson <sf@metrak.com>
parents:
4684
diff
changeset
|
1722 "--include .". |
1437
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
1723 |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
1724 If no patterns are given to match, this command prints all file |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
1725 names. |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
1726 |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
1727 If you want to feed the output of this command into the "xargs" |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
1728 command, use the "-0" option to both this command and "xargs". |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
1729 This will avoid the problem of "xargs" treating single filenames |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
1730 that contain white space as multiple filenames. |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
1731 """ |
1065
6e94c0365d98
Cleanups to commands.py
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1062
diff
changeset
|
1732 end = opts['print0'] and '\0' or '\n' |
1622
5e9168401a68
fix locate broken since 63799b01985c
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1619
diff
changeset
|
1733 rev = opts['rev'] |
5e9168401a68
fix locate broken since 63799b01985c
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1619
diff
changeset
|
1734 if rev: |
5e9168401a68
fix locate broken since 63799b01985c
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1619
diff
changeset
|
1735 node = repo.lookup(rev) |
5e9168401a68
fix locate broken since 63799b01985c
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1619
diff
changeset
|
1736 else: |
5e9168401a68
fix locate broken since 63799b01985c
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1619
diff
changeset
|
1737 node = None |
742 | 1738 |
4191
1c69c73d85d9
locate: exit(1) if we didn't print any file
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4190
diff
changeset
|
1739 ret = 1 |
2881
cf98cd70d2c4
move walk and matchpats from commands to cmdutil.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2877
diff
changeset
|
1740 for src, abs, rel, exact in cmdutil.walk(repo, pats, opts, node=node, |
4305
a5cde03cd019
locate: don't print "file not found" messages.
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4252
diff
changeset
|
1741 badmatch=util.always, |
4190
e8ee8fdeddb1
change locate to use relglobs by default
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4175
diff
changeset
|
1742 default='relglob'): |
4305
a5cde03cd019
locate: don't print "file not found" messages.
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4252
diff
changeset
|
1743 if src == 'b': |
a5cde03cd019
locate: don't print "file not found" messages.
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4252
diff
changeset
|
1744 continue |
4950
30847b8af7ca
dirstate: add __contains__ and make __getitem__ more useful
Matt Mackall <mpm@selenic.com>
parents:
4948
diff
changeset
|
1745 if not node and abs not in repo.dirstate: |
1065
6e94c0365d98
Cleanups to commands.py
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1062
diff
changeset
|
1746 continue |
697
cb1be2327220
Multiple cleanups of things detected by pylint.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
696
diff
changeset
|
1747 if opts['fullpath']: |
724
1c0c413cccdd
Get add and locate to use new repo and dirstate walk code.
Bryan O'Sullivan <bos@serpentine.com>
parents:
723
diff
changeset
|
1748 ui.write(os.path.join(repo.root, abs), end) |
1c0c413cccdd
Get add and locate to use new repo and dirstate walk code.
Bryan O'Sullivan <bos@serpentine.com>
parents:
723
diff
changeset
|
1749 else: |
1625
e1bcf7fa983f
correct the relative path when walking from a subdir
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1622
diff
changeset
|
1750 ui.write(((pats and rel) or abs), end) |
4191
1c69c73d85d9
locate: exit(1) if we didn't print any file
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4190
diff
changeset
|
1751 ret = 0 |
1c69c73d85d9
locate: exit(1) if we didn't print any file
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4190
diff
changeset
|
1752 |
1c69c73d85d9
locate: exit(1) if we didn't print any file
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4190
diff
changeset
|
1753 return ret |
627 | 1754 |
1031
503aaf19a040
Rewrite log command. New version is faster and more featureful.
Bryan O'Sullivan <bos@serpentine.com>
parents:
1030
diff
changeset
|
1755 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
|
1756 """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
|
1757 |
2741
ae5ce3454ef5
log: add -f/--follow option, to follow rename/copy
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2739
diff
changeset
|
1758 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
|
1759 project. |
ae5ce3454ef5
log: add -f/--follow option, to follow rename/copy
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2739
diff
changeset
|
1760 |
ae5ce3454ef5
log: add -f/--follow option, to follow rename/copy
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2739
diff
changeset
|
1761 File history is shown without following rename or copy history of |
2777
21e571c21a6b
Make log --follow without a file list follow a single head.
Brendan Cully <brendan@kublai.com>
parents:
2764
diff
changeset
|
1762 files. Use -f/--follow with a file name to follow history across |
21e571c21a6b
Make log --follow without a file list follow a single head.
Brendan Cully <brendan@kublai.com>
parents:
2764
diff
changeset
|
1763 renames and copies. --follow without a file name will only show |
2779
12a7bfcafd8f
Add log option --follow-first to follow only the first parent of
Brendan Cully <brendan@kublai.com>
parents:
2778
diff
changeset
|
1764 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:
2778
diff
changeset
|
1765 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
|
1766 |
2778
2e0cd25fe4ac
Make log --follow revision range start default to working dir parent.
Brendan Cully <brendan@kublai.com>
parents:
2777
diff
changeset
|
1767 If no revision range is specified, the default is tip:0 unless |
2e0cd25fe4ac
Make log --follow revision range start default to working dir parent.
Brendan Cully <brendan@kublai.com>
parents:
2777
diff
changeset
|
1768 --follow is set, in which case the working directory parent is |
2e0cd25fe4ac
Make log --follow revision range start default to working dir parent.
Brendan Cully <brendan@kublai.com>
parents:
2777
diff
changeset
|
1769 used as the starting revision. |
2e0cd25fe4ac
Make log --follow revision range start default to working dir parent.
Brendan Cully <brendan@kublai.com>
parents:
2777
diff
changeset
|
1770 |
1437
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
1771 By default this command outputs: changeset id and hash, tags, |
1557
f7d9823e65df
Updated help text for 'hg log'.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1552
diff
changeset
|
1772 non-trivial parents, user, date and time, and a summary for each |
f7d9823e65df
Updated help text for 'hg log'.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1552
diff
changeset
|
1773 commit. When the -v/--verbose switch is used, the list of changed |
f7d9823e65df
Updated help text for 'hg log'.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1552
diff
changeset
|
1774 files and full commit message is shown. |
3828
28134d82db9b
Add notes about diff/merge asymmetry to export, diff, and log
Matt Mackall <mpm@selenic.com>
parents:
3819
diff
changeset
|
1775 |
28134d82db9b
Add notes about diff/merge asymmetry to export, diff, and log
Matt Mackall <mpm@selenic.com>
parents:
3819
diff
changeset
|
1776 NOTE: log -p may generate unexpected diff output for merge |
28134d82db9b
Add notes about diff/merge asymmetry to export, diff, and log
Matt Mackall <mpm@selenic.com>
parents:
3819
diff
changeset
|
1777 changesets, as it will compare the merge changeset against its |
28134d82db9b
Add notes about diff/merge asymmetry to export, diff, and log
Matt Mackall <mpm@selenic.com>
parents:
3819
diff
changeset
|
1778 first parent only. Also, the files: list will only reflect files |
28134d82db9b
Add notes about diff/merge asymmetry to export, diff, and log
Matt Mackall <mpm@selenic.com>
parents:
3819
diff
changeset
|
1779 that are different from BOTH parents. |
28134d82db9b
Add notes about diff/merge asymmetry to export, diff, and log
Matt Mackall <mpm@selenic.com>
parents:
3819
diff
changeset
|
1780 |
1437
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
1781 """ |
1756
f29857aaa053
add -l,--limit to log command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
1747
diff
changeset
|
1782 |
3673
eb0b4a2d70a9
white space and line break cleanups
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3672
diff
changeset
|
1783 get = util.cachefunc(lambda r: repo.changectx(r).changeset()) |
3657
731e739b8659
move walkchangerevs to cmdutils
Matt Mackall <mpm@selenic.com>
parents:
3656
diff
changeset
|
1784 changeiter, matchfn = cmdutil.walkchangerevs(ui, repo, pats, get, opts) |
3521
467d923e4e3d
Fix excessive complaining from hg log -b
Matt Mackall <mpm@selenic.com>
parents:
3520
diff
changeset
|
1785 |
1756
f29857aaa053
add -l,--limit to log command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
1747
diff
changeset
|
1786 if opts['limit']: |
f29857aaa053
add -l,--limit to log command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
1747
diff
changeset
|
1787 try: |
f29857aaa053
add -l,--limit to log command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
1747
diff
changeset
|
1788 limit = int(opts['limit']) |
f29857aaa053
add -l,--limit to log command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
1747
diff
changeset
|
1789 except ValueError: |
f29857aaa053
add -l,--limit to log command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
1747
diff
changeset
|
1790 raise util.Abort(_('limit must be a positive integer')) |
f29857aaa053
add -l,--limit to log command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
1747
diff
changeset
|
1791 if limit <= 0: raise util.Abort(_('limit must be positive')) |
f29857aaa053
add -l,--limit to log command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
1747
diff
changeset
|
1792 else: |
f29857aaa053
add -l,--limit to log command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
1747
diff
changeset
|
1793 limit = sys.maxint |
f29857aaa053
add -l,--limit to log command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
1747
diff
changeset
|
1794 count = 0 |
f29857aaa053
add -l,--limit to log command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
1747
diff
changeset
|
1795 |
3190 | 1796 if opts['copies'] and opts['rev']: |
3707
67f44b825784
Removed unused ui parameter from revpair/revrange and fix its users.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3706
diff
changeset
|
1797 endrev = max(cmdutil.revrange(repo, opts['rev'])) + 1 |
3190 | 1798 else: |
1799 endrev = repo.changelog.count() | |
1800 rcache = {} | |
1801 ncache = {} | |
1802 dcache = [] | |
1803 def getrenamed(fn, rev, man): | |
1804 '''looks up all renames for a file (up to endrev) the first | |
1805 time the file is given. It indexes on the changerev and only | |
1806 parses the manifest if linkrev != changerev. | |
1807 Returns rename info for fn at changerev rev.''' | |
1808 if fn not in rcache: | |
1809 rcache[fn] = {} | |
1810 ncache[fn] = {} | |
1811 fl = repo.file(fn) | |
1812 for i in xrange(fl.count()): | |
1813 node = fl.node(i) | |
1814 lr = fl.linkrev(node) | |
1815 renamed = fl.renamed(node) | |
1816 rcache[fn][lr] = renamed | |
1817 if renamed: | |
1818 ncache[fn][node] = renamed | |
1819 if lr >= endrev: | |
1820 break | |
1821 if rev in rcache[fn]: | |
1822 return rcache[fn][rev] | |
3385
55476ce8e59c
Use manifest rev instead of changelog rev for linear manifest test
Brendan Cully <brendan@kublai.com>
parents:
3383
diff
changeset
|
1823 mr = repo.manifest.rev(man) |
3578
3b4e00cba57a
Define and use nullrev (revision of nullid) instead of -1.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3576
diff
changeset
|
1824 if repo.manifest.parentrevs(mr) != (mr - 1, nullrev): |
3383
5e6c19919741
log --copies: use manifest.find instead of delta when manifest parent is not rev-1
Brendan Cully <brendan@kublai.com>
parents:
3346
diff
changeset
|
1825 return ncache[fn].get(repo.manifest.find(man, fn)[0]) |
3190 | 1826 if not dcache or dcache[0] != man: |
1827 dcache[:] = [man, repo.manifest.readdelta(man)] | |
1828 if fn in dcache[1]: | |
1829 return ncache[fn].get(dcache[1][fn]) | |
1830 return None | |
1831 | |
3816 | 1832 df = False |
1833 if opts["date"]: | |
1834 df = util.matchdate(opts["date"]) | |
1835 | |
3837
7df171ea50cd
Fix log regression where log -p file showed diffs for other files
Matt Mackall <mpm@selenic.com>
parents:
3833
diff
changeset
|
1836 displayer = cmdutil.show_changeset(ui, repo, opts, True, matchfn) |
1146
9061f79c6c6f
grep: extend functionality, add man page entry, add unit test.
bos@serpentine.internal.keyresearch.com
parents:
1145
diff
changeset
|
1837 for st, rev, fns in changeiter: |
3648
b984dcb1df71
Refactor log ui buffering and patch display
Matt Mackall <mpm@selenic.com>
parents:
3646
diff
changeset
|
1838 if st == 'add': |
1435
22b44fd9a166
add --no-merges (-M) for log, outgoing, incoming
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1431
diff
changeset
|
1839 changenode = repo.changelog.node(rev) |
3578
3b4e00cba57a
Define and use nullrev (revision of nullid) instead of -1.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3576
diff
changeset
|
1840 parents = [p for p in repo.changelog.parentrevs(rev) |
3b4e00cba57a
Define and use nullrev (revision of nullid) instead of -1.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3576
diff
changeset
|
1841 if p != nullrev] |
1435
22b44fd9a166
add --no-merges (-M) for log, outgoing, incoming
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1431
diff
changeset
|
1842 if opts['no_merges'] and len(parents) == 2: |
1615
83238c1db6de
Cleanup of indentation, spacing, newlines, strings and line length
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1607
diff
changeset
|
1843 continue |
1436
db6d7b4005ba
add --only-merges (-m) log
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1435
diff
changeset
|
1844 if opts['only_merges'] and len(parents) != 2: |
1615
83238c1db6de
Cleanup of indentation, spacing, newlines, strings and line length
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1607
diff
changeset
|
1845 continue |
1435
22b44fd9a166
add --no-merges (-M) for log, outgoing, incoming
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1431
diff
changeset
|
1846 |
3816 | 1847 if df: |
1848 changes = get(rev) | |
1849 if not df(changes[2][0]): | |
1850 continue | |
1851 | |
1373
965d1db5c95d
hg log: add -k for keyword searching
Matt Mackall <mpm@selenic.com>
parents:
1366
diff
changeset
|
1852 if opts['keyword']: |
3657
731e739b8659
move walkchangerevs to cmdutils
Matt Mackall <mpm@selenic.com>
parents:
3656
diff
changeset
|
1853 changes = get(rev) |
1373
965d1db5c95d
hg log: add -k for keyword searching
Matt Mackall <mpm@selenic.com>
parents:
1366
diff
changeset
|
1854 miss = 0 |
1404
67e20e27d8df
log: make keyword search truly case-insensitive
TK Soh <teekaysoh@yahoo.com>
parents:
1402
diff
changeset
|
1855 for k in [kw.lower() for kw in opts['keyword']]: |
1373
965d1db5c95d
hg log: add -k for keyword searching
Matt Mackall <mpm@selenic.com>
parents:
1366
diff
changeset
|
1856 if not (k in changes[1].lower() or |
965d1db5c95d
hg log: add -k for keyword searching
Matt Mackall <mpm@selenic.com>
parents:
1366
diff
changeset
|
1857 k in changes[4].lower() or |
4322
38922a13101e
log: expand keyword search to full list of files
TK Soh <teekaysoh@yahoo.com>
parents:
4315
diff
changeset
|
1858 k in " ".join(changes[3]).lower()): |
1373
965d1db5c95d
hg log: add -k for keyword searching
Matt Mackall <mpm@selenic.com>
parents:
1366
diff
changeset
|
1859 miss = 1 |
965d1db5c95d
hg log: add -k for keyword searching
Matt Mackall <mpm@selenic.com>
parents:
1366
diff
changeset
|
1860 break |
965d1db5c95d
hg log: add -k for keyword searching
Matt Mackall <mpm@selenic.com>
parents:
1366
diff
changeset
|
1861 if miss: |
965d1db5c95d
hg log: add -k for keyword searching
Matt Mackall <mpm@selenic.com>
parents:
1366
diff
changeset
|
1862 continue |
965d1db5c95d
hg log: add -k for keyword searching
Matt Mackall <mpm@selenic.com>
parents:
1366
diff
changeset
|
1863 |
3190 | 1864 copies = [] |
1865 if opts.get('copies') and rev: | |
3657
731e739b8659
move walkchangerevs to cmdutils
Matt Mackall <mpm@selenic.com>
parents:
3656
diff
changeset
|
1866 mf = get(rev)[0] |
731e739b8659
move walkchangerevs to cmdutils
Matt Mackall <mpm@selenic.com>
parents:
3656
diff
changeset
|
1867 for fn in get(rev)[3]: |
3190 | 1868 rename = getrenamed(fn, rev, mf) |
1869 if rename: | |
1870 copies.append((fn, rename[0])) | |
3656
e50891e461e4
Consolidate brinfo handling
Matt Mackall <mpm@selenic.com>
parents:
3648
diff
changeset
|
1871 displayer.show(rev, changenode, copies=copies) |
1057 | 1872 elif st == 'iter': |
1756
f29857aaa053
add -l,--limit to log command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
1747
diff
changeset
|
1873 if count == limit: break |
3648
b984dcb1df71
Refactor log ui buffering and patch display
Matt Mackall <mpm@selenic.com>
parents:
3646
diff
changeset
|
1874 if displayer.flush(rev): |
1765
b9fac31f34c9
hg log --limit shouldn't count unprinted revisions (found by TK Soh)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1764
diff
changeset
|
1875 count += 1 |
255 | 1876 |
5138
13d23d66a6cd
manifest: accept -r for rev specification
Bryan O'Sullivan <bos@serpentine.com>
parents:
5124
diff
changeset
|
1877 def manifest(ui, repo, node=None, rev=None): |
3913
283ee8971570
doc string fix: hg cat and manifest default to current parent revision.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3900
diff
changeset
|
1878 """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
|
1879 |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
1880 Print a list of version controlled files for the given revision. |
3914
3c82ab166eea
doc fix: hg tags defaults to current parent revision, too.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3913
diff
changeset
|
1881 If no revision is given, the parent of the working directory is used, |
3c82ab166eea
doc fix: hg tags defaults to current parent revision, too.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3913
diff
changeset
|
1882 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
|
1883 |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
1884 The manifest is the list of files being version controlled. If no revision |
3736 | 1885 is given then the first parent of the working directory is used. |
1886 | |
5405
8feb33c2d153
Display symlink or executable bit with manifest -v
Patrick Mezard <pmezard@gmail.com>
parents:
5336
diff
changeset
|
1887 With -v flag, print file permissions, symlink and executable bits. With |
8feb33c2d153
Display symlink or executable bit with manifest -v
Patrick Mezard <pmezard@gmail.com>
parents:
5336
diff
changeset
|
1888 --debug flag, print file revision hashes. |
1437
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
1889 """ |
3736 | 1890 |
5138
13d23d66a6cd
manifest: accept -r for rev specification
Bryan O'Sullivan <bos@serpentine.com>
parents:
5124
diff
changeset
|
1891 if rev and node: |
13d23d66a6cd
manifest: accept -r for rev specification
Bryan O'Sullivan <bos@serpentine.com>
parents:
5124
diff
changeset
|
1892 raise util.Abort(_("please specify just one revision")) |
13d23d66a6cd
manifest: accept -r for rev specification
Bryan O'Sullivan <bos@serpentine.com>
parents:
5124
diff
changeset
|
1893 |
13d23d66a6cd
manifest: accept -r for rev specification
Bryan O'Sullivan <bos@serpentine.com>
parents:
5124
diff
changeset
|
1894 if not node: |
13d23d66a6cd
manifest: accept -r for rev specification
Bryan O'Sullivan <bos@serpentine.com>
parents:
5124
diff
changeset
|
1895 node = rev |
13d23d66a6cd
manifest: accept -r for rev specification
Bryan O'Sullivan <bos@serpentine.com>
parents:
5124
diff
changeset
|
1896 |
13d23d66a6cd
manifest: accept -r for rev specification
Bryan O'Sullivan <bos@serpentine.com>
parents:
5124
diff
changeset
|
1897 m = repo.changectx(node).manifest() |
255 | 1898 files = m.keys() |
1899 files.sort() | |
1900 | |
1901 for f in files: | |
3736 | 1902 if ui.debugflag: |
1903 ui.write("%40s " % hex(m[f])) | |
1904 if ui.verbose: | |
5405
8feb33c2d153
Display symlink or executable bit with manifest -v
Patrick Mezard <pmezard@gmail.com>
parents:
5336
diff
changeset
|
1905 type = m.execf(f) and "*" or m.linkf(f) and "@" or " " |
8feb33c2d153
Display symlink or executable bit with manifest -v
Patrick Mezard <pmezard@gmail.com>
parents:
5336
diff
changeset
|
1906 perm = m.execf(f) and "755" or "644" |
8feb33c2d153
Display symlink or executable bit with manifest -v
Patrick Mezard <pmezard@gmail.com>
parents:
5336
diff
changeset
|
1907 ui.write("%3s %1s " % (perm, type)) |
3736 | 1908 ui.write("%s\n" % f) |
255 | 1909 |
4450
8fa54b9c6c5a
accept -r REV in more places
Daniel Holth <dholth@fastmail.fm>
parents:
4442
diff
changeset
|
1910 def merge(ui, repo, node=None, force=None, rev=None): |
4014
509342f95564
various doc fixes
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
4013
diff
changeset
|
1911 """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
|
1912 |
ced2d3620f95
add merge command. means same thing as "update -m".
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
1996
diff
changeset
|
1913 Merge the contents of the current working directory and the |
ced2d3620f95
add merge command. means same thing as "update -m".
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
1996
diff
changeset
|
1914 requested revision. Files that changed between either parent are |
ced2d3620f95
add merge command. means same thing as "update -m".
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
1996
diff
changeset
|
1915 marked as changed for the next commit and a commit must be |
ced2d3620f95
add merge command. means same thing as "update -m".
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
1996
diff
changeset
|
1916 performed before any further updates are allowed. |
2903
013921c753bd
merge with other head by default, not tip.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2896
diff
changeset
|
1917 |
013921c753bd
merge with other head by default, not tip.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2896
diff
changeset
|
1918 If no revision is specified, the working directory's parent is a |
013921c753bd
merge with other head by default, not tip.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2896
diff
changeset
|
1919 head revision, and the repository contains exactly one other head, |
013921c753bd
merge with other head by default, not tip.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2896
diff
changeset
|
1920 the other head is merged with by default. Otherwise, an explicit |
013921c753bd
merge with other head by default, not tip.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2896
diff
changeset
|
1921 revision to merge with must be provided. |
2019
ced2d3620f95
add merge command. means same thing as "update -m".
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
1996
diff
changeset
|
1922 """ |
2820
0bf22c109cc3
Factor doupdate into _lookup + hg.update
Matt Mackall <mpm@selenic.com>
parents:
2803
diff
changeset
|
1923 |
4450
8fa54b9c6c5a
accept -r REV in more places
Daniel Holth <dholth@fastmail.fm>
parents:
4442
diff
changeset
|
1924 if rev and node: |
8fa54b9c6c5a
accept -r REV in more places
Daniel Holth <dholth@fastmail.fm>
parents:
4442
diff
changeset
|
1925 raise util.Abort(_("please specify just one revision")) |
8fa54b9c6c5a
accept -r REV in more places
Daniel Holth <dholth@fastmail.fm>
parents:
4442
diff
changeset
|
1926 if not node: |
8fa54b9c6c5a
accept -r REV in more places
Daniel Holth <dholth@fastmail.fm>
parents:
4442
diff
changeset
|
1927 node = rev |
8fa54b9c6c5a
accept -r REV in more places
Daniel Holth <dholth@fastmail.fm>
parents:
4442
diff
changeset
|
1928 |
3885
1e0b94cfba0e
Remove deprecated old-style branch support
Matt Mackall <mpm@selenic.com>
parents:
3862
diff
changeset
|
1929 if not node: |
2903
013921c753bd
merge with other head by default, not tip.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2896
diff
changeset
|
1930 heads = repo.heads() |
013921c753bd
merge with other head by default, not tip.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2896
diff
changeset
|
1931 if len(heads) > 2: |
013921c753bd
merge with other head by default, not tip.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2896
diff
changeset
|
1932 raise util.Abort(_('repo has %d heads - ' |
013921c753bd
merge with other head by default, not tip.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2896
diff
changeset
|
1933 'please merge with an explicit rev') % |
013921c753bd
merge with other head by default, not tip.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2896
diff
changeset
|
1934 len(heads)) |
5224
9cd6578750b9
improve error message for 'hg merge' when repo already at branchtip
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
5203
diff
changeset
|
1935 parent = repo.dirstate.parents()[0] |
2903
013921c753bd
merge with other head by default, not tip.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2896
diff
changeset
|
1936 if len(heads) == 1: |
5224
9cd6578750b9
improve error message for 'hg merge' when repo already at branchtip
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
5203
diff
changeset
|
1937 msg = _('there is nothing to merge') |
9cd6578750b9
improve error message for 'hg merge' when repo already at branchtip
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
5203
diff
changeset
|
1938 if parent != repo.lookup(repo.workingctx().branch()): |
9cd6578750b9
improve error message for 'hg merge' when repo already at branchtip
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
5203
diff
changeset
|
1939 msg = _('%s - use "hg update" instead' % msg) |
9cd6578750b9
improve error message for 'hg merge' when repo already at branchtip
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
5203
diff
changeset
|
1940 raise util.Abort(msg) |
9cd6578750b9
improve error message for 'hg merge' when repo already at branchtip
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
5203
diff
changeset
|
1941 |
2903
013921c753bd
merge with other head by default, not tip.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2896
diff
changeset
|
1942 if parent not in heads: |
013921c753bd
merge with other head by default, not tip.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2896
diff
changeset
|
1943 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:
2896
diff
changeset
|
1944 'use "hg update" or merge with an explicit rev')) |
013921c753bd
merge with other head by default, not tip.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2896
diff
changeset
|
1945 node = parent == heads[0] and heads[-1] or heads[0] |
2822
30f59f4a327e
Introduce update helper functions: update, merge, clean, and revert
Matt Mackall <mpm@selenic.com>
parents:
2820
diff
changeset
|
1946 return hg.merge(repo, node, force=force) |
2029
d436b21b20dc
rewrite revert command. fix issues 93, 123, 147.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2022
diff
changeset
|
1947 |
2494
73ac95671788
push, outgoing, bundle: fall back to "default" if "default-push" not defined
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2493
diff
changeset
|
1948 def outgoing(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
|
1949 """show changesets not found in destination |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
1950 |
1979
d545fa1426b9
More detailed documentation about ssh:// URLs; fixes issue170.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1974
diff
changeset
|
1951 Show changesets not found in the specified destination repository or |
d545fa1426b9
More detailed documentation about ssh:// URLs; fixes issue170.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1974
diff
changeset
|
1952 the default push location. These are the changesets that would be pushed |
1437
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
1953 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
|
1954 |
1979
d545fa1426b9
More detailed documentation about ssh:// URLs; fixes issue170.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1974
diff
changeset
|
1955 See pull for valid destination format details. |
1437
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
1956 """ |
5241 | 1957 dest, revs, checkout = hg.parseurl( |
4478
b2b55acbacdd
Add support for url#id syntax
Matt Mackall <mpm@selenic.com>
parents:
4474
diff
changeset
|
1958 ui.expandpath(dest or 'default-push', dest or 'default'), opts['rev']) |
4549
0c61124ad877
dispatch: move dispatching code to cmdutil
Matt Mackall <mpm@selenic.com>
parents:
4548
diff
changeset
|
1959 cmdutil.setremoteconfig(ui, opts) |
4478
b2b55acbacdd
Add support for url#id syntax
Matt Mackall <mpm@selenic.com>
parents:
4474
diff
changeset
|
1960 if revs: |
b2b55acbacdd
Add support for url#id syntax
Matt Mackall <mpm@selenic.com>
parents:
4474
diff
changeset
|
1961 revs = [repo.lookup(rev) for rev in revs] |
1965
62aa1b90414f
add remotecmd/ssh option support to incoming/outgoing
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1959
diff
changeset
|
1962 |
920 | 1963 other = hg.repository(ui, dest) |
4162
b2d9e553cdc8
incoming/outgoing: print the name of the other repo
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4158
diff
changeset
|
1964 ui.status(_('comparing with %s\n') % dest) |
1959
d53a18f592be
add -f/--force to pull, incoming, outgoing, to work on unrelated repo.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
1948
diff
changeset
|
1965 o = repo.findoutgoing(other, force=opts['force']) |
1994
78ef83c9e9e1
show message if no changes found on outgoing
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1993
diff
changeset
|
1966 if not o: |
78ef83c9e9e1
show message if no changes found on outgoing
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1993
diff
changeset
|
1967 ui.status(_("no changes found\n")) |
3931
f2cbcf1e98b2
incoming/outgoing: return failure if no changes found
Matt Mackall <mpm@selenic.com>
parents:
3930
diff
changeset
|
1968 return 1 |
2521
9cceb439048b
add -r/--rev arguments to incoming and outgoing
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
2515
diff
changeset
|
1969 o = repo.changelog.nodesbetween(o, revs)[0] |
1439
65cbe22b03fa
allow 'hg out' / 'hg in' to show newest commit first
Michal Kvasnica <kvasnica@gmail.com>
parents:
1437
diff
changeset
|
1970 if opts['newest_first']: |
65cbe22b03fa
allow 'hg out' / 'hg in' to show newest commit first
Michal Kvasnica <kvasnica@gmail.com>
parents:
1437
diff
changeset
|
1971 o.reverse() |
3646
b4ad640a3bcf
templates: move changeset templating bits to cmdutils
Matt Mackall <mpm@selenic.com>
parents:
3634
diff
changeset
|
1972 displayer = cmdutil.show_changeset(ui, repo, opts) |
920 | 1973 for n in o: |
1435
22b44fd9a166
add --no-merges (-M) for log, outgoing, incoming
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1431
diff
changeset
|
1974 parents = [p for p in repo.changelog.parents(n) if p != nullid] |
22b44fd9a166
add --no-merges (-M) for log, outgoing, incoming
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1431
diff
changeset
|
1975 if opts['no_merges'] and len(parents) == 2: |
22b44fd9a166
add --no-merges (-M) for log, outgoing, incoming
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1431
diff
changeset
|
1976 continue |
1907
7718885070b1
let commands that show changesets use templates.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
1800
diff
changeset
|
1977 displayer.show(changenode=n) |
920 | 1978 |
3665
d12c8668b102
remove legacy hg parents REV syntax
Matt Mackall <mpm@selenic.com>
parents:
3664
diff
changeset
|
1979 def parents(ui, repo, file_=None, **opts): |
1437
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
1980 """show the parents of the working dir or revision |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
1981 |
4586
1fcc076fcb17
Make parents with a file but not a revision use working directory revision.
Brendan Cully <brendan@kublai.com>
parents:
4473
diff
changeset
|
1982 Print the working directory's parent revisions. If a |
1fcc076fcb17
Make parents with a file but not a revision use working directory revision.
Brendan Cully <brendan@kublai.com>
parents:
4473
diff
changeset
|
1983 revision is given via --rev, the parent of that revision |
1fcc076fcb17
Make parents with a file but not a revision use working directory revision.
Brendan Cully <brendan@kublai.com>
parents:
4473
diff
changeset
|
1984 will be printed. If a file argument is given, revision in |
1fcc076fcb17
Make parents with a file but not a revision use working directory revision.
Brendan Cully <brendan@kublai.com>
parents:
4473
diff
changeset
|
1985 which the file was last changed (before the working directory |
1fcc076fcb17
Make parents with a file but not a revision use working directory revision.
Brendan Cully <brendan@kublai.com>
parents:
4473
diff
changeset
|
1986 revision or the argument to --rev if given) is printed. |
1437
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
1987 """ |
3665
d12c8668b102
remove legacy hg parents REV syntax
Matt Mackall <mpm@selenic.com>
parents:
3664
diff
changeset
|
1988 rev = opts.get('rev') |
5298
cba2a689117d
parents: make it match the doc when called on a file
Patrick Mezard <pmezard@gmail.com>
parents:
5262
diff
changeset
|
1989 if rev: |
cba2a689117d
parents: make it match the doc when called on a file
Patrick Mezard <pmezard@gmail.com>
parents:
5262
diff
changeset
|
1990 ctx = repo.changectx(rev) |
cba2a689117d
parents: make it match the doc when called on a file
Patrick Mezard <pmezard@gmail.com>
parents:
5262
diff
changeset
|
1991 else: |
cba2a689117d
parents: make it match the doc when called on a file
Patrick Mezard <pmezard@gmail.com>
parents:
5262
diff
changeset
|
1992 ctx = repo.workingctx() |
cba2a689117d
parents: make it match the doc when called on a file
Patrick Mezard <pmezard@gmail.com>
parents:
5262
diff
changeset
|
1993 |
4586
1fcc076fcb17
Make parents with a file but not a revision use working directory revision.
Brendan Cully <brendan@kublai.com>
parents:
4473
diff
changeset
|
1994 if file_: |
4894
be5dc5e3ab2d
hg parents: don't pass an OS-specific path to repo.filectx
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4877
diff
changeset
|
1995 files, match, anypats = cmdutil.matchpats(repo, (file_,), opts) |
be5dc5e3ab2d
hg parents: don't pass an OS-specific path to repo.filectx
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4877
diff
changeset
|
1996 if anypats or len(files) != 1: |
be5dc5e3ab2d
hg parents: don't pass an OS-specific path to repo.filectx
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4877
diff
changeset
|
1997 raise util.Abort(_('can only specify an explicit file name')) |
5298
cba2a689117d
parents: make it match the doc when called on a file
Patrick Mezard <pmezard@gmail.com>
parents:
5262
diff
changeset
|
1998 file_ = files[0] |
cba2a689117d
parents: make it match the doc when called on a file
Patrick Mezard <pmezard@gmail.com>
parents:
5262
diff
changeset
|
1999 filenodes = [] |
cba2a689117d
parents: make it match the doc when called on a file
Patrick Mezard <pmezard@gmail.com>
parents:
5262
diff
changeset
|
2000 for cp in ctx.parents(): |
cba2a689117d
parents: make it match the doc when called on a file
Patrick Mezard <pmezard@gmail.com>
parents:
5262
diff
changeset
|
2001 if not cp: |
cba2a689117d
parents: make it match the doc when called on a file
Patrick Mezard <pmezard@gmail.com>
parents:
5262
diff
changeset
|
2002 continue |
cba2a689117d
parents: make it match the doc when called on a file
Patrick Mezard <pmezard@gmail.com>
parents:
5262
diff
changeset
|
2003 try: |
cba2a689117d
parents: make it match the doc when called on a file
Patrick Mezard <pmezard@gmail.com>
parents:
5262
diff
changeset
|
2004 filenodes.append(cp.filenode(file_)) |
cba2a689117d
parents: make it match the doc when called on a file
Patrick Mezard <pmezard@gmail.com>
parents:
5262
diff
changeset
|
2005 except revlog.LookupError: |
cba2a689117d
parents: make it match the doc when called on a file
Patrick Mezard <pmezard@gmail.com>
parents:
5262
diff
changeset
|
2006 pass |
cba2a689117d
parents: make it match the doc when called on a file
Patrick Mezard <pmezard@gmail.com>
parents:
5262
diff
changeset
|
2007 if not filenodes: |
cba2a689117d
parents: make it match the doc when called on a file
Patrick Mezard <pmezard@gmail.com>
parents:
5262
diff
changeset
|
2008 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:
5262
diff
changeset
|
2009 fl = repo.file(file_) |
cba2a689117d
parents: make it match the doc when called on a file
Patrick Mezard <pmezard@gmail.com>
parents:
5262
diff
changeset
|
2010 p = [repo.lookup(fl.linkrev(fn)) for fn in filenodes] |
255 | 2011 else: |
5298
cba2a689117d
parents: make it match the doc when called on a file
Patrick Mezard <pmezard@gmail.com>
parents:
5262
diff
changeset
|
2012 p = [cp.node() for cp in ctx.parents()] |
255 | 2013 |
3646
b4ad640a3bcf
templates: move changeset templating bits to cmdutils
Matt Mackall <mpm@selenic.com>
parents:
3634
diff
changeset
|
2014 displayer = cmdutil.show_changeset(ui, repo, opts) |
255 | 2015 for n in p: |
1092 | 2016 if n != nullid: |
3656
e50891e461e4
Consolidate brinfo handling
Matt Mackall <mpm@selenic.com>
parents:
3648
diff
changeset
|
2017 displayer.show(changenode=n) |
255 | 2018 |
1858
9fab6e903bae
Make hg paths and hg debugconfig work with -R/--repository option.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1857
diff
changeset
|
2019 def paths(ui, repo, search=None): |
1437
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2020 """show definition of symbolic path names |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2021 |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2022 Show definition of symbolic path name NAME. If no name is given, show |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2023 definition of available names. |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2024 |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2025 Path names are defined in the [paths] section of /etc/mercurial/hgrc |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2026 and $HOME/.hgrc. If run inside a repository, .hg/hgrc is used, too. |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2027 """ |
779 | 2028 if search: |
2029 for name, path in ui.configitems("paths"): | |
2030 if name == search: | |
2031 ui.write("%s\n" % path) | |
2032 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
|
2033 ui.warn(_("not found!\n")) |
779 | 2034 return 1 |
2035 else: | |
2036 for name, path in ui.configitems("paths"): | |
2037 ui.write("%s = %s\n" % (name, path)) | |
2038 | |
5238
20817af258d8
pull -u: if "url#rev" was given, update to rev
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
5236
diff
changeset
|
2039 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
|
2040 if modheads == 0: |
ced2d3620f95
add merge command. means same thing as "update -m".
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
1996
diff
changeset
|
2041 return |
ced2d3620f95
add merge command. means same thing as "update -m".
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
1996
diff
changeset
|
2042 if optupdate: |
5238
20817af258d8
pull -u: if "url#rev" was given, update to rev
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
5236
diff
changeset
|
2043 if modheads <= 1 or checkout: |
20817af258d8
pull -u: if "url#rev" was given, update to rev
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
5236
diff
changeset
|
2044 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
|
2045 else: |
ced2d3620f95
add merge command. means same thing as "update -m".
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
1996
diff
changeset
|
2046 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
|
2047 if modheads > 1: |
ced2d3620f95
add merge command. means same thing as "update -m".
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
1996
diff
changeset
|
2048 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
|
2049 else: |
ced2d3620f95
add merge command. means same thing as "update -m".
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
1996
diff
changeset
|
2050 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
|
2051 |
404 | 2052 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
|
2053 """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
|
2054 |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2055 Pull changes from a remote repository to a local one. |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2056 |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2057 This finds all changes from the repository at the specified path |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2058 or URL and adds them to the local repository. By default, this |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2059 does not update the copy of the project in the working directory. |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2060 |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2061 Valid URLs are of the form: |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2062 |
3549
db946221a58a
Some clarifications for pull/push protocols:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3539
diff
changeset
|
2063 local/filesystem/path (or file://local/filesystem/path) |
2589
dc63db82b530
disambiguate help about url syntax
"Aurelien Jacobs <aurel@gnuage.org>"
parents:
2580
diff
changeset
|
2064 http://[user@]host[:port]/[path] |
dc63db82b530
disambiguate help about url syntax
"Aurelien Jacobs <aurel@gnuage.org>"
parents:
2580
diff
changeset
|
2065 https://[user@]host[:port]/[path] |
dc63db82b530
disambiguate help about url syntax
"Aurelien Jacobs <aurel@gnuage.org>"
parents:
2580
diff
changeset
|
2066 ssh://[user@]host[:port]/[path] |
3549
db946221a58a
Some clarifications for pull/push protocols:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3539
diff
changeset
|
2067 static-http://host[:port]/[path] |
db946221a58a
Some clarifications for pull/push protocols:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3539
diff
changeset
|
2068 |
db946221a58a
Some clarifications for pull/push protocols:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3539
diff
changeset
|
2069 Paths in the local filesystem can either point to Mercurial |
db946221a58a
Some clarifications for pull/push protocols:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3539
diff
changeset
|
2070 repositories or to bundle files (as created by 'hg bundle' or |
db946221a58a
Some clarifications for pull/push protocols:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3539
diff
changeset
|
2071 'hg incoming --bundle'). The static-http:// protocol, albeit slow, |
db946221a58a
Some clarifications for pull/push protocols:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3539
diff
changeset
|
2072 allows access to a Mercurial repository where you simply use a web |
db946221a58a
Some clarifications for pull/push protocols:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3539
diff
changeset
|
2073 server to publish the .hg directory as static content. |
1437
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2074 |
4478
b2b55acbacdd
Add support for url#id syntax
Matt Mackall <mpm@selenic.com>
parents:
4474
diff
changeset
|
2075 An optional identifier after # indicates a particular branch, tag, |
b2b55acbacdd
Add support for url#id syntax
Matt Mackall <mpm@selenic.com>
parents:
4474
diff
changeset
|
2076 or changeset to pull. |
b2b55acbacdd
Add support for url#id syntax
Matt Mackall <mpm@selenic.com>
parents:
4474
diff
changeset
|
2077 |
1979
d545fa1426b9
More detailed documentation about ssh:// URLs; fixes issue170.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1974
diff
changeset
|
2078 Some notes about using SSH with Mercurial: |
d545fa1426b9
More detailed documentation about ssh:// URLs; fixes issue170.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1974
diff
changeset
|
2079 - SSH requires an accessible shell account on the destination machine |
d545fa1426b9
More detailed documentation about ssh:// URLs; fixes issue170.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1974
diff
changeset
|
2080 and a copy of hg in the remote path or specified with as remotecmd. |
2589
dc63db82b530
disambiguate help about url syntax
"Aurelien Jacobs <aurel@gnuage.org>"
parents:
2580
diff
changeset
|
2081 - path is relative to the remote user's home directory by default. |
2590
911b56853fdd
Additional information about URLs in pull/push/clone/init:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
2589
diff
changeset
|
2082 Use an extra slash at the start of a path to specify an absolute path: |
911b56853fdd
Additional information about URLs in pull/push/clone/init:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
2589
diff
changeset
|
2083 ssh://example.com//tmp/repository |
1979
d545fa1426b9
More detailed documentation about ssh:// URLs; fixes issue170.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1974
diff
changeset
|
2084 - Mercurial doesn't use its own compression via SSH; the right thing |
3466
be2bf7263276
Corrected SSH configuration example in pull help.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3462
diff
changeset
|
2085 to do is to configure it in your ~/.ssh/config, e.g.: |
1979
d545fa1426b9
More detailed documentation about ssh:// URLs; fixes issue170.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1974
diff
changeset
|
2086 Host *.mylocalnetwork.example.com |
3466
be2bf7263276
Corrected SSH configuration example in pull help.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3462
diff
changeset
|
2087 Compression no |
1979
d545fa1426b9
More detailed documentation about ssh:// URLs; fixes issue170.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1974
diff
changeset
|
2088 Host * |
3466
be2bf7263276
Corrected SSH configuration example in pull help.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3462
diff
changeset
|
2089 Compression yes |
1979
d545fa1426b9
More detailed documentation about ssh:// URLs; fixes issue170.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1974
diff
changeset
|
2090 Alternatively specify "ssh -C" as your ssh command in your hgrc or |
d545fa1426b9
More detailed documentation about ssh:// URLs; fixes issue170.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1974
diff
changeset
|
2091 with the --ssh command line option. |
1437
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2092 """ |
5241 | 2093 source, revs, checkout = hg.parseurl(ui.expandpath(source), opts['rev']) |
4549
0c61124ad877
dispatch: move dispatching code to cmdutil
Matt Mackall <mpm@selenic.com>
parents:
4548
diff
changeset
|
2094 cmdutil.setremoteconfig(ui, opts) |
963
84355e3e4493
Add -e and --remotecmd for clone and pull too
mpm@selenic.com
parents:
961
diff
changeset
|
2095 |
246
96cde50a746f
Migrate rawcommit, import, export, history, and merge
mpm@selenic.com
parents:
245
diff
changeset
|
2096 other = hg.repository(ui, source) |
2473
30c267cb4c2f
change some repo messages in small ways.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2461
diff
changeset
|
2097 ui.status(_('pulling from %s\n') % (source)) |
4478
b2b55acbacdd
Add support for url#id syntax
Matt Mackall <mpm@selenic.com>
parents:
4474
diff
changeset
|
2098 if revs: |
5255
65dc707606ed
Push capability checking into protocol-level code.
Bryan O'Sullivan <bos@serpentine.com>
parents:
5241
diff
changeset
|
2099 try: |
4478
b2b55acbacdd
Add support for url#id syntax
Matt Mackall <mpm@selenic.com>
parents:
4474
diff
changeset
|
2100 revs = [other.lookup(rev) for rev in revs] |
5255
65dc707606ed
Push capability checking into protocol-level code.
Bryan O'Sullivan <bos@serpentine.com>
parents:
5241
diff
changeset
|
2101 except repo.NoCapability: |
65dc707606ed
Push capability checking into protocol-level code.
Bryan O'Sullivan <bos@serpentine.com>
parents:
5241
diff
changeset
|
2102 error = _("Other repository doesn't support revision lookup, " |
65dc707606ed
Push capability checking into protocol-level code.
Bryan O'Sullivan <bos@serpentine.com>
parents:
5241
diff
changeset
|
2103 "so a rev cannot be specified.") |
3448
6ca49c5fe268
Stop erroring out pull -r and clone -r if repository isn't local.
Eric Hopper <hopper@omnifarious.org>
parents:
3436
diff
changeset
|
2104 raise util.Abort(error) |
4478
b2b55acbacdd
Add support for url#id syntax
Matt Mackall <mpm@selenic.com>
parents:
4474
diff
changeset
|
2105 |
2019
ced2d3620f95
add merge command. means same thing as "update -m".
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
1996
diff
changeset
|
2106 modheads = repo.pull(other, heads=revs, force=opts['force']) |
5238
20817af258d8
pull -u: if "url#rev" was given, update to rev
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
5236
diff
changeset
|
2107 return postincoming(ui, repo, modheads, opts['update'], checkout) |
246
96cde50a746f
Migrate rawcommit, import, export, history, and merge
mpm@selenic.com
parents:
245
diff
changeset
|
2108 |
2494
73ac95671788
push, outgoing, bundle: fall back to "default" if "default-push" not defined
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2493
diff
changeset
|
2109 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
|
2110 """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
|
2111 |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2112 Push changes from the local repository to the given destination. |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2113 |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2114 This is the symmetrical operation for pull. It helps to move |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2115 changes from the current repository to a different one. If the |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2116 destination is local this is identical to a pull in that directory |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2117 from the current one. |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2118 |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2119 By default, push will refuse to run if it detects the result would |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2120 increase the number of remote heads. This generally indicates the |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2121 the client has forgotten to sync and merge before pushing. |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2122 |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2123 Valid URLs are of the form: |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2124 |
3549
db946221a58a
Some clarifications for pull/push protocols:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3539
diff
changeset
|
2125 local/filesystem/path (or file://local/filesystem/path) |
2589
dc63db82b530
disambiguate help about url syntax
"Aurelien Jacobs <aurel@gnuage.org>"
parents:
2580
diff
changeset
|
2126 ssh://[user@]host[:port]/[path] |
3549
db946221a58a
Some clarifications for pull/push protocols:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3539
diff
changeset
|
2127 http://[user@]host[:port]/[path] |
db946221a58a
Some clarifications for pull/push protocols:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3539
diff
changeset
|
2128 https://[user@]host[:port]/[path] |
1437
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2129 |
4478
b2b55acbacdd
Add support for url#id syntax
Matt Mackall <mpm@selenic.com>
parents:
4474
diff
changeset
|
2130 An optional identifier after # indicates a particular branch, tag, |
b2b55acbacdd
Add support for url#id syntax
Matt Mackall <mpm@selenic.com>
parents:
4474
diff
changeset
|
2131 or changeset to push. |
b2b55acbacdd
Add support for url#id syntax
Matt Mackall <mpm@selenic.com>
parents:
4474
diff
changeset
|
2132 |
1979
d545fa1426b9
More detailed documentation about ssh:// URLs; fixes issue170.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1974
diff
changeset
|
2133 Look at the help text for the pull command for important details |
d545fa1426b9
More detailed documentation about ssh:// URLs; fixes issue170.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1974
diff
changeset
|
2134 about ssh:// URLs. |
2590
911b56853fdd
Additional information about URLs in pull/push/clone/init:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
2589
diff
changeset
|
2135 |
3549
db946221a58a
Some clarifications for pull/push protocols:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3539
diff
changeset
|
2136 Pushing to http:// and https:// URLs is only possible, if this |
db946221a58a
Some clarifications for pull/push protocols:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3539
diff
changeset
|
2137 feature is explicitly enabled on the remote Mercurial server. |
1437
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2138 """ |
5241 | 2139 dest, revs, checkout = hg.parseurl( |
4478
b2b55acbacdd
Add support for url#id syntax
Matt Mackall <mpm@selenic.com>
parents:
4474
diff
changeset
|
2140 ui.expandpath(dest or 'default-push', dest or 'default'), opts['rev']) |
4549
0c61124ad877
dispatch: move dispatching code to cmdutil
Matt Mackall <mpm@selenic.com>
parents:
4548
diff
changeset
|
2141 cmdutil.setremoteconfig(ui, opts) |
961 | 2142 |
640
b48b91d3fb4a
Switch push over to the new scheme
Matt Mackall <mpm@selenic.com>
parents:
639
diff
changeset
|
2143 other = hg.repository(ui, dest) |
2473
30c267cb4c2f
change some repo messages in small ways.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2461
diff
changeset
|
2144 ui.status('pushing to %s\n' % (dest)) |
4478
b2b55acbacdd
Add support for url#id syntax
Matt Mackall <mpm@selenic.com>
parents:
4474
diff
changeset
|
2145 if revs: |
b2b55acbacdd
Add support for url#id syntax
Matt Mackall <mpm@selenic.com>
parents:
4474
diff
changeset
|
2146 revs = [repo.lookup(rev) for rev in revs] |
1781
284fc722c342
add an optional argument to push only the specified revisions (push -r)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1712
diff
changeset
|
2147 r = repo.push(other, opts['force'], revs=revs) |
2019
ced2d3620f95
add merge command. means same thing as "update -m".
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
1996
diff
changeset
|
2148 return r == 0 |
319 | 2149 |
3660 | 2150 def rawcommit(ui, repo, *pats, **opts): |
1812
a81f99dfaa2a
fix the synopsis of some commands, mark rawcommit as deprecated in short help
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1811
diff
changeset
|
2151 """raw commit interface (DEPRECATED) |
1811
6cb548cffdf5
resync commands.py docstrings with hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1804
diff
changeset
|
2152 |
6cb548cffdf5
resync commands.py docstrings with hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1804
diff
changeset
|
2153 (DEPRECATED) |
1437
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2154 Lowlevel commit, for use in helper scripts. |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2155 |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2156 This command is not intended to be used by normal users, as it is |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2157 primarily useful for importing from other SCMs. |
1657
dbb8bba48510
deprecate the rawcommit command
Matt Mackall <mpm@selenic.com>
parents:
1654
diff
changeset
|
2158 |
dbb8bba48510
deprecate the rawcommit command
Matt Mackall <mpm@selenic.com>
parents:
1654
diff
changeset
|
2159 This command is now deprecated and will be removed in a future |
dbb8bba48510
deprecate the rawcommit command
Matt Mackall <mpm@selenic.com>
parents:
1654
diff
changeset
|
2160 release, please use debugsetparents and commit instead. |
1437
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2161 """ |
1657
dbb8bba48510
deprecate the rawcommit command
Matt Mackall <mpm@selenic.com>
parents:
1654
diff
changeset
|
2162 |
dbb8bba48510
deprecate the rawcommit command
Matt Mackall <mpm@selenic.com>
parents:
1654
diff
changeset
|
2163 ui.warn(_("(the rawcommit command is deprecated)\n")) |
dbb8bba48510
deprecate the rawcommit command
Matt Mackall <mpm@selenic.com>
parents:
1654
diff
changeset
|
2164 |
4549
0c61124ad877
dispatch: move dispatching code to cmdutil
Matt Mackall <mpm@selenic.com>
parents:
4548
diff
changeset
|
2165 message = cmdutil.logmessage(opts) |
3660 | 2166 |
2167 files, match, anypats = cmdutil.matchpats(repo, pats, opts) | |
2168 if opts['files']: | |
2169 files += open(opts['files']).read().splitlines() | |
2170 | |
2171 parents = [repo.lookup(p) for p in opts['parent']] | |
500
ebc4714a7632
[PATCH] Clean up destination directory if a clone fails.
mpm@selenic.com
parents:
499
diff
changeset
|
2172 |
1202
71111d796e40
Commit date validation: more stringent checks, more useful error messages.
Bryan O'Sullivan <bos@serpentine.com>
parents:
1194
diff
changeset
|
2173 try: |
3666
025f68f22ae2
move write_bundle to changegroup.py
Matt Mackall <mpm@selenic.com>
parents:
3665
diff
changeset
|
2174 repo.rawcommit(files, message, opts['user'], opts['date'], *parents) |
1202
71111d796e40
Commit date validation: more stringent checks, more useful error messages.
Bryan O'Sullivan <bos@serpentine.com>
parents:
1194
diff
changeset
|
2175 except ValueError, inst: |
71111d796e40
Commit date validation: more stringent checks, more useful error messages.
Bryan O'Sullivan <bos@serpentine.com>
parents:
1194
diff
changeset
|
2176 raise util.Abort(str(inst)) |
500
ebc4714a7632
[PATCH] Clean up destination directory if a clone fails.
mpm@selenic.com
parents:
499
diff
changeset
|
2177 |
245 | 2178 def recover(ui, repo): |
1437
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2179 """roll back an interrupted transaction |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2180 |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2181 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
|
2182 |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2183 This command tries to fix the repository status after an interrupted |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2184 operation. It should only be necessary when Mercurial suggests it. |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2185 """ |
1516
0b1b029b4de3
Automatically run "verify" whenever we run "recover"
Matt Mackall <mpm@selenic.com>
parents:
1514
diff
changeset
|
2186 if repo.recover(): |
2802 | 2187 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
|
2188 return 1 |
245 | 2189 |
2179
520dd3d28e9b
add --after option to remove command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2175
diff
changeset
|
2190 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
|
2191 """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
|
2192 |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2193 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
|
2194 |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2195 This only removes files from the current branch, not from the |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2196 entire project history. If the files still exist in the working |
2179
520dd3d28e9b
add --after option to remove command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2175
diff
changeset
|
2197 directory, they will be deleted from it. If invoked with --after, |
4392
9770d260a405
Make rm --after simply mark files as removed, unless --force is also given
Brendan Cully <brendan@kublai.com>
parents:
4382
diff
changeset
|
2198 files are marked as removed, but not actually unlinked unless --force |
4394
a6436e9333db
Also restore old rm -A behavior for inexact patterns
Brendan Cully <brendan@kublai.com>
parents:
4393
diff
changeset
|
2199 is also given. Without exact file names, --after will only mark |
4393
cf5f35ec4720
Fix rm -A with no patterns, which I just broke.
Brendan Cully <brendan@kublai.com>
parents:
4392
diff
changeset
|
2200 files as removed if they are no longer in the working directory. |
2309
b2f37c7026ca
remove: rewrite to be ~400x faster, bit more friendly
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2301
diff
changeset
|
2201 |
3831
531c116b2028
Add doc notes about revert and hg status vs diff
Matt Mackall <mpm@selenic.com>
parents:
3828
diff
changeset
|
2202 This command schedules the files to be removed at the next commit. |
531c116b2028
Add doc notes about revert and hg status vs diff
Matt Mackall <mpm@selenic.com>
parents:
3828
diff
changeset
|
2203 To undo a remove before that, see hg revert. |
531c116b2028
Add doc notes about revert and hg status vs diff
Matt Mackall <mpm@selenic.com>
parents:
3828
diff
changeset
|
2204 |
2309
b2f37c7026ca
remove: rewrite to be ~400x faster, bit more friendly
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2301
diff
changeset
|
2205 Modified files and added files are not removed by default. To |
b2f37c7026ca
remove: rewrite to be ~400x faster, bit more friendly
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2301
diff
changeset
|
2206 remove them, use the -f/--force option. |
1437
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2207 """ |
2179
520dd3d28e9b
add --after option to remove command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2175
diff
changeset
|
2208 if not opts['after'] and not pats: |
520dd3d28e9b
add --after option to remove command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2175
diff
changeset
|
2209 raise util.Abort(_('no files specified')) |
2881
cf98cd70d2c4
move walk and matchpats from commands to cmdutil.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2877
diff
changeset
|
2210 files, matchfn, anypats = cmdutil.matchpats(repo, pats, opts) |
2309
b2f37c7026ca
remove: rewrite to be ~400x faster, bit more friendly
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2301
diff
changeset
|
2211 exact = dict.fromkeys(files) |
2874
3d6efcbbd1c9
remove localrepository.changes.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2873
diff
changeset
|
2212 mardu = map(dict.fromkeys, repo.status(files=files, match=matchfn))[:5] |
2309
b2f37c7026ca
remove: rewrite to be ~400x faster, bit more friendly
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2301
diff
changeset
|
2213 modified, added, removed, deleted, unknown = mardu |
b2f37c7026ca
remove: rewrite to be ~400x faster, bit more friendly
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2301
diff
changeset
|
2214 remove, forget = [], [] |
2881
cf98cd70d2c4
move walk and matchpats from commands to cmdutil.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2877
diff
changeset
|
2215 for src, abs, rel, exact in cmdutil.walk(repo, pats, opts): |
1189
4cbcc54695b2
Make removal check more complete and informative.
Bryan O'Sullivan <bos@serpentine.com>
parents:
1188
diff
changeset
|
2216 reason = None |
4392
9770d260a405
Make rm --after simply mark files as removed, unless --force is also given
Brendan Cully <brendan@kublai.com>
parents:
4382
diff
changeset
|
2217 if abs in modified and not opts['force']: |
2309
b2f37c7026ca
remove: rewrite to be ~400x faster, bit more friendly
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2301
diff
changeset
|
2218 reason = _('is modified (use -f to force removal)') |
b2f37c7026ca
remove: rewrite to be ~400x faster, bit more friendly
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2301
diff
changeset
|
2219 elif abs in added: |
b2f37c7026ca
remove: rewrite to be ~400x faster, bit more friendly
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2301
diff
changeset
|
2220 if opts['force']: |
b2f37c7026ca
remove: rewrite to be ~400x faster, bit more friendly
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2301
diff
changeset
|
2221 forget.append(abs) |
b2f37c7026ca
remove: rewrite to be ~400x faster, bit more friendly
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2301
diff
changeset
|
2222 continue |
b2f37c7026ca
remove: rewrite to be ~400x faster, bit more friendly
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2301
diff
changeset
|
2223 reason = _('has been marked for add (use -f to force removal)') |
4950
30847b8af7ca
dirstate: add __contains__ and make __getitem__ more useful
Matt Mackall <mpm@selenic.com>
parents:
4948
diff
changeset
|
2224 elif abs not in repo.dirstate: |
1615
83238c1db6de
Cleanup of indentation, spacing, newlines, strings and line length
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1607
diff
changeset
|
2225 reason = _('is not managed') |
4394
a6436e9333db
Also restore old rm -A behavior for inexact patterns
Brendan Cully <brendan@kublai.com>
parents:
4393
diff
changeset
|
2226 elif opts['after'] and not exact and abs not in deleted: |
4393
cf5f35ec4720
Fix rm -A with no patterns, which I just broke.
Brendan Cully <brendan@kublai.com>
parents:
4392
diff
changeset
|
2227 continue |
2309
b2f37c7026ca
remove: rewrite to be ~400x faster, bit more friendly
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2301
diff
changeset
|
2228 elif abs in removed: |
b2f37c7026ca
remove: rewrite to be ~400x faster, bit more friendly
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2301
diff
changeset
|
2229 continue |
1255
e825dfea3823
Get all commands that operate on files to honour --verbose and --quiet.
Bryan O'Sullivan <bos@serpentine.com>
parents:
1254
diff
changeset
|
2230 if reason: |
1615
83238c1db6de
Cleanup of indentation, spacing, newlines, strings and line length
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1607
diff
changeset
|
2231 if exact: |
83238c1db6de
Cleanup of indentation, spacing, newlines, strings and line length
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1607
diff
changeset
|
2232 ui.warn(_('not removing %s: file %s\n') % (rel, reason)) |
1189
4cbcc54695b2
Make removal check more complete and informative.
Bryan O'Sullivan <bos@serpentine.com>
parents:
1188
diff
changeset
|
2233 else: |
1615
83238c1db6de
Cleanup of indentation, spacing, newlines, strings and line length
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1607
diff
changeset
|
2234 if ui.verbose or not exact: |
83238c1db6de
Cleanup of indentation, spacing, newlines, strings and line length
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1607
diff
changeset
|
2235 ui.status(_('removing %s\n') % rel) |
2309
b2f37c7026ca
remove: rewrite to be ~400x faster, bit more friendly
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2301
diff
changeset
|
2236 remove.append(abs) |
b2f37c7026ca
remove: rewrite to be ~400x faster, bit more friendly
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2301
diff
changeset
|
2237 repo.forget(forget) |
4392
9770d260a405
Make rm --after simply mark files as removed, unless --force is also given
Brendan Cully <brendan@kublai.com>
parents:
4382
diff
changeset
|
2238 repo.remove(remove, unlink=opts['force'] or not opts['after']) |
245 | 2239 |
1253
a45e717c61a8
Add rename/mv command.
Bryan O'Sullivan <bos@serpentine.com>
parents:
1250
diff
changeset
|
2240 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
|
2241 """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
|
2242 |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2243 Mark dest as copies of sources; mark sources for deletion. If |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2244 dest is a directory, copies are put in that directory. If dest is |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2245 a file, there can only be one source. |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2246 |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2247 By default, this command copies the contents of files as they |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2248 stand in the working directory. If invoked with --after, the |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2249 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
|
2250 |
3831
531c116b2028
Add doc notes about revert and hg status vs diff
Matt Mackall <mpm@selenic.com>
parents:
3828
diff
changeset
|
2251 This command takes effect in the next commit. To undo a rename |
531c116b2028
Add doc notes about revert and hg status vs diff
Matt Mackall <mpm@selenic.com>
parents:
3828
diff
changeset
|
2252 before that, see hg revert. |
1437
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2253 """ |
4958 | 2254 wlock = repo.wlock(False) |
4959
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2255 try: |
4961
126f527b3ba3
Make repo locks recursive, eliminate all passing of lock/wlock
Matt Mackall <mpm@selenic.com>
parents:
4959
diff
changeset
|
2256 errs, copied = docopy(ui, repo, pats, opts) |
4959
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2257 names = [] |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2258 for abs, rel, exact in copied: |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2259 if ui.verbose or not exact: |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2260 ui.status(_('removing %s\n') % rel) |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2261 names.append(abs) |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2262 if not opts.get('dry_run'): |
4961
126f527b3ba3
Make repo locks recursive, eliminate all passing of lock/wlock
Matt Mackall <mpm@selenic.com>
parents:
4959
diff
changeset
|
2263 repo.remove(names, True) |
4959
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2264 return errs |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2265 finally: |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2266 del wlock |
1253
a45e717c61a8
Add rename/mv command.
Bryan O'Sullivan <bos@serpentine.com>
parents:
1250
diff
changeset
|
2267 |
1472
3c909a747d7f
make revert use standard matcher
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1470
diff
changeset
|
2268 def revert(ui, repo, *pats, **opts): |
2227
4f072bb06e89
deprecate undo command, replace with rollback command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2212
diff
changeset
|
2269 """revert files or dirs to their states as of some revision |
2204
eb5fa83ffcfa
fix doc comments for revert command. people found them confusing.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2189
diff
changeset
|
2270 |
2212
8164e3f31638
revert: require explicit revision when working dir has two parents.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2204
diff
changeset
|
2271 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
|
2272 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
|
2273 This restores the contents of the affected files to an unmodified |
3831
531c116b2028
Add doc notes about revert and hg status vs diff
Matt Mackall <mpm@selenic.com>
parents:
3828
diff
changeset
|
2274 state and unschedules adds, removes, copies, and renames. If the |
531c116b2028
Add doc notes about revert and hg status vs diff
Matt Mackall <mpm@selenic.com>
parents:
3828
diff
changeset
|
2275 working directory has two parents, you must explicitly specify the |
531c116b2028
Add doc notes about revert and hg status vs diff
Matt Mackall <mpm@selenic.com>
parents:
3828
diff
changeset
|
2276 revision to revert to. |
1811
6cb548cffdf5
resync commands.py docstrings with hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1804
diff
changeset
|
2277 |
2036
c9226bcc288d
Don't abort when backup files already exist. Don't allow alternative names.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
2029
diff
changeset
|
2278 Modified files are saved with a .orig suffix before reverting. |
c9226bcc288d
Don't abort when backup files already exist. Don't allow alternative names.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
2029
diff
changeset
|
2279 To disable these backups, use --no-backup. |
2029
d436b21b20dc
rewrite revert command. fix issues 93, 123, 147.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2022
diff
changeset
|
2280 |
3013
2b255c3478dc
minor docstring fix for revert
TK Soh <teekaysoh@yahoo.com>
parents:
3011
diff
changeset
|
2281 Using the -r option, revert the given files or directories to their |
2b255c3478dc
minor docstring fix for revert
TK Soh <teekaysoh@yahoo.com>
parents:
3011
diff
changeset
|
2282 contents as of a specific revision. This can be helpful to "roll |
1811
6cb548cffdf5
resync commands.py docstrings with hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1804
diff
changeset
|
2283 back" some or all of a change that should not have been committed. |
6cb548cffdf5
resync commands.py docstrings with hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1804
diff
changeset
|
2284 |
6cb548cffdf5
resync commands.py docstrings with hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1804
diff
changeset
|
2285 Revert modifies the working directory. It does not commit any |
2204
eb5fa83ffcfa
fix doc comments for revert command. people found them confusing.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2189
diff
changeset
|
2286 changes, or change the parent of the working directory. If you |
eb5fa83ffcfa
fix doc comments for revert command. people found them confusing.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2189
diff
changeset
|
2287 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
|
2288 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
|
2289 afterwards. |
1437
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2290 |
4803
7db38bfb307e
Fix issue589 wording problem
Patrick Mezard <pmezard@gmail.com>
parents:
4798
diff
changeset
|
2291 If a file has been deleted, it is restored. If the executable |
1437
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2292 mode of a file was changed, it is reset. |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2293 |
1472
3c909a747d7f
make revert use standard matcher
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1470
diff
changeset
|
2294 If names are given, all files matching the names are reverted. |
1437
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2295 |
2965
890e285c52a1
revert: require --all to revert all files.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2963
diff
changeset
|
2296 If no arguments are given, no files are reverted. |
1437
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2297 """ |
2965
890e285c52a1
revert: require --all to revert all files.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2963
diff
changeset
|
2298 |
3818
120be84f33de
Add --date support to update and revert
Matt Mackall <mpm@selenic.com>
parents:
3816
diff
changeset
|
2299 if opts["date"]: |
120be84f33de
Add --date support to update and revert
Matt Mackall <mpm@selenic.com>
parents:
3816
diff
changeset
|
2300 if opts["rev"]: |
120be84f33de
Add --date support to update and revert
Matt Mackall <mpm@selenic.com>
parents:
3816
diff
changeset
|
2301 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:
3816
diff
changeset
|
2302 opts["rev"] = cmdutil.finddate(ui, repo, opts["date"]) |
120be84f33de
Add --date support to update and revert
Matt Mackall <mpm@selenic.com>
parents:
3816
diff
changeset
|
2303 |
2965
890e285c52a1
revert: require --all to revert all files.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2963
diff
changeset
|
2304 if not pats and not opts['all']: |
3017
ea2a9c13afc6
Add a hint for revert --all when aborting
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3013
diff
changeset
|
2305 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:
3013
diff
changeset
|
2306 'use --all to revert the whole repo')) |
2965
890e285c52a1
revert: require --all to revert all files.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2963
diff
changeset
|
2307 |
2212
8164e3f31638
revert: require explicit revision when working dir has two parents.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2204
diff
changeset
|
2308 parent, p2 = repo.dirstate.parents() |
3127
81da3c45aabd
Move defaultrev into changectx
Brendan Cully <brendan@kublai.com>
parents:
3092
diff
changeset
|
2309 if not opts['rev'] and p2 != nullid: |
81da3c45aabd
Move defaultrev into changectx
Brendan Cully <brendan@kublai.com>
parents:
3092
diff
changeset
|
2310 raise util.Abort(_('uncommitted merge - please provide a ' |
81da3c45aabd
Move defaultrev into changectx
Brendan Cully <brendan@kublai.com>
parents:
3092
diff
changeset
|
2311 'specific revision')) |
3972
356e20d46b34
commands.py: use contexts in various places (debug*state, revert)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3951
diff
changeset
|
2312 ctx = repo.changectx(opts['rev']) |
356e20d46b34
commands.py: use contexts in various places (debug*state, revert)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3951
diff
changeset
|
2313 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
|
2314 mf = ctx.manifest() |
2407
8fe3d60b7f19
revert: better fix for not printing 'reverting' message
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2406
diff
changeset
|
2315 if node == parent: |
8fe3d60b7f19
revert: better fix for not printing 'reverting' message
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2406
diff
changeset
|
2316 pmf = mf |
8fe3d60b7f19
revert: better fix for not printing 'reverting' message
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2406
diff
changeset
|
2317 else: |
8fe3d60b7f19
revert: better fix for not printing 'reverting' message
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2406
diff
changeset
|
2318 pmf = None |
2029
d436b21b20dc
rewrite revert command. fix issues 93, 123, 147.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2022
diff
changeset
|
2319 |
2042
a514c7509fa9
small changes to revert command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2037
diff
changeset
|
2320 # 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
|
2321 # 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
|
2322 # but not other. |
a514c7509fa9
small changes to revert command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2037
diff
changeset
|
2323 |
2029
d436b21b20dc
rewrite revert command. fix issues 93, 123, 147.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2022
diff
changeset
|
2324 names = {} |
2042
a514c7509fa9
small changes to revert command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2037
diff
changeset
|
2325 target_only = {} |
a514c7509fa9
small changes to revert command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2037
diff
changeset
|
2326 |
4959
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2327 wlock = repo.wlock() |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2328 try: |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2329 # walk dirstate. |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2330 for src, abs, rel, exact in cmdutil.walk(repo, pats, opts, |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2331 badmatch=mf.has_key): |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2332 names[abs] = (rel, exact) |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2333 if src == 'b': |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2334 target_only[abs] = True |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2335 |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2336 # walk target manifest. |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2337 |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2338 def badmatch(path): |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2339 if path in names: |
4225
281f9f8f1bd4
Fix confusing message from hg revert (issue332)
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4217
diff
changeset
|
2340 return True |
4959
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2341 path_ = path + '/' |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2342 for f in names: |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2343 if f.startswith(path_): |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2344 return True |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2345 return False |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2346 |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2347 for src, abs, rel, exact in cmdutil.walk(repo, pats, opts, node=node, |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2348 badmatch=badmatch): |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2349 if abs in names or src == 'b': |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2350 continue |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2351 names[abs] = (rel, exact) |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2352 target_only[abs] = True |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2353 |
4961
126f527b3ba3
Make repo locks recursive, eliminate all passing of lock/wlock
Matt Mackall <mpm@selenic.com>
parents:
4959
diff
changeset
|
2354 changes = repo.status(match=names.has_key)[:5] |
4959
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2355 modified, added, removed, deleted, unknown = map(dict.fromkeys, changes) |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2356 |
5263 | 2357 # if f is a rename, also revert the source |
2358 cwd = repo.getcwd() | |
2359 for f in added: | |
2360 src = repo.dirstate.copied(f) | |
2361 if src and src not in names and repo.dirstate[src] == 'r': | |
2362 removed[src] = None | |
2363 names[src] = (repo.pathto(src, cwd), True) | |
2364 | |
4959
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2365 revert = ([], _('reverting %s\n')) |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2366 add = ([], _('adding %s\n')) |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2367 remove = ([], _('removing %s\n')) |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2368 forget = ([], _('forgetting %s\n')) |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2369 undelete = ([], _('undeleting %s\n')) |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2370 update = {} |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2371 |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2372 disptable = ( |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2373 # dispatch table: |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2374 # file state |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2375 # action if in target manifest |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2376 # action if not in target manifest |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2377 # make backup if in target manifest |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2378 # make backup if not in target manifest |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2379 (modified, revert, remove, True, True), |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2380 (added, revert, forget, True, False), |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2381 (removed, undelete, None, False, False), |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2382 (deleted, revert, remove, False, False), |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2383 (unknown, add, None, True, False), |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2384 (target_only, add, None, False, False), |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2385 ) |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2386 |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2387 entries = names.items() |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2388 entries.sort() |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2389 |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2390 for abs, (rel, exact) in entries: |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2391 mfentry = mf.get(abs) |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2392 target = repo.wjoin(abs) |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2393 def handle(xlist, dobackup): |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2394 xlist[0].append(abs) |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2395 update[abs] = 1 |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2396 if dobackup and not opts['no_backup'] and util.lexists(target): |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2397 bakname = "%s.orig" % rel |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2398 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:
4958
diff
changeset
|
2399 (rel, bakname)) |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2400 if not opts.get('dry_run'): |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2401 util.copyfile(target, bakname) |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2402 if ui.verbose or not exact: |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2403 ui.status(xlist[1] % rel) |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2404 for table, hitlist, misslist, backuphit, backupmiss in disptable: |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2405 if abs not in table: continue |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2406 # file has changed in dirstate |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2407 if mfentry: |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2408 handle(hitlist, backuphit) |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2409 elif misslist is not None: |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2410 handle(misslist, backupmiss) |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2411 else: |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2412 if exact: ui.warn(_('file not managed: %s\n') % rel) |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2413 break |
2029
d436b21b20dc
rewrite revert command. fix issues 93, 123, 147.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2022
diff
changeset
|
2414 else: |
4959
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2415 # file has not changed in dirstate |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2416 if node == parent: |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2417 if exact: ui.warn(_('no changes needed to %s\n') % rel) |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2418 continue |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2419 if pmf is None: |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2420 # only need parent manifest in this unlikely case, |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2421 # so do not read by default |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2422 pmf = repo.changectx(parent).manifest() |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2423 if abs in pmf: |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2424 if mfentry: |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2425 # 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:
4958
diff
changeset
|
2426 # manifests, do nothing |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2427 if pmf[abs] != mfentry: |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2428 handle(revert, False) |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2429 else: |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2430 handle(remove, False) |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2431 |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2432 if not opts.get('dry_run'): |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2433 for f in forget[0]: |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2434 repo.dirstate.forget(f) |
4961
126f527b3ba3
Make repo locks recursive, eliminate all passing of lock/wlock
Matt Mackall <mpm@selenic.com>
parents:
4959
diff
changeset
|
2435 r = hg.revert(repo, node, update.has_key) |
4959
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2436 for f in add[0]: |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2437 repo.dirstate.add(f) |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2438 for f in undelete[0]: |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2439 repo.dirstate.normal(f) |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2440 for f in remove[0]: |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2441 repo.dirstate.remove(f) |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2442 return r |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2443 finally: |
97b734fb9c6f
Use try/finally pattern to cleanup locks and transactions
Matt Mackall <mpm@selenic.com>
parents:
4958
diff
changeset
|
2444 del wlock |
588 | 2445 |
2227
4f072bb06e89
deprecate undo command, replace with rollback command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2212
diff
changeset
|
2446 def rollback(ui, repo): |
4f072bb06e89
deprecate undo command, replace with rollback command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2212
diff
changeset
|
2447 """roll back the last transaction in this repository |
4f072bb06e89
deprecate undo command, replace with rollback command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2212
diff
changeset
|
2448 |
4f072bb06e89
deprecate undo command, replace with rollback command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2212
diff
changeset
|
2449 Roll back the last transaction in this repository, restoring the |
4f072bb06e89
deprecate undo command, replace with rollback command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2212
diff
changeset
|
2450 project to its state prior to the transaction. |
4f072bb06e89
deprecate undo command, replace with rollback command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2212
diff
changeset
|
2451 |
4f072bb06e89
deprecate undo command, replace with rollback command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2212
diff
changeset
|
2452 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
|
2453 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
|
2454 repository. For example, the following commands are transactional, |
4f072bb06e89
deprecate undo command, replace with rollback command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2212
diff
changeset
|
2455 and their effects can be rolled back: |
4f072bb06e89
deprecate undo command, replace with rollback command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2212
diff
changeset
|
2456 |
4f072bb06e89
deprecate undo command, replace with rollback command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2212
diff
changeset
|
2457 commit |
4f072bb06e89
deprecate undo command, replace with rollback command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2212
diff
changeset
|
2458 import |
4f072bb06e89
deprecate undo command, replace with rollback command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2212
diff
changeset
|
2459 pull |
4f072bb06e89
deprecate undo command, replace with rollback command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2212
diff
changeset
|
2460 push (with this repository as destination) |
4f072bb06e89
deprecate undo command, replace with rollback command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2212
diff
changeset
|
2461 unbundle |
4f072bb06e89
deprecate undo command, replace with rollback command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2212
diff
changeset
|
2462 |
4f072bb06e89
deprecate undo command, replace with rollback command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2212
diff
changeset
|
2463 This command should be used with care. There is only one level of |
4682
51ec5e069505
rollback: update help for issue316
Matt Mackall <mpm@selenic.com>
parents:
4676
diff
changeset
|
2464 rollback, and there is no way to undo a rollback. It will also |
51ec5e069505
rollback: update help for issue316
Matt Mackall <mpm@selenic.com>
parents:
4676
diff
changeset
|
2465 restore the dirstate at the time of the last transaction, which |
51ec5e069505
rollback: update help for issue316
Matt Mackall <mpm@selenic.com>
parents:
4676
diff
changeset
|
2466 may lose subsequent dirstate changes. |
2227
4f072bb06e89
deprecate undo command, replace with rollback command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2212
diff
changeset
|
2467 |
4f072bb06e89
deprecate undo command, replace with rollback command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2212
diff
changeset
|
2468 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
|
2469 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
|
2470 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
|
2471 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
|
2472 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
|
2473 may fail if a rollback is performed. |
4f072bb06e89
deprecate undo command, replace with rollback command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2212
diff
changeset
|
2474 """ |
2362
482d3fb47d80
Renamed localrepo.undo() to rollback() and talk about "rollback information".
Thomas Arendsen Hein <thomas@intevation.de>
parents:
2356
diff
changeset
|
2475 repo.rollback() |
2227
4f072bb06e89
deprecate undo command, replace with rollback command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2212
diff
changeset
|
2476 |
468 | 2477 def root(ui, repo): |
1437
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2478 """print the root (top) of the current working dir |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2479 |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2480 Print the root directory of the current repository. |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2481 """ |
468 | 2482 ui.write(repo.root + "\n") |
2483 | |
245 | 2484 def serve(ui, repo, **opts): |
1437
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2485 """export the repository via HTTP |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2486 |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2487 Start a local HTTP repository browser and pull server. |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2488 |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2489 By default, the server logs accesses to stdout and errors to |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2490 stderr. Use the "-A" and "-E" options to log to files. |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2491 """ |
624
876333a295ff
Add an sshrepository class and hg serve --stdio
Matt Mackall <mpm@selenic.com>
parents:
618
diff
changeset
|
2492 |
876333a295ff
Add an sshrepository class and hg serve --stdio
Matt Mackall <mpm@selenic.com>
parents:
618
diff
changeset
|
2493 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
|
2494 if repo is None: |
3076
4c9fcb5e3b82
If local repository is missing, make error message clearer.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3069
diff
changeset
|
2495 raise hg.RepoError(_("There is no Mercurial repository here" |
4c9fcb5e3b82
If local repository is missing, make error message clearer.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3069
diff
changeset
|
2496 " (.hg not found)")) |
2396
8d44649df03b
refactor ssh server.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2392
diff
changeset
|
2497 s = sshserver.sshserver(ui, repo) |
8d44649df03b
refactor ssh server.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2392
diff
changeset
|
2498 s.serve_forever() |
2363
fa4c11751367
Give a response to unknown SSH commands
Matt Mackall <mpm@selenic.com>
parents:
2362
diff
changeset
|
2499 |
4078
ff08cebcd116
hg serve: call setconfig on the parentui
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4064
diff
changeset
|
2500 parentui = ui.parentui or ui |
2125
3610d9468b1e
Use string literal concatenation for optlist and import -p option
Thomas Arendsen Hein <thomas@intevation.de>
parents:
2124
diff
changeset
|
2501 optlist = ("name templates style address port ipv6" |
4850
f3802f9f1840
Add SSL support to hg serve, activated via --certificate option
Brendan Cully <brendan@kublai.com>
parents:
4847
diff
changeset
|
2502 " accesslog errorlog webdir_conf certificate") |
987 | 2503 for o in optlist.split(): |
2504 if opts[o]: | |
4078
ff08cebcd116
hg serve: call setconfig on the parentui
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4064
diff
changeset
|
2505 parentui.setconfig("web", o, str(opts[o])) |
5123
f94dbc6c7eaf
Fix hgwebdir after 9858477ed74cce9dc8f4069f9453a1bda0e13ba1 broke it.
Eric Hopper <hopper@omnifarious.org>
parents:
5097
diff
changeset
|
2506 if (repo is not None) and (repo.ui != parentui): |
4866
9858477ed74c
serve: respect settings from .hg/hgrc
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4864
diff
changeset
|
2507 repo.ui.setconfig("web", o, str(opts[o])) |
987 | 2508 |
2127
8a85dbbadddf
Allow 'hg serve --webdir-conf foo' to be run outside a repository.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
2125
diff
changeset
|
2509 if repo is None and not ui.config("web", "webdir_conf"): |
3076
4c9fcb5e3b82
If local repository is missing, make error message clearer.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3069
diff
changeset
|
2510 raise hg.RepoError(_("There is no Mercurial repository here" |
4c9fcb5e3b82
If local repository is missing, make error message clearer.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3069
diff
changeset
|
2511 " (.hg not found)")) |
2127
8a85dbbadddf
Allow 'hg serve --webdir-conf foo' to be run outside a repository.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
2125
diff
changeset
|
2512 |
4378
e89f9afc462b
Refactor commands.serve to allow other commands to run as services.
Bryan O'Sullivan <bos@serpentine.com>
parents:
4374
diff
changeset
|
2513 class service: |
e89f9afc462b
Refactor commands.serve to allow other commands to run as services.
Bryan O'Sullivan <bos@serpentine.com>
parents:
4374
diff
changeset
|
2514 def init(self): |
4672
272c0a09b203
Handle CTRL+C in serve under Windows.
Marcos Chaves <marcos.nospam@gmail.com>
parents:
4659
diff
changeset
|
2515 util.set_signal_handler() |
4378
e89f9afc462b
Refactor commands.serve to allow other commands to run as services.
Bryan O'Sullivan <bos@serpentine.com>
parents:
4374
diff
changeset
|
2516 try: |
e89f9afc462b
Refactor commands.serve to allow other commands to run as services.
Bryan O'Sullivan <bos@serpentine.com>
parents:
4374
diff
changeset
|
2517 self.httpd = hgweb.server.create_server(parentui, repo) |
e89f9afc462b
Refactor commands.serve to allow other commands to run as services.
Bryan O'Sullivan <bos@serpentine.com>
parents:
4374
diff
changeset
|
2518 except socket.error, inst: |
e89f9afc462b
Refactor commands.serve to allow other commands to run as services.
Bryan O'Sullivan <bos@serpentine.com>
parents:
4374
diff
changeset
|
2519 raise util.Abort(_('cannot start server: ') + inst.args[1]) |
e89f9afc462b
Refactor commands.serve to allow other commands to run as services.
Bryan O'Sullivan <bos@serpentine.com>
parents:
4374
diff
changeset
|
2520 |
e89f9afc462b
Refactor commands.serve to allow other commands to run as services.
Bryan O'Sullivan <bos@serpentine.com>
parents:
4374
diff
changeset
|
2521 if not ui.verbose: return |
e89f9afc462b
Refactor commands.serve to allow other commands to run as services.
Bryan O'Sullivan <bos@serpentine.com>
parents:
4374
diff
changeset
|
2522 |
4505 | 2523 if self.httpd.port != 80: |
4378
e89f9afc462b
Refactor commands.serve to allow other commands to run as services.
Bryan O'Sullivan <bos@serpentine.com>
parents:
4374
diff
changeset
|
2524 ui.status(_('listening at http://%s:%d/\n') % |
4505 | 2525 (self.httpd.addr, self.httpd.port)) |
4378
e89f9afc462b
Refactor commands.serve to allow other commands to run as services.
Bryan O'Sullivan <bos@serpentine.com>
parents:
4374
diff
changeset
|
2526 else: |
4505 | 2527 ui.status(_('listening at http://%s/\n') % self.httpd.addr) |
4378
e89f9afc462b
Refactor commands.serve to allow other commands to run as services.
Bryan O'Sullivan <bos@serpentine.com>
parents:
4374
diff
changeset
|
2528 |
e89f9afc462b
Refactor commands.serve to allow other commands to run as services.
Bryan O'Sullivan <bos@serpentine.com>
parents:
4374
diff
changeset
|
2529 def run(self): |
e89f9afc462b
Refactor commands.serve to allow other commands to run as services.
Bryan O'Sullivan <bos@serpentine.com>
parents:
4374
diff
changeset
|
2530 self.httpd.serve_forever() |
e89f9afc462b
Refactor commands.serve to allow other commands to run as services.
Bryan O'Sullivan <bos@serpentine.com>
parents:
4374
diff
changeset
|
2531 |
e89f9afc462b
Refactor commands.serve to allow other commands to run as services.
Bryan O'Sullivan <bos@serpentine.com>
parents:
4374
diff
changeset
|
2532 service = service() |
e89f9afc462b
Refactor commands.serve to allow other commands to run as services.
Bryan O'Sullivan <bos@serpentine.com>
parents:
4374
diff
changeset
|
2533 |
e89f9afc462b
Refactor commands.serve to allow other commands to run as services.
Bryan O'Sullivan <bos@serpentine.com>
parents:
4374
diff
changeset
|
2534 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
|
2535 |
731
91ca3afab8e8
Add name matching to status command.
Bryan O'Sullivan <bos@serpentine.com>
parents:
729
diff
changeset
|
2536 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
|
2537 """show changed files in the working directory |
213 | 2538 |
2661
5c10b7ed3411
status: add -c (clean) and -A (all files) options
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2639
diff
changeset
|
2539 Show status of files in the repository. If names are given, only |
5c10b7ed3411
status: add -c (clean) and -A (all files) options
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2639
diff
changeset
|
2540 files that match are shown. Files that are clean or ignored, are |
5c10b7ed3411
status: add -c (clean) and -A (all files) options
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2639
diff
changeset
|
2541 not listed unless -c (clean), -i (ignored) or -A is given. |
1437
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2542 |
3828
28134d82db9b
Add notes about diff/merge asymmetry to export, diff, and log
Matt Mackall <mpm@selenic.com>
parents:
3819
diff
changeset
|
2543 NOTE: status may appear to disagree with diff if permissions have |
28134d82db9b
Add notes about diff/merge asymmetry to export, diff, and log
Matt Mackall <mpm@selenic.com>
parents:
3819
diff
changeset
|
2544 changed or a merge has occurred. The standard diff format does not |
28134d82db9b
Add notes about diff/merge asymmetry to export, diff, and log
Matt Mackall <mpm@selenic.com>
parents:
3819
diff
changeset
|
2545 report permission changes and diff only reports changes relative |
28134d82db9b
Add notes about diff/merge asymmetry to export, diff, and log
Matt Mackall <mpm@selenic.com>
parents:
3819
diff
changeset
|
2546 to one merge parent. |
28134d82db9b
Add notes about diff/merge asymmetry to export, diff, and log
Matt Mackall <mpm@selenic.com>
parents:
3819
diff
changeset
|
2547 |
3462
2b3b703b3a2b
Add --rev option to status
Brendan Cully <brendan@kublai.com>
parents:
3460
diff
changeset
|
2548 If one revision is given, it is used as the base revision. |
2b3b703b3a2b
Add --rev option to status
Brendan Cully <brendan@kublai.com>
parents:
3460
diff
changeset
|
2549 If two revisions are given, the difference between them is shown. |
2b3b703b3a2b
Add --rev option to status
Brendan Cully <brendan@kublai.com>
parents:
3460
diff
changeset
|
2550 |
1437
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2551 The codes used to show the status of files are: |
746 | 2552 M = modified |
245 | 2553 A = added |
2554 R = removed | |
2661
5c10b7ed3411
status: add -c (clean) and -A (all files) options
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2639
diff
changeset
|
2555 C = clean |
1619
1ba0d7041ac4
Distinguish removed and deleted files. Tests are not fixed yet.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1618
diff
changeset
|
2556 ! = deleted, but still tracked |
842
8fb488773063
Rewritten change type selection for hg status.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
841
diff
changeset
|
2557 ? = not tracked |
2022
a59da8cc35e4
New option -i/--ignored for 'hg status' to show ignored files.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
2020
diff
changeset
|
2558 I = ignored (not shown by default) |
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
|
2559 = the previous added file was copied from here |
1437
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2560 """ |
312 | 2561 |
2661
5c10b7ed3411
status: add -c (clean) and -A (all files) options
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2639
diff
changeset
|
2562 all = opts['all'] |
3707
67f44b825784
Removed unused ui parameter from revpair/revrange and fix its users.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3706
diff
changeset
|
2563 node1, node2 = cmdutil.revpair(repo, opts.get('rev')) |
3215
53e843840349
Whitespace/Tab cleanup
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3204
diff
changeset
|
2564 |
2881
cf98cd70d2c4
move walk and matchpats from commands to cmdutil.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2877
diff
changeset
|
2565 files, matchfn, anypats = cmdutil.matchpats(repo, pats, opts) |
1625
e1bcf7fa983f
correct the relative path when walking from a subdir
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1622
diff
changeset
|
2566 cwd = (pats and repo.getcwd()) or '' |
2661
5c10b7ed3411
status: add -c (clean) and -A (all files) options
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2639
diff
changeset
|
2567 modified, added, removed, deleted, unknown, ignored, clean = [ |
4043
31047b6f7ec1
Copied files sources were not shown by status -C under Win32.
Patrick Mezard <pmezard@gmail.com>
parents:
4014
diff
changeset
|
2568 n for n in repo.status(node1=node1, node2=node2, files=files, |
3462
2b3b703b3a2b
Add --rev option to status
Brendan Cully <brendan@kublai.com>
parents:
3460
diff
changeset
|
2569 match=matchfn, |
2661
5c10b7ed3411
status: add -c (clean) and -A (all files) options
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2639
diff
changeset
|
2570 list_ignored=all or opts['ignored'], |
5c10b7ed3411
status: add -c (clean) and -A (all files) options
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2639
diff
changeset
|
2571 list_clean=all or opts['clean'])] |
5c10b7ed3411
status: add -c (clean) and -A (all files) options
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2639
diff
changeset
|
2572 |
5c10b7ed3411
status: add -c (clean) and -A (all files) options
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2639
diff
changeset
|
2573 changetypes = (('modified', 'M', modified), |
1966
f8b0e73e320f
hg status cleanups: Don't translate long options, remove stray semicolon.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1965
diff
changeset
|
2574 ('added', 'A', added), |
f8b0e73e320f
hg status cleanups: Don't translate long options, remove stray semicolon.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1965
diff
changeset
|
2575 ('removed', 'R', removed), |
f8b0e73e320f
hg status cleanups: Don't translate long options, remove stray semicolon.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1965
diff
changeset
|
2576 ('deleted', '!', deleted), |
2022
a59da8cc35e4
New option -i/--ignored for 'hg status' to show ignored files.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
2020
diff
changeset
|
2577 ('unknown', '?', unknown), |
2661
5c10b7ed3411
status: add -c (clean) and -A (all files) options
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2639
diff
changeset
|
2578 ('ignored', 'I', ignored)) |
5c10b7ed3411
status: add -c (clean) and -A (all files) options
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2639
diff
changeset
|
2579 |
5c10b7ed3411
status: add -c (clean) and -A (all files) options
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2639
diff
changeset
|
2580 explicit_changetypes = changetypes + (('clean', 'C', clean),) |
842
8fb488773063
Rewritten change type selection for hg status.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
841
diff
changeset
|
2581 |
1085
6f94688b81b6
status: added option -p and -0 to assist xargs
TK Soh <teekaysoh@yahoo.com>
parents:
1081
diff
changeset
|
2582 end = opts['print0'] and '\0' or '\n' |
1106
95a044b73bd5
Whitespace cleanup.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1105
diff
changeset
|
2583 |
2661
5c10b7ed3411
status: add -c (clean) and -A (all files) options
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2639
diff
changeset
|
2584 for opt, char, changes in ([ct for ct in explicit_changetypes |
5c10b7ed3411
status: add -c (clean) and -A (all files) options
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2639
diff
changeset
|
2585 if all or opts[ct[0]]] |
842
8fb488773063
Rewritten change type selection for hg status.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
841
diff
changeset
|
2586 or changetypes): |
1105
a906b018eaef
Replaced hg status -p/--strip with -n/--no-status to not confuse with patch.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1085
diff
changeset
|
2587 if opts['no_status']: |
1085
6f94688b81b6
status: added option -p and -0 to assist xargs
TK Soh <teekaysoh@yahoo.com>
parents:
1081
diff
changeset
|
2588 format = "%%s%s" % end |
6f94688b81b6
status: added option -p and -0 to assist xargs
TK Soh <teekaysoh@yahoo.com>
parents:
1081
diff
changeset
|
2589 else: |
1966
f8b0e73e320f
hg status cleanups: Don't translate long options, remove stray semicolon.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1965
diff
changeset
|
2590 format = "%s %%s%s" % (char, end) |
1106
95a044b73bd5
Whitespace cleanup.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1105
diff
changeset
|
2591 |
842
8fb488773063
Rewritten change type selection for hg status.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
841
diff
changeset
|
2592 for f in changes: |
4525
78b6add1f966
Add dirstate.pathto and localrepo.pathto.
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4524
diff
changeset
|
2593 ui.write(format % repo.pathto(f, cwd)) |
3256
7c114915fbdb
Make status -C work with merge+rename
Matt Mackall <mpm@selenic.com>
parents:
3215
diff
changeset
|
2594 if ((all or opts.get('copies')) and not opts.get('no_status')): |
3159
e43fd1623fe1
fix users of dirstate.copies broken by b1f10d3223c1
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3146
diff
changeset
|
2595 copied = repo.dirstate.copied(f) |
e43fd1623fe1
fix users of dirstate.copies broken by b1f10d3223c1
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3146
diff
changeset
|
2596 if copied: |
4525
78b6add1f966
Add dirstate.pathto and localrepo.pathto.
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4524
diff
changeset
|
2597 ui.write(' %s%s' % (repo.pathto(copied, cwd), end)) |
213 | 2598 |
1596
41366b7d6709
fix 'hg tag <tagname> <revision>
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1589
diff
changeset
|
2599 def tag(ui, repo, name, rev_=None, **opts): |
3914
3c82ab166eea
doc fix: hg tags defaults to current parent revision, too.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3913
diff
changeset
|
2600 """add a tag 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
|
2601 |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2602 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
|
2603 |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2604 Tags are used to name particular revisions of the repository and are |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2605 very useful to compare different revision, to go back to significant |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2606 earlier versions or to mark branch points as releases, etc. |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2607 |
3914
3c82ab166eea
doc fix: hg tags defaults to current parent revision, too.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3913
diff
changeset
|
2608 If no revision is given, the parent of the working directory is used, |
3c82ab166eea
doc fix: hg tags defaults to current parent revision, too.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3913
diff
changeset
|
2609 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
|
2610 |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2611 To facilitate version control, distribution, and merging of tags, |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2612 they are stored as a file named ".hgtags" which is managed |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2613 similarly to other project files and can be hand-edited if |
1654
b7fc961507db
deprecate the use of 'hg tag NAME [REV]'
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1648
diff
changeset
|
2614 necessary. The file '.hg/localtags' is used for local tags (not |
b7fc961507db
deprecate the use of 'hg tag NAME [REV]'
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1648
diff
changeset
|
2615 shared among repositories). |
1437
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2616 """ |
3795
bd7011246fab
Add "null" pseudo-tag pointing to nullid
Brendan Cully <brendan@kublai.com>
parents:
3787
diff
changeset
|
2617 if name in ['tip', '.', 'null']: |
2784
e3564699409c
Add '.' as a shortcut revision name for the working directory parent.
Brendan Cully <brendan@kublai.com>
parents:
2779
diff
changeset
|
2618 raise util.Abort(_("the name '%s' is reserved") % name) |
1654
b7fc961507db
deprecate the use of 'hg tag NAME [REV]'
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1648
diff
changeset
|
2619 if rev_ is not None: |
b7fc961507db
deprecate the use of 'hg tag NAME [REV]'
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1648
diff
changeset
|
2620 ui.warn(_("use of 'hg tag NAME [REV]' is deprecated, " |
1661
b11507d6d16d
Added missing quote in warning text.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1657
diff
changeset
|
2621 "please use 'hg tag [-r REV] NAME' instead\n")) |
1654
b7fc961507db
deprecate the use of 'hg tag NAME [REV]'
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1648
diff
changeset
|
2622 if opts['rev']: |
b7fc961507db
deprecate the use of 'hg tag NAME [REV]'
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1648
diff
changeset
|
2623 raise util.Abort(_("use only one form to specify the revision")) |
4217 | 2624 if opts['rev'] and opts['remove']: |
2625 raise util.Abort(_("--rev and --remove are incompatible")) | |
1596
41366b7d6709
fix 'hg tag <tagname> <revision>
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1589
diff
changeset
|
2626 if opts['rev']: |
41366b7d6709
fix 'hg tag <tagname> <revision>
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1589
diff
changeset
|
2627 rev_ = opts['rev'] |
4217 | 2628 message = opts['message'] |
2629 if opts['remove']: | |
4659
7a7d4937272b
Kill trailing spaces
Thomas Arendsen Hein <thomas@intevation.de>
parents:
4650
diff
changeset
|
2630 if not name in repo.tags(): |
4650
15e22b483adc
tag: abort when trying to remove nonexistent tags
TK Soh <teekaysoh@yahoo.com>
parents:
4649
diff
changeset
|
2631 raise util.Abort(_('tag %s does not exist') % name) |
4217 | 2632 rev_ = nullid |
2633 if not message: | |
2634 message = _('Removed tag %s') % name | |
4273
8185a1ca8628
tags: require -f to replace an existing tag
Matt Mackall <mpm@selenic.com>
parents:
4249
diff
changeset
|
2635 elif name in repo.tags() and not opts['force']: |
8185a1ca8628
tags: require -f to replace an existing tag
Matt Mackall <mpm@selenic.com>
parents:
4249
diff
changeset
|
2636 raise util.Abort(_('a tag named %s already exists (use -f to force)') |
8185a1ca8628
tags: require -f to replace an existing tag
Matt Mackall <mpm@selenic.com>
parents:
4249
diff
changeset
|
2637 % name) |
3127
81da3c45aabd
Move defaultrev into changectx
Brendan Cully <brendan@kublai.com>
parents:
3092
diff
changeset
|
2638 if not rev_ and repo.dirstate.parents()[1] != nullid: |
81da3c45aabd
Move defaultrev into changectx
Brendan Cully <brendan@kublai.com>
parents:
3092
diff
changeset
|
2639 raise util.Abort(_('uncommitted merge - please provide a ' |
81da3c45aabd
Move defaultrev into changectx
Brendan Cully <brendan@kublai.com>
parents:
3092
diff
changeset
|
2640 'specific revision')) |
81da3c45aabd
Move defaultrev into changectx
Brendan Cully <brendan@kublai.com>
parents:
3092
diff
changeset
|
2641 r = repo.changectx(rev_).node() |
2974
eef469259745
tag: shorten hash in default commit message
Matt Mackall <mpm@selenic.com>
parents:
2973
diff
changeset
|
2642 |
eef469259745
tag: shorten hash in default commit message
Matt Mackall <mpm@selenic.com>
parents:
2973
diff
changeset
|
2643 if not message: |
eef469259745
tag: shorten hash in default commit message
Matt Mackall <mpm@selenic.com>
parents:
2973
diff
changeset
|
2644 message = _('Added tag %s for changeset %s') % (name, short(r)) |
eef469259745
tag: shorten hash in default commit message
Matt Mackall <mpm@selenic.com>
parents:
2973
diff
changeset
|
2645 |
eef469259745
tag: shorten hash in default commit message
Matt Mackall <mpm@selenic.com>
parents:
2973
diff
changeset
|
2646 repo.tag(name, r, message, opts['local'], opts['user'], opts['date']) |
401
af4848f83e68
From: Radoslaw Szkodzinski <astralstorm@gorzow.mm.pl>
mpm@selenic.com
parents:
396
diff
changeset
|
2647 |
248 | 2648 def tags(ui, repo): |
1437
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2649 """list repository tags |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2650 |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2651 List the repository tags. |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2652 |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2653 This lists both regular and local tags. |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2654 """ |
477
520540fd6b64
Handle errors in .hgtags or hgrc [tags] section more gracefully.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
470
diff
changeset
|
2655 |
343 | 2656 l = repo.tagslist() |
2657 l.reverse() | |
2973
fb493241d7f6
Only show long hashes with --debug, not --verbose
Matt Mackall <mpm@selenic.com>
parents:
2963
diff
changeset
|
2658 hexfunc = ui.debugflag and hex or short |
477
520540fd6b64
Handle errors in .hgtags or hgrc [tags] section more gracefully.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
470
diff
changeset
|
2659 for t, n in l: |
248 | 2660 try: |
4516
96d8a56d4ef9
Removed trailing whitespace and tabs from python files
Thomas Arendsen Hein <thomas@intevation.de>
parents:
4505
diff
changeset
|
2661 hn = hexfunc(n) |
2973
fb493241d7f6
Only show long hashes with --debug, not --verbose
Matt Mackall <mpm@selenic.com>
parents:
2963
diff
changeset
|
2662 r = "%5d:%s" % (repo.changelog.rev(n), hexfunc(n)) |
3930
01d98d68d697
Add revlog.LookupError exception, and use it instead of RevlogError.
Brendan Cully <brendan@kublai.com>
parents:
3919
diff
changeset
|
2663 except revlog.LookupError: |
01d98d68d697
Add revlog.LookupError exception, and use it instead of RevlogError.
Brendan Cully <brendan@kublai.com>
parents:
3919
diff
changeset
|
2664 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
|
2665 if ui.quiet: |
107dc72880f8
Make 'hg tags -q' only list tag names without revision numbers and hashes,
Thomas Arendsen Hein <thomas@intevation.de>
parents:
2034
diff
changeset
|
2666 ui.write("%s\n" % t) |
107dc72880f8
Make 'hg tags -q' only list tag names without revision numbers and hashes,
Thomas Arendsen Hein <thomas@intevation.de>
parents:
2034
diff
changeset
|
2667 else: |
4143
26314500a5e1
Don't truncate tag and branch names after 30 chars (introduced 73860ffbe798)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
4078
diff
changeset
|
2668 spaces = " " * (30 - util.locallen(t)) |
26314500a5e1
Don't truncate tag and branch names after 30 chars (introduced 73860ffbe798)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
4078
diff
changeset
|
2669 ui.write("%s%s %s\n" % (t, spaces, r)) |
248 | 2670 |
1731
251729df9cc6
add -p option to tip. for issue 64.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
1728
diff
changeset
|
2671 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
|
2672 """show the tip revision |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2673 |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2674 Show the tip revision. |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2675 """ |
3671
86d3f966201d
Use nullrev+count instead of count-1 in a newly introduced expression.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3670
diff
changeset
|
2676 cmdutil.show_changeset(ui, repo, opts).show(nullrev+repo.changelog.count()) |
245 | 2677 |
4699
a6b62584d0b2
unbundle: accept multiple file arguments
Giorgos Keramidas <keramida@ceid.upatras.gr>
parents:
4697
diff
changeset
|
2678 def unbundle(ui, repo, fname1, *fnames, **opts): |
a6b62584d0b2
unbundle: accept multiple file arguments
Giorgos Keramidas <keramida@ceid.upatras.gr>
parents:
4697
diff
changeset
|
2679 """apply one or more changegroup files |
a6b62584d0b2
unbundle: accept multiple file arguments
Giorgos Keramidas <keramida@ceid.upatras.gr>
parents:
4697
diff
changeset
|
2680 |
a6b62584d0b2
unbundle: accept multiple file arguments
Giorgos Keramidas <keramida@ceid.upatras.gr>
parents:
4697
diff
changeset
|
2681 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
|
2682 bundle command. |
1437
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2683 """ |
4699
a6b62584d0b2
unbundle: accept multiple file arguments
Giorgos Keramidas <keramida@ceid.upatras.gr>
parents:
4697
diff
changeset
|
2684 fnames = (fname1,) + fnames |
a6b62584d0b2
unbundle: accept multiple file arguments
Giorgos Keramidas <keramida@ceid.upatras.gr>
parents:
4697
diff
changeset
|
2685 for fname in fnames: |
a6b62584d0b2
unbundle: accept multiple file arguments
Giorgos Keramidas <keramida@ceid.upatras.gr>
parents:
4697
diff
changeset
|
2686 if os.path.exists(fname): |
a6b62584d0b2
unbundle: accept multiple file arguments
Giorgos Keramidas <keramida@ceid.upatras.gr>
parents:
4697
diff
changeset
|
2687 f = open(fname, "rb") |
a6b62584d0b2
unbundle: accept multiple file arguments
Giorgos Keramidas <keramida@ceid.upatras.gr>
parents:
4697
diff
changeset
|
2688 else: |
a6b62584d0b2
unbundle: accept multiple file arguments
Giorgos Keramidas <keramida@ceid.upatras.gr>
parents:
4697
diff
changeset
|
2689 f = urllib.urlopen(fname) |
a6b62584d0b2
unbundle: accept multiple file arguments
Giorgos Keramidas <keramida@ceid.upatras.gr>
parents:
4697
diff
changeset
|
2690 gen = changegroup.readbundle(f, fname) |
a6b62584d0b2
unbundle: accept multiple file arguments
Giorgos Keramidas <keramida@ceid.upatras.gr>
parents:
4697
diff
changeset
|
2691 modheads = repo.addchangegroup(gen, 'unbundle', 'bundle:' + fname) |
a6b62584d0b2
unbundle: accept multiple file arguments
Giorgos Keramidas <keramida@ceid.upatras.gr>
parents:
4697
diff
changeset
|
2692 |
5238
20817af258d8
pull -u: if "url#rev" was given, update to rev
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
5236
diff
changeset
|
2693 return postincoming(ui, repo, modheads, opts['update'], None) |
1218
cde6818e082a
Add preliminary support for the bundle and unbundle commands
mpm@selenic.com
parents:
1215
diff
changeset
|
2694 |
4450
8fa54b9c6c5a
accept -r REV in more places
Daniel Holth <dholth@fastmail.fm>
parents:
4442
diff
changeset
|
2695 def update(ui, repo, node=None, rev=None, clean=False, date=None): |
4014
509342f95564
various doc fixes
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
4013
diff
changeset
|
2696 """update working directory |
1437
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2697 |
4200
7ca05d29c1f0
Clarify update help text for update without an explicit revision
Brendan Cully <brendan@kublai.com>
parents:
4199
diff
changeset
|
2698 Update the working directory to the specified revision, or the |
7ca05d29c1f0
Clarify update help text for update without an explicit revision
Brendan Cully <brendan@kublai.com>
parents:
4199
diff
changeset
|
2699 tip of the current branch if none is specified. |
254 | 2700 |
2701 If there are no outstanding changes in the working directory and | |
2702 there is a linear relationship between the current version and the | |
2703 requested version, the result is the requested version. | |
2704 | |
2283
e506c14382fd
deprecate 'update -m'. use 'merge' instead.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2272
diff
changeset
|
2705 To merge the working directory with another revision, use the |
e506c14382fd
deprecate 'update -m'. use 'merge' instead.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2272
diff
changeset
|
2706 merge command. |
1437
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2707 |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2708 By default, update will refuse to run if doing so would require |
4014
509342f95564
various doc fixes
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
4013
diff
changeset
|
2709 discarding local changes. |
1437
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2710 """ |
4450
8fa54b9c6c5a
accept -r REV in more places
Daniel Holth <dholth@fastmail.fm>
parents:
4442
diff
changeset
|
2711 if rev and node: |
8fa54b9c6c5a
accept -r REV in more places
Daniel Holth <dholth@fastmail.fm>
parents:
4442
diff
changeset
|
2712 raise util.Abort(_("please specify just one revision")) |
8fa54b9c6c5a
accept -r REV in more places
Daniel Holth <dholth@fastmail.fm>
parents:
4442
diff
changeset
|
2713 |
8fa54b9c6c5a
accept -r REV in more places
Daniel Holth <dholth@fastmail.fm>
parents:
4442
diff
changeset
|
2714 if not rev: |
8fa54b9c6c5a
accept -r REV in more places
Daniel Holth <dholth@fastmail.fm>
parents:
4442
diff
changeset
|
2715 rev = node |
8fa54b9c6c5a
accept -r REV in more places
Daniel Holth <dholth@fastmail.fm>
parents:
4442
diff
changeset
|
2716 |
3818
120be84f33de
Add --date support to update and revert
Matt Mackall <mpm@selenic.com>
parents:
3816
diff
changeset
|
2717 if date: |
4450
8fa54b9c6c5a
accept -r REV in more places
Daniel Holth <dholth@fastmail.fm>
parents:
4442
diff
changeset
|
2718 if rev: |
3818
120be84f33de
Add --date support to update and revert
Matt Mackall <mpm@selenic.com>
parents:
3816
diff
changeset
|
2719 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:
4442
diff
changeset
|
2720 rev = cmdutil.finddate(ui, repo, date) |
3818
120be84f33de
Add --date support to update and revert
Matt Mackall <mpm@selenic.com>
parents:
3816
diff
changeset
|
2721 |
3524
ba94e80e5540
Remove update -m, deprecated for 0.9.1
Matt Mackall <mpm@selenic.com>
parents:
3523
diff
changeset
|
2722 if clean: |
4450
8fa54b9c6c5a
accept -r REV in more places
Daniel Holth <dholth@fastmail.fm>
parents:
4442
diff
changeset
|
2723 return hg.clean(repo, rev) |
2822
30f59f4a327e
Introduce update helper functions: update, merge, clean, and revert
Matt Mackall <mpm@selenic.com>
parents:
2820
diff
changeset
|
2724 else: |
4450
8fa54b9c6c5a
accept -r REV in more places
Daniel Holth <dholth@fastmail.fm>
parents:
4442
diff
changeset
|
2725 return hg.update(repo, rev) |
254 | 2726 |
247 | 2727 def verify(ui, repo): |
1437
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2728 """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
|
2729 |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2730 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
|
2731 |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2732 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
|
2733 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
|
2734 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
|
2735 integrity of their crosslinks and indices. |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2736 """ |
2802 | 2737 return hg.verify(repo) |
247 | 2738 |
3658
6389205291c6
move show_version to version_
Matt Mackall <mpm@selenic.com>
parents:
3657
diff
changeset
|
2739 def version_(ui): |
6389205291c6
move show_version to version_
Matt Mackall <mpm@selenic.com>
parents:
3657
diff
changeset
|
2740 """output version and copyright information""" |
6389205291c6
move show_version to version_
Matt Mackall <mpm@selenic.com>
parents:
3657
diff
changeset
|
2741 ui.write(_("Mercurial Distributed SCM (version %s)\n") |
6389205291c6
move show_version to version_
Matt Mackall <mpm@selenic.com>
parents:
3657
diff
changeset
|
2742 % version.get_version()) |
6389205291c6
move show_version to version_
Matt Mackall <mpm@selenic.com>
parents:
3657
diff
changeset
|
2743 ui.status(_( |
4635
63b9d2deed48
Updated copyright notices and add "and others" to "hg version"
Thomas Arendsen Hein <thomas@intevation.de>
parents:
4615
diff
changeset
|
2744 "\nCopyright (C) 2005-2007 Matt Mackall <mpm@selenic.com> and others\n" |
3658
6389205291c6
move show_version to version_
Matt Mackall <mpm@selenic.com>
parents:
3657
diff
changeset
|
2745 "This is free software; see the source for copying conditions. " |
6389205291c6
move show_version to version_
Matt Mackall <mpm@selenic.com>
parents:
3657
diff
changeset
|
2746 "There is NO\nwarranty; " |
6389205291c6
move show_version to version_
Matt Mackall <mpm@selenic.com>
parents:
3657
diff
changeset
|
2747 "not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n" |
6389205291c6
move show_version to version_
Matt Mackall <mpm@selenic.com>
parents:
3657
diff
changeset
|
2748 )) |
6389205291c6
move show_version to version_
Matt Mackall <mpm@selenic.com>
parents:
3657
diff
changeset
|
2749 |
255 | 2750 # Command options and aliases are listed here, alphabetically |
2751 | |
3180
fca5ddbaa12a
factor opts: move globalopts to a more logical place
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3174
diff
changeset
|
2752 globalopts = [ |
fca5ddbaa12a
factor opts: move globalopts to a more logical place
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3174
diff
changeset
|
2753 ('R', 'repository', '', |
fca5ddbaa12a
factor opts: move globalopts to a more logical place
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3174
diff
changeset
|
2754 _('repository root directory or symbolic path name')), |
fca5ddbaa12a
factor opts: move globalopts to a more logical place
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3174
diff
changeset
|
2755 ('', 'cwd', '', _('change working directory')), |
fca5ddbaa12a
factor opts: move globalopts to a more logical place
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3174
diff
changeset
|
2756 ('y', 'noninteractive', None, |
fca5ddbaa12a
factor opts: move globalopts to a more logical place
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3174
diff
changeset
|
2757 _('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:
3174
diff
changeset
|
2758 ('q', 'quiet', None, _('suppress output')), |
fca5ddbaa12a
factor opts: move globalopts to a more logical place
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3174
diff
changeset
|
2759 ('v', 'verbose', None, _('enable additional output')), |
fca5ddbaa12a
factor opts: move globalopts to a more logical place
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3174
diff
changeset
|
2760 ('', 'config', [], _('set/override config option')), |
fca5ddbaa12a
factor opts: move globalopts to a more logical place
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3174
diff
changeset
|
2761 ('', 'debug', None, _('enable debugging output')), |
fca5ddbaa12a
factor opts: move globalopts to a more logical place
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3174
diff
changeset
|
2762 ('', 'debugger', None, _('start debugger')), |
3775
a88e02081a88
Add global options for setting encoding and encodingmode
Matt Mackall <mpm@selenic.com>
parents:
3774
diff
changeset
|
2763 ('', 'encoding', util._encoding, _('set the charset encoding')), |
a88e02081a88
Add global options for setting encoding and encodingmode
Matt Mackall <mpm@selenic.com>
parents:
3774
diff
changeset
|
2764 ('', 'encodingmode', util._encodingmode, _('set the charset encoding mode')), |
3180
fca5ddbaa12a
factor opts: move globalopts to a more logical place
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3174
diff
changeset
|
2765 ('', 'lsprof', None, _('print improved command execution profile')), |
fca5ddbaa12a
factor opts: move globalopts to a more logical place
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3174
diff
changeset
|
2766 ('', 'traceback', None, _('print traceback on exception')), |
fca5ddbaa12a
factor opts: move globalopts to a more logical place
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3174
diff
changeset
|
2767 ('', '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:
3174
diff
changeset
|
2768 ('', 'profile', None, _('print command execution profile')), |
fca5ddbaa12a
factor opts: move globalopts to a more logical place
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3174
diff
changeset
|
2769 ('', '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:
3174
diff
changeset
|
2770 ('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:
3174
diff
changeset
|
2771 ] |
fca5ddbaa12a
factor opts: move globalopts to a more logical place
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3174
diff
changeset
|
2772 |
3182
a73a785ea8e1
factor opts: --dry-run option
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3181
diff
changeset
|
2773 dryrunopts = [('n', 'dry-run', None, |
a73a785ea8e1
factor opts: --dry-run option
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3181
diff
changeset
|
2774 _('do not perform actions, just print output'))] |
a73a785ea8e1
factor opts: --dry-run option
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3181
diff
changeset
|
2775 |
3183
37b53487c341
factor opts: remote repo access options
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3182
diff
changeset
|
2776 remoteopts = [ |
37b53487c341
factor opts: remote repo access options
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3182
diff
changeset
|
2777 ('e', 'ssh', '', _('specify ssh command to use')), |
37b53487c341
factor opts: remote repo access options
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3182
diff
changeset
|
2778 ('', 'remotecmd', '', _('specify hg command to run on the remote side')), |
37b53487c341
factor opts: remote repo access options
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3182
diff
changeset
|
2779 ] |
37b53487c341
factor opts: remote repo access options
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3182
diff
changeset
|
2780 |
3181
725e3d3145d8
factor opts: walk options
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3180
diff
changeset
|
2781 walkopts = [ |
725e3d3145d8
factor opts: walk options
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3180
diff
changeset
|
2782 ('I', 'include', [], _('include names matching the given patterns')), |
725e3d3145d8
factor opts: walk options
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3180
diff
changeset
|
2783 ('X', 'exclude', [], _('exclude names matching the given patterns')), |
725e3d3145d8
factor opts: walk options
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3180
diff
changeset
|
2784 ] |
725e3d3145d8
factor opts: walk options
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3180
diff
changeset
|
2785 |
3857
f6f16f871049
Uniformisation of commit help for -m and -l.
Mathieu Clabaut <mathieu.clabaut@gmail.com>
parents:
3855
diff
changeset
|
2786 commitopts = [ |
f6f16f871049
Uniformisation of commit help for -m and -l.
Mathieu Clabaut <mathieu.clabaut@gmail.com>
parents:
3855
diff
changeset
|
2787 ('m', 'message', '', _('use <text> as commit message')), |
f6f16f871049
Uniformisation of commit help for -m and -l.
Mathieu Clabaut <mathieu.clabaut@gmail.com>
parents:
3855
diff
changeset
|
2788 ('l', 'logfile', '', _('read commit message from <file>')), |
f6f16f871049
Uniformisation of commit help for -m and -l.
Mathieu Clabaut <mathieu.clabaut@gmail.com>
parents:
3855
diff
changeset
|
2789 ] |
f6f16f871049
Uniformisation of commit help for -m and -l.
Mathieu Clabaut <mathieu.clabaut@gmail.com>
parents:
3855
diff
changeset
|
2790 |
5122
c80af96943aa
refactor options from cmdtable
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
5098
diff
changeset
|
2791 commitopts2 = [ |
c80af96943aa
refactor options from cmdtable
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
5098
diff
changeset
|
2792 ('d', 'date', '', _('record datecode as commit date')), |
c80af96943aa
refactor options from cmdtable
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
5098
diff
changeset
|
2793 ('u', 'user', '', _('record user as committer')), |
c80af96943aa
refactor options from cmdtable
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
5098
diff
changeset
|
2794 ] |
c80af96943aa
refactor options from cmdtable
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
5098
diff
changeset
|
2795 |
209 | 2796 table = { |
3821
2631b506e93d
Fixed indentation, spacing and a typo (debugdata->debugdate) in commands.table.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3819
diff
changeset
|
2797 "^add": (add, walkopts + dryrunopts, _('hg add [OPTION]... [FILE]...')), |
2955
9d1c3529ebbc
addremove: do not deprecate.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2639
diff
changeset
|
2798 "addremove": |
841
03cc2ba291d1
Realigned command table again.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
840
diff
changeset
|
2799 (addremove, |
3181
725e3d3145d8
factor opts: walk options
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3180
diff
changeset
|
2800 [('s', 'similarity', '', |
3182
a73a785ea8e1
factor opts: --dry-run option
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3181
diff
changeset
|
2801 _('guess renamed files by similarity (0<=s<=100)')), |
a73a785ea8e1
factor opts: --dry-run option
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3181
diff
changeset
|
2802 ] + walkopts + dryrunopts, |
1615
83238c1db6de
Cleanup of indentation, spacing, newlines, strings and line length
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1607
diff
changeset
|
2803 _('hg addremove [OPTION]... [FILE]...')), |
697
cb1be2327220
Multiple cleanups of things detected by pylint.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
696
diff
changeset
|
2804 "^annotate": |
cb1be2327220
Multiple cleanups of things detected by pylint.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
696
diff
changeset
|
2805 (annotate, |
1437
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2806 [('r', 'rev', '', _('annotate the specified revision')), |
3165
5c93dd0ae413
Refactor annotate copy support.
Brendan Cully <brendan@kublai.com>
parents:
3159
diff
changeset
|
2807 ('f', 'follow', None, _('follow file 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
|
2808 ('a', 'text', None, _('treat all files as text')), |
1437
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2809 ('u', 'user', None, _('list the author')), |
1522 | 2810 ('d', 'date', None, _('list the date')), |
1437
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2811 ('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
|
2812 ('c', 'changeset', None, _('list the changeset')), |
4847
2192001e4bb4
Add --line-number option to hg annotate (issue506)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
4836
diff
changeset
|
2813 ('l', 'line-number', None, |
2192001e4bb4
Add --line-number option to hg annotate (issue506)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
4836
diff
changeset
|
2814 _('show line number at the first appearance')) |
3181
725e3d3145d8
factor opts: walk options
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3180
diff
changeset
|
2815 ] + walkopts, |
4847
2192001e4bb4
Add --line-number option to hg annotate (issue506)
Thomas Arendsen Hein <thomas@intevation.de>
parents:
4836
diff
changeset
|
2816 _('hg annotate [-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
|
2817 "archive": |
2112
2b03c6733efa
add "archive" command, like "cvs export" only better.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2092
diff
changeset
|
2818 (archive, |
2b03c6733efa
add "archive" command, like "cvs export" only better.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2092
diff
changeset
|
2819 [('', 'no-decode', None, _('do not pass files through decoders')), |
2b03c6733efa
add "archive" command, like "cvs export" only better.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2092
diff
changeset
|
2820 ('p', 'prefix', '', _('directory prefix for files in archive')), |
2b03c6733efa
add "archive" command, like "cvs export" only better.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2092
diff
changeset
|
2821 ('r', 'rev', '', _('revision to distribute')), |
2b03c6733efa
add "archive" command, like "cvs export" only better.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2092
diff
changeset
|
2822 ('t', 'type', '', _('type of distribution to create')), |
3181
725e3d3145d8
factor opts: walk options
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3180
diff
changeset
|
2823 ] + walkopts, |
2112
2b03c6733efa
add "archive" command, like "cvs export" only better.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2092
diff
changeset
|
2824 _('hg archive [OPTION]... DEST')), |
2159
5c34b98ad6b1
Small cleanups to backout command:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
2158
diff
changeset
|
2825 "backout": |
2158
ec96c4518236
add backout command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2153
diff
changeset
|
2826 (backout, |
2159
5c34b98ad6b1
Small cleanups to backout command:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
2158
diff
changeset
|
2827 [('', 'merge', None, |
5c34b98ad6b1
Small cleanups to backout command:
Thomas Arendsen Hein <thomas@intevation.de>
parents:
2158
diff
changeset
|
2828 _('merge with old dirstate parent after backout')), |
2614
8ba1c31f6864
backout: allow backout of merge changeset with --parent option.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2613
diff
changeset
|
2829 ('', 'parent', '', _('parent to choose when backing out merge')), |
4450
8fa54b9c6c5a
accept -r REV in more places
Daniel Holth <dholth@fastmail.fm>
parents:
4442
diff
changeset
|
2830 ('r', 'rev', '', _('revision to backout')), |
5122
c80af96943aa
refactor options from cmdtable
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
5098
diff
changeset
|
2831 ] + walkopts + commitopts + commitopts2, |
4450
8fa54b9c6c5a
accept -r REV in more places
Daniel Holth <dholth@fastmail.fm>
parents:
4442
diff
changeset
|
2832 _('hg backout [OPTION]... [-r] REV')), |
4730
eadfaa9ec487
Updated command tables in commands.py and hgext extensions.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
4726
diff
changeset
|
2833 "branch": |
eadfaa9ec487
Updated command tables in commands.py and hgext extensions.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
4726
diff
changeset
|
2834 (branch, |
eadfaa9ec487
Updated command tables in commands.py and hgext extensions.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
4726
diff
changeset
|
2835 [('f', 'force', None, |
eadfaa9ec487
Updated command tables in commands.py and hgext extensions.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
4726
diff
changeset
|
2836 _('set branch name even if it shadows an existing branch'))], |
eadfaa9ec487
Updated command tables in commands.py and hgext extensions.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
4726
diff
changeset
|
2837 _('hg branch [NAME]')), |
eadfaa9ec487
Updated command tables in commands.py and hgext extensions.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
4726
diff
changeset
|
2838 "branches": |
eadfaa9ec487
Updated command tables in commands.py and hgext extensions.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
4726
diff
changeset
|
2839 (branches, |
eadfaa9ec487
Updated command tables in commands.py and hgext extensions.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
4726
diff
changeset
|
2840 [('a', 'active', False, |
eadfaa9ec487
Updated command tables in commands.py and hgext extensions.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
4726
diff
changeset
|
2841 _('show only branches that have unmerged heads'))], |
eadfaa9ec487
Updated command tables in commands.py and hgext extensions.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
4726
diff
changeset
|
2842 _('hg branches [-a]')), |
1218
cde6818e082a
Add preliminary support for the bundle and unbundle commands
mpm@selenic.com
parents:
1215
diff
changeset
|
2843 "bundle": |
cde6818e082a
Add preliminary support for the bundle and unbundle commands
mpm@selenic.com
parents:
1215
diff
changeset
|
2844 (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
|
2845 [('f', 'force', None, |
3184
545b6d718593
add remoteopts to bundle command
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3183
diff
changeset
|
2846 _('run even when remote repository is unrelated')), |
3283
d89e98840b08
add -r/--rev and --base option to bundle
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3277
diff
changeset
|
2847 ('r', 'rev', [], |
d89e98840b08
add -r/--rev and --base option to bundle
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3277
diff
changeset
|
2848 _('a changeset you would like to bundle')), |
d89e98840b08
add -r/--rev and --base option to bundle
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3277
diff
changeset
|
2849 ('', 'base', [], |
d89e98840b08
add -r/--rev and --base option to bundle
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3277
diff
changeset
|
2850 _('a base changeset to specify instead of a destination')), |
3184
545b6d718593
add remoteopts to bundle command
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3183
diff
changeset
|
2851 ] + remoteopts, |
3883
6081b4c68baf
Corrected synopsis for many commands.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3862
diff
changeset
|
2852 _('hg bundle [-f] [-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
|
2853 "cat": |
cb1be2327220
Multiple cleanups of things detected by pylint.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
696
diff
changeset
|
2854 (cat, |
1816
08f4398bdb1a
Updated help synopsises and reordered some options. Dropped [-n] from revert.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1812
diff
changeset
|
2855 [('o', 'output', '', _('print output to file with formatted name')), |
08f4398bdb1a
Updated help synopsises and reordered some options. Dropped [-n] from revert.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1812
diff
changeset
|
2856 ('r', 'rev', '', _('print the given revision')), |
3181
725e3d3145d8
factor opts: walk options
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3180
diff
changeset
|
2857 ] + walkopts, |
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
|
2858 _('hg cat [OPTION]... FILE...')), |
697
cb1be2327220
Multiple cleanups of things detected by pylint.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
696
diff
changeset
|
2859 "^clone": |
cb1be2327220
Multiple cleanups of things detected by pylint.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
696
diff
changeset
|
2860 (clone, |
1437
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2861 [('U', 'noupdate', None, _('do not update the new working directory')), |
1602
fb4149eebdd4
strictly adher to 80 chars per line
Muli Ben-Yehuda <mulix@mulix.org>
parents:
1601
diff
changeset
|
2862 ('r', 'rev', [], |
2764
71029a3247cb
clone: replace long help string of inaky with doc comment.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2763
diff
changeset
|
2863 _('a changeset you would like to have after cloning')), |
1816
08f4398bdb1a
Updated help synopsises and reordered some options. Dropped [-n] from revert.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1812
diff
changeset
|
2864 ('', '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
|
2865 ('', 'uncompressed', None, |
de82749d3a71
clone: change name of --stream to --uncompressed.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2618
diff
changeset
|
2866 _('use uncompressed transfer (fast over LAN)')), |
3183
37b53487c341
factor opts: remote repo access options
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3182
diff
changeset
|
2867 ] + remoteopts, |
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
|
2868 _('hg clone [OPTION]... SOURCE [DEST]')), |
697
cb1be2327220
Multiple cleanups of things detected by pylint.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
696
diff
changeset
|
2869 "^commit|ci": |
cb1be2327220
Multiple cleanups of things detected by pylint.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
696
diff
changeset
|
2870 (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
|
2871 [('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
|
2872 _('mark new/missing files as added/removed before committing')), |
5122
c80af96943aa
refactor options from cmdtable
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
5098
diff
changeset
|
2873 ] + walkopts + commitopts + commitopts2, |
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
|
2874 _('hg commit [OPTION]... [FILE]...')), |
1615
83238c1db6de
Cleanup of indentation, spacing, newlines, strings and line length
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1607
diff
changeset
|
2875 "copy|cp": |
83238c1db6de
Cleanup of indentation, spacing, newlines, strings and line length
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1607
diff
changeset
|
2876 (copy, |
1816
08f4398bdb1a
Updated help synopsises and reordered some options. Dropped [-n] from revert.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1812
diff
changeset
|
2877 [('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
|
2878 ('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
|
2879 _('forcibly copy over an existing managed file')), |
3182
a73a785ea8e1
factor opts: --dry-run option
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3181
diff
changeset
|
2880 ] + walkopts + dryrunopts, |
1615
83238c1db6de
Cleanup of indentation, spacing, newlines, strings and line length
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1607
diff
changeset
|
2881 _('hg copy [OPTION]... [SOURCE]... DEST')), |
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
|
2882 "debugancestor": (debugancestor, [], _('debugancestor INDEX REV1 REV2')), |
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
|
2883 "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
|
2884 (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
|
2885 [('o', 'options', None, _('show the command 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
|
2886 _('debugcomplete [-o] CMD')), |
3844
3ba82c3f4bc3
Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents:
3840
diff
changeset
|
2887 "debuginstall": (debuginstall, [], _('debuginstall')), |
1755
a8f7791e3680
add 'debugrebuildstate' to rebuild the dirstate from a given revision
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1754
diff
changeset
|
2888 "debugrebuildstate": |
a8f7791e3680
add 'debugrebuildstate' to rebuild the dirstate from a given revision
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1754
diff
changeset
|
2889 (debugrebuildstate, |
1816
08f4398bdb1a
Updated help synopsises and reordered some options. Dropped [-n] from revert.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1812
diff
changeset
|
2890 [('r', 'rev', '', _('revision to rebuild to'))], |
1755
a8f7791e3680
add 'debugrebuildstate' to rebuild the dirstate from a given revision
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1754
diff
changeset
|
2891 _('debugrebuildstate [-r REV] [REV]')), |
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
|
2892 "debugcheckstate": (debugcheckstate, [], _('debugcheckstate')), |
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
|
2893 "debugsetparents": (debugsetparents, [], _('debugsetparents REV1 [REV2]')), |
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
|
2894 "debugstate": (debugstate, [], _('debugstate')), |
3821
2631b506e93d
Fixed indentation, spacing and a typo (debugdata->debugdate) in commands.table.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3819
diff
changeset
|
2895 "debugdate": |
2631b506e93d
Fixed indentation, spacing and a typo (debugdata->debugdate) in commands.table.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3819
diff
changeset
|
2896 (debugdate, |
2631b506e93d
Fixed indentation, spacing and a typo (debugdata->debugdate) in commands.table.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3819
diff
changeset
|
2897 [('e', 'extended', None, _('try extended date formats'))], |
2631b506e93d
Fixed indentation, spacing and a typo (debugdata->debugdate) in commands.table.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3819
diff
changeset
|
2898 _('debugdate [-e] DATE [RANGE]')), |
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
|
2899 "debugdata": (debugdata, [], _('debugdata FILE REV')), |
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
|
2900 "debugindex": (debugindex, [], _('debugindex FILE')), |
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
|
2901 "debugindexdot": (debugindexdot, [], _('debugindexdot FILE')), |
4730
eadfaa9ec487
Updated command tables in commands.py and hgext extensions.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
4726
diff
changeset
|
2902 "debugrename": |
eadfaa9ec487
Updated command tables in commands.py and hgext extensions.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
4726
diff
changeset
|
2903 (debugrename, |
eadfaa9ec487
Updated command tables in commands.py and hgext extensions.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
4726
diff
changeset
|
2904 [('r', 'rev', '', _('revision to debug'))], |
eadfaa9ec487
Updated command tables in commands.py and hgext extensions.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
4726
diff
changeset
|
2905 _('debugrename [-r REV] FILE')), |
3821
2631b506e93d
Fixed indentation, spacing and a typo (debugdata->debugdate) in commands.table.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3819
diff
changeset
|
2906 "debugwalk": (debugwalk, walkopts, _('debugwalk [OPTION]... [FILE]...')), |
697
cb1be2327220
Multiple cleanups of things detected by pylint.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
696
diff
changeset
|
2907 "^diff": |
cb1be2327220
Multiple cleanups of things detected by pylint.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
696
diff
changeset
|
2908 (diff, |
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
|
2909 [('r', 'rev', [], _('revision')), |
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
|
2910 ('a', 'text', None, _('treat all files as text')), |
1728
9b92b71d5dd7
add -w and -p options to diff. this is for issue 126.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
1720
diff
changeset
|
2911 ('p', 'show-function', None, |
9b92b71d5dd7
add -w and -p options to diff. this is for issue 126.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
1720
diff
changeset
|
2912 _('show which function each change is in')), |
2892 | 2913 ('g', 'git', None, _('use git extended diff format')), |
3193
367a009c2acb
Remove single character equivalent of --nodates (was -D)
Stephen Darnell <stephen@darnell.plus.com>
parents:
3192
diff
changeset
|
2914 ('', 'nodates', None, _("don't include dates in diff headers")), |
1728
9b92b71d5dd7
add -w and -p options to diff. this is for issue 126.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
1720
diff
changeset
|
2915 ('w', 'ignore-all-space', None, |
9b92b71d5dd7
add -w and -p options to diff. this is for issue 126.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
1720
diff
changeset
|
2916 _('ignore white space when comparing lines')), |
2580
a20a1bb0c396
diff: add -b/-B options
Haakon Riiser <haakon.riiser@fys.uio.no>
parents:
2579
diff
changeset
|
2917 ('b', 'ignore-space-change', None, |
a20a1bb0c396
diff: add -b/-B options
Haakon Riiser <haakon.riiser@fys.uio.no>
parents:
2579
diff
changeset
|
2918 _('ignore changes in the amount of white space')), |
a20a1bb0c396
diff: add -b/-B options
Haakon Riiser <haakon.riiser@fys.uio.no>
parents:
2579
diff
changeset
|
2919 ('B', 'ignore-blank-lines', None, |
a20a1bb0c396
diff: add -b/-B options
Haakon Riiser <haakon.riiser@fys.uio.no>
parents:
2579
diff
changeset
|
2920 _('ignore changes whose lines are all blank')), |
3181
725e3d3145d8
factor opts: walk options
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3180
diff
changeset
|
2921 ] + walkopts, |
3883
6081b4c68baf
Corrected synopsis for many commands.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3862
diff
changeset
|
2922 _('hg diff [OPTION]... [-r REV1 [-r REV2]] [FILE]...')), |
697
cb1be2327220
Multiple cleanups of things detected by pylint.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
696
diff
changeset
|
2923 "^export": |
cb1be2327220
Multiple cleanups of things detected by pylint.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
696
diff
changeset
|
2924 (export, |
1615
83238c1db6de
Cleanup of indentation, spacing, newlines, strings and line length
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1607
diff
changeset
|
2925 [('o', 'output', '', _('print output to file with formatted name')), |
1571
bcdc030c59f8
add a --switch-parent option to export against the other parent
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1570
diff
changeset
|
2926 ('a', 'text', None, _('treat all files as text')), |
3026 | 2927 ('g', 'git', None, _('use git extended diff format')), |
3193
367a009c2acb
Remove single character equivalent of --nodates (was -D)
Stephen Darnell <stephen@darnell.plus.com>
parents:
3192
diff
changeset
|
2928 ('', 'nodates', None, _("don't include dates in diff headers")), |
1571
bcdc030c59f8
add a --switch-parent option to export against the other parent
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1570
diff
changeset
|
2929 ('', 'switch-parent', None, _('diff against the second parent'))], |
3883
6081b4c68baf
Corrected synopsis for many commands.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3862
diff
changeset
|
2930 _('hg export [OPTION]... [-o OUTFILESPEC] REV...')), |
1065
6e94c0365d98
Cleanups to commands.py
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1062
diff
changeset
|
2931 "grep": |
6e94c0365d98
Cleanups to commands.py
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1062
diff
changeset
|
2932 (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
|
2933 [('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
|
2934 ('', 'all', None, _('print all revisions that match')), |
2869
8eaaf1321bfe
grep: add --follow support.
Brendan Cully <brendan@kublai.com>
parents:
2868
diff
changeset
|
2935 ('f', 'follow', None, |
8eaaf1321bfe
grep: add --follow support.
Brendan Cully <brendan@kublai.com>
parents:
2868
diff
changeset
|
2936 _('follow changeset history, 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
|
2937 ('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
|
2938 ('l', 'files-with-matches', None, |
fb4149eebdd4
strictly adher to 80 chars per line
Muli Ben-Yehuda <mulix@mulix.org>
parents:
1601
diff
changeset
|
2939 _('print only filenames and revs that match')), |
1437
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2940 ('n', 'line-number', None, _('print matching line numbers')), |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2941 ('r', 'rev', [], _('search in given revision range')), |
1816
08f4398bdb1a
Updated help synopsises and reordered some options. Dropped [-n] from revert.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1812
diff
changeset
|
2942 ('u', 'user', None, _('print user who committed change')), |
3181
725e3d3145d8
factor opts: walk options
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3180
diff
changeset
|
2943 ] + walkopts, |
1615
83238c1db6de
Cleanup of indentation, spacing, newlines, strings and line length
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1607
diff
changeset
|
2944 _('hg grep [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
|
2945 "heads": |
65763ff9fa53
Update online help of hg heads for new --branches option.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
904
diff
changeset
|
2946 (heads, |
3885
1e0b94cfba0e
Remove deprecated old-style branch support
Matt Mackall <mpm@selenic.com>
parents:
3862
diff
changeset
|
2947 [('', 'style', '', _('display using template map file')), |
1907
7718885070b1
let commands that show changesets use templates.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
1800
diff
changeset
|
2948 ('r', 'rev', '', _('show only heads which are descendants of rev')), |
1913
74cf2b2f43d4
fix some things people wanted to be cleaner.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
1910
diff
changeset
|
2949 ('', 'template', '', _('display with template'))], |
4648
8e503fa54d2d
Add option to heads to show only heads for current branch.
Eric Hopper <hopper@omnifarious.org>
parents:
4646
diff
changeset
|
2950 _('hg heads [-r REV] [REV]...')), |
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
|
2951 "help": (help_, [], _('hg help [COMMAND]')), |
4665
091c9e54d306
identify: accept a revision argument
Matt Mackall <mpm@selenic.com>
parents:
4664
diff
changeset
|
2952 "identify|id": |
091c9e54d306
identify: accept a revision argument
Matt Mackall <mpm@selenic.com>
parents:
4664
diff
changeset
|
2953 (identify, |
4666
48c94bffdb28
identify: add support for output flags
Matt Mackall <mpm@selenic.com>
parents:
4665
diff
changeset
|
2954 [('r', 'rev', '', _('identify the specified rev')), |
48c94bffdb28
identify: add support for output flags
Matt Mackall <mpm@selenic.com>
parents:
4665
diff
changeset
|
2955 ('n', 'num', None, _('show local revision number')), |
48c94bffdb28
identify: add support for output flags
Matt Mackall <mpm@selenic.com>
parents:
4665
diff
changeset
|
2956 ('i', 'id', None, _('show global revision id')), |
48c94bffdb28
identify: add support for output flags
Matt Mackall <mpm@selenic.com>
parents:
4665
diff
changeset
|
2957 ('b', 'branch', None, _('show branch')), |
48c94bffdb28
identify: add support for output flags
Matt Mackall <mpm@selenic.com>
parents:
4665
diff
changeset
|
2958 ('t', 'tags', None, _('show tags'))], |
4671
150afe6becf6
identify: take a path to a remote repo
Matt Mackall <mpm@selenic.com>
parents:
4667
diff
changeset
|
2959 _('hg identify [-nibt] [-r REV] [SOURCE]')), |
697
cb1be2327220
Multiple cleanups of things detected by pylint.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
696
diff
changeset
|
2960 "import|patch": |
cb1be2327220
Multiple cleanups of things detected by pylint.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
696
diff
changeset
|
2961 (import_, |
1602
fb4149eebdd4
strictly adher to 80 chars per line
Muli Ben-Yehuda <mulix@mulix.org>
parents:
1601
diff
changeset
|
2962 [('p', 'strip', 1, |
2125
3610d9468b1e
Use string literal concatenation for optlist and import -p option
Thomas Arendsen Hein <thomas@intevation.de>
parents:
2124
diff
changeset
|
2963 _('directory strip option for patch. This has the same\n' |
3610d9468b1e
Use string literal concatenation for optlist and import -p option
Thomas Arendsen Hein <thomas@intevation.de>
parents:
2124
diff
changeset
|
2964 'meaning as the corresponding patch option')), |
3885
1e0b94cfba0e
Remove deprecated old-style branch support
Matt Mackall <mpm@selenic.com>
parents:
3862
diff
changeset
|
2965 ('b', 'base', '', _('base path')), |
1602
fb4149eebdd4
strictly adher to 80 chars per line
Muli Ben-Yehuda <mulix@mulix.org>
parents:
1601
diff
changeset
|
2966 ('f', 'force', None, |
4258 | 2967 _('skip check for outstanding uncommitted changes')), |
2968 ('', '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
|
2969 _('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
|
2970 ('', 'import-branch', None, |
5243cece3d97
Add --import-branch option to hg import to pull in branch information without --exact
Eric Hopper <hopper@omnifarious.org>
parents:
4587
diff
changeset
|
2971 _('Use any branch information in patch (implied by --exact)'))] + commitopts, |
3520
b0dc459cd06c
Remove some more deprecated options from help syntax summaries
Matt Mackall <mpm@selenic.com>
parents:
3519
diff
changeset
|
2972 _('hg import [-p NUM] [-m MESSAGE] [-f] PATCH...')), |
1253
a45e717c61a8
Add rename/mv command.
Bryan O'Sullivan <bos@serpentine.com>
parents:
1250
diff
changeset
|
2973 "incoming|in": (incoming, |
1615
83238c1db6de
Cleanup of indentation, spacing, newlines, strings and line length
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1607
diff
changeset
|
2974 [('M', 'no-merges', None, _('do not show merges')), |
1959
d53a18f592be
add -f/--force to pull, incoming, outgoing, to work on unrelated repo.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
1948
diff
changeset
|
2975 ('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
|
2976 _('run even when remote repository is unrelated')), |
1913
74cf2b2f43d4
fix some things people wanted to be cleaner.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
1910
diff
changeset
|
2977 ('', 'style', '', _('display using template map file')), |
1907
7718885070b1
let commands that show changesets use templates.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
1800
diff
changeset
|
2978 ('n', 'newest-first', None, _('show newest record first')), |
1944
fdf40c9b3306
incoming: add support for remote repo using bundlerepo
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1943
diff
changeset
|
2979 ('', 'bundle', '', _('file to store the bundles into')), |
1439
65cbe22b03fa
allow 'hg out' / 'hg in' to show newest commit first
Michal Kvasnica <kvasnica@gmail.com>
parents:
1437
diff
changeset
|
2980 ('p', 'patch', None, _('show patch')), |
2877
982c3237c63d
Make clear that hg pull -r REV pulls "up to" a revision.
Giorgos Keramidas <keramida@ceid.upatras.gr>
parents:
2874
diff
changeset
|
2981 ('r', 'rev', [], _('a specific revision up to which you would like to pull')), |
1965
62aa1b90414f
add remotecmd/ssh option support to incoming/outgoing
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1959
diff
changeset
|
2982 ('', 'template', '', _('display with template')), |
3183
37b53487c341
factor opts: remote repo access options
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3182
diff
changeset
|
2983 ] + remoteopts, |
3883
6081b4c68baf
Corrected synopsis for many commands.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3862
diff
changeset
|
2984 _('hg incoming [-p] [-n] [-M] [-f] [-r REV]...' |
2544
0ab63318bc36
Added missing space in continued string.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
2521
diff
changeset
|
2985 ' [--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
|
2986 "^init": |
3883
6081b4c68baf
Corrected synopsis for many commands.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3862
diff
changeset
|
2987 (init, |
6081b4c68baf
Corrected synopsis for many commands.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3862
diff
changeset
|
2988 remoteopts, |
6081b4c68baf
Corrected synopsis for many commands.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3862
diff
changeset
|
2989 _('hg init [-e CMD] [--remotecmd CMD] [DEST]')), |
697
cb1be2327220
Multiple cleanups of things detected by pylint.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
696
diff
changeset
|
2990 "locate": |
cb1be2327220
Multiple cleanups of things detected by pylint.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
696
diff
changeset
|
2991 (locate, |
1437
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
2992 [('r', 'rev', '', _('search the repository as it stood at rev')), |
1602
fb4149eebdd4
strictly adher to 80 chars per line
Muli Ben-Yehuda <mulix@mulix.org>
parents:
1601
diff
changeset
|
2993 ('0', 'print0', None, |
fb4149eebdd4
strictly adher to 80 chars per line
Muli Ben-Yehuda <mulix@mulix.org>
parents:
1601
diff
changeset
|
2994 _('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
|
2995 ('f', 'fullpath', None, |
fb4149eebdd4
strictly adher to 80 chars per line
Muli Ben-Yehuda <mulix@mulix.org>
parents:
1601
diff
changeset
|
2996 _('print complete paths from the filesystem root')), |
3181
725e3d3145d8
factor opts: walk options
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3180
diff
changeset
|
2997 ] + walkopts, |
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
|
2998 _('hg locate [OPTION]... [PATTERN]...')), |
697
cb1be2327220
Multiple cleanups of things detected by pylint.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
696
diff
changeset
|
2999 "^log|history": |
cb1be2327220
Multiple cleanups of things detected by pylint.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
696
diff
changeset
|
3000 (log, |
3885
1e0b94cfba0e
Remove deprecated old-style branch support
Matt Mackall <mpm@selenic.com>
parents:
3862
diff
changeset
|
3001 [('f', 'follow', None, |
2777
21e571c21a6b
Make log --follow without a file list follow a single head.
Brendan Cully <brendan@kublai.com>
parents:
2764
diff
changeset
|
3002 _('follow changeset history, or file history across copies and renames')), |
2779
12a7bfcafd8f
Add log option --follow-first to follow only the first parent of
Brendan Cully <brendan@kublai.com>
parents:
2778
diff
changeset
|
3003 ('', 'follow-first', None, |
12a7bfcafd8f
Add log option --follow-first to follow only the first parent of
Brendan Cully <brendan@kublai.com>
parents:
2778
diff
changeset
|
3004 _('only follow the first parent of merge changesets')), |
3816 | 3005 ('d', 'date', '', _('show revs matching date spec')), |
3190 | 3006 ('C', 'copies', None, _('show copied files')), |
4324
cd650cd61b06
help: log --keyword is case-insensitive
TK Soh <teekaysoh@yahoo.com>
parents:
4322
diff
changeset
|
3007 ('k', 'keyword', [], _('do case-insensitive search for a keyword')), |
1756
f29857aaa053
add -l,--limit to log command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
1747
diff
changeset
|
3008 ('l', 'limit', '', _('limit number of changes displayed')), |
1437
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
3009 ('r', 'rev', [], _('show the specified revision or range')), |
3664 | 3010 ('', 'removed', None, _('include revs 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
|
3011 ('M', 'no-merges', None, _('do not show merges')), |
1913
74cf2b2f43d4
fix some things people wanted to be cleaner.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
1910
diff
changeset
|
3012 ('', 'style', '', _('display using template map file')), |
1615
83238c1db6de
Cleanup of indentation, spacing, newlines, strings and line length
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1607
diff
changeset
|
3013 ('m', 'only-merges', None, _('show only merges')), |
1816
08f4398bdb1a
Updated help synopsises and reordered some options. Dropped [-n] from revert.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1812
diff
changeset
|
3014 ('p', 'patch', None, _('show patch')), |
2886 | 3015 ('P', 'prune', [], _('do not display revision or any of its ancestors')), |
1920 | 3016 ('', 'template', '', _('display with template')), |
3181
725e3d3145d8
factor opts: walk options
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3180
diff
changeset
|
3017 ] + walkopts, |
1816
08f4398bdb1a
Updated help synopsises and reordered some options. Dropped [-n] from revert.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1812
diff
changeset
|
3018 _('hg log [OPTION]... [FILE]')), |
5138
13d23d66a6cd
manifest: accept -r for rev specification
Bryan O'Sullivan <bos@serpentine.com>
parents:
5124
diff
changeset
|
3019 "manifest": (manifest, [('r', 'rev', '', _('revision to display'))], |
13d23d66a6cd
manifest: accept -r for rev specification
Bryan O'Sullivan <bos@serpentine.com>
parents:
5124
diff
changeset
|
3020 _('hg manifest [-r REV]')), |
4014
509342f95564
various doc fixes
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
4013
diff
changeset
|
3021 "^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
|
3022 (merge, |
4450
8fa54b9c6c5a
accept -r REV in more places
Daniel Holth <dholth@fastmail.fm>
parents:
4442
diff
changeset
|
3023 [('f', 'force', None, _('force a merge with outstanding changes')), |
8fa54b9c6c5a
accept -r REV in more places
Daniel Holth <dholth@fastmail.fm>
parents:
4442
diff
changeset
|
3024 ('r', 'rev', '', _('revision to merge')), |
8fa54b9c6c5a
accept -r REV in more places
Daniel Holth <dholth@fastmail.fm>
parents:
4442
diff
changeset
|
3025 ], |
8fa54b9c6c5a
accept -r REV in more places
Daniel Holth <dholth@fastmail.fm>
parents:
4442
diff
changeset
|
3026 _('hg merge [-f] [[-r] REV]')), |
1253
a45e717c61a8
Add rename/mv command.
Bryan O'Sullivan <bos@serpentine.com>
parents:
1250
diff
changeset
|
3027 "outgoing|out": (outgoing, |
1615
83238c1db6de
Cleanup of indentation, spacing, newlines, strings and line length
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1607
diff
changeset
|
3028 [('M', 'no-merges', None, _('do not show merges')), |
1959
d53a18f592be
add -f/--force to pull, incoming, outgoing, to work on unrelated repo.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
1948
diff
changeset
|
3029 ('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
|
3030 _('run even when remote repository is unrelated')), |
1439
65cbe22b03fa
allow 'hg out' / 'hg in' to show newest commit first
Michal Kvasnica <kvasnica@gmail.com>
parents:
1437
diff
changeset
|
3031 ('p', 'patch', None, _('show patch')), |
1913
74cf2b2f43d4
fix some things people wanted to be cleaner.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
1910
diff
changeset
|
3032 ('', 'style', '', _('display using template map file')), |
2521
9cceb439048b
add -r/--rev arguments to incoming and outgoing
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
2515
diff
changeset
|
3033 ('r', 'rev', [], _('a specific revision you would like to push')), |
1907
7718885070b1
let commands that show changesets use templates.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
1800
diff
changeset
|
3034 ('n', 'newest-first', None, _('show newest record first')), |
1965
62aa1b90414f
add remotecmd/ssh option support to incoming/outgoing
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1959
diff
changeset
|
3035 ('', 'template', '', _('display with template')), |
3183
37b53487c341
factor opts: remote repo access options
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3182
diff
changeset
|
3036 ] + remoteopts, |
3883
6081b4c68baf
Corrected synopsis for many commands.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3862
diff
changeset
|
3037 _('hg outgoing [-M] [-p] [-n] [-f] [-r REV]... [DEST]')), |
1724
5a36609f73a7
add a -b/--branch option to 'hg parents'
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1720
diff
changeset
|
3038 "^parents": |
5a36609f73a7
add a -b/--branch option to 'hg parents'
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1720
diff
changeset
|
3039 (parents, |
3885
1e0b94cfba0e
Remove deprecated old-style branch support
Matt Mackall <mpm@selenic.com>
parents:
3862
diff
changeset
|
3040 [('r', 'rev', '', _('show parents from the specified rev')), |
1913
74cf2b2f43d4
fix some things people wanted to be cleaner.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
1910
diff
changeset
|
3041 ('', 'style', '', _('display using template map file')), |
74cf2b2f43d4
fix some things people wanted to be cleaner.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
1910
diff
changeset
|
3042 ('', 'template', '', _('display with template'))], |
3504
f4ab58d4ccd4
Remove [-b] options from help syntax lines
Matt Mackall <mpm@selenic.com>
parents:
3503
diff
changeset
|
3043 _('hg parents [-r REV] [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
|
3044 "paths": (paths, [], _('hg paths [NAME]')), |
697
cb1be2327220
Multiple cleanups of things detected by pylint.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
696
diff
changeset
|
3045 "^pull": |
cb1be2327220
Multiple cleanups of things detected by pylint.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
696
diff
changeset
|
3046 (pull, |
1602
fb4149eebdd4
strictly adher to 80 chars per line
Muli Ben-Yehuda <mulix@mulix.org>
parents:
1601
diff
changeset
|
3047 [('u', 'update', None, |
3191
a32f65549b9e
Documentation clarification for --update option to pull and unbundle
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3190
diff
changeset
|
3048 _('update to new tip 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
|
3049 ('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
|
3050 _('run even when remote repository is unrelated')), |
3883
6081b4c68baf
Corrected synopsis for many commands.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3862
diff
changeset
|
3051 ('r', 'rev', [], |
6081b4c68baf
Corrected synopsis for many commands.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3862
diff
changeset
|
3052 _('a specific revision up to which you would like to pull')), |
3183
37b53487c341
factor opts: remote repo access options
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3182
diff
changeset
|
3053 ] + remoteopts, |
3883
6081b4c68baf
Corrected synopsis for many commands.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3862
diff
changeset
|
3054 _('hg pull [-u] [-f] [-r REV]... [-e CMD] [--remotecmd CMD] [SOURCE]')), |
818 | 3055 "^push": |
3056 (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
|
3057 [('f', 'force', None, _('force push')), |
1781
284fc722c342
add an optional argument to push only the specified revisions (push -r)
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1712
diff
changeset
|
3058 ('r', 'rev', [], _('a specific revision you would like to push')), |
3183
37b53487c341
factor opts: remote repo access options
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3182
diff
changeset
|
3059 ] + remoteopts, |
3883
6081b4c68baf
Corrected synopsis for many commands.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3862
diff
changeset
|
3060 _('hg push [-f] [-r REV]... [-e CMD] [--remotecmd CMD] [DEST]')), |
1818
9bbc7b304c34
Make the deprecated rawcommit an alias of debugrawcommit.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1816
diff
changeset
|
3061 "debugrawcommit|rawcommit": |
697
cb1be2327220
Multiple cleanups of things detected by pylint.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
696
diff
changeset
|
3062 (rawcommit, |
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
|
3063 [('p', 'parent', [], _('parent')), |
3857
f6f16f871049
Uniformisation of commit help for -m and -l.
Mathieu Clabaut <mathieu.clabaut@gmail.com>
parents:
3855
diff
changeset
|
3064 ('F', 'files', '', _('file list')) |
5122
c80af96943aa
refactor options from cmdtable
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
5098
diff
changeset
|
3065 ] + commitopts + commitopts2, |
1818
9bbc7b304c34
Make the deprecated rawcommit an alias of debugrawcommit.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1816
diff
changeset
|
3066 _('hg debugrawcommit [OPTION]... [FILE]...')), |
1615
83238c1db6de
Cleanup of indentation, spacing, newlines, strings and line length
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1607
diff
changeset
|
3067 "recover": (recover, [], _('hg recover')), |
83238c1db6de
Cleanup of indentation, spacing, newlines, strings and line length
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1607
diff
changeset
|
3068 "^remove|rm": |
83238c1db6de
Cleanup of indentation, spacing, newlines, strings and line length
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1607
diff
changeset
|
3069 (remove, |
2245
d2118a0926bd
Added -A as an alias for --after to hg remove, like for other commands.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
2241
diff
changeset
|
3070 [('A', 'after', None, _('record remove that has already occurred')), |
2179
520dd3d28e9b
add --after option to remove command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2175
diff
changeset
|
3071 ('f', 'force', None, _('remove file even if modified')), |
3181
725e3d3145d8
factor opts: walk options
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3180
diff
changeset
|
3072 ] + walkopts, |
1615
83238c1db6de
Cleanup of indentation, spacing, newlines, strings and line length
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1607
diff
changeset
|
3073 _('hg remove [OPTION]... FILE...')), |
83238c1db6de
Cleanup of indentation, spacing, newlines, strings and line length
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1607
diff
changeset
|
3074 "rename|mv": |
83238c1db6de
Cleanup of indentation, spacing, newlines, strings and line length
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1607
diff
changeset
|
3075 (rename, |
1816
08f4398bdb1a
Updated help synopsises and reordered some options. Dropped [-n] from revert.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1812
diff
changeset
|
3076 [('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
|
3077 ('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
|
3078 _('forcibly copy over an existing managed file')), |
3182
a73a785ea8e1
factor opts: --dry-run option
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3181
diff
changeset
|
3079 ] + walkopts + dryrunopts, |
1869
42c76ec7a8d4
Reordered options for remove, fixed synopsis for rename.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1867
diff
changeset
|
3080 _('hg rename [OPTION]... SOURCE... DEST')), |
697
cb1be2327220
Multiple cleanups of things detected by pylint.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
696
diff
changeset
|
3081 "^revert": |
cb1be2327220
Multiple cleanups of things detected by pylint.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
696
diff
changeset
|
3082 (revert, |
2966
3b7626b861f8
revert: add -a as alias for --all
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2965
diff
changeset
|
3083 [('a', 'all', None, _('revert all changes when no arguments given')), |
3818
120be84f33de
Add --date support to update and revert
Matt Mackall <mpm@selenic.com>
parents:
3816
diff
changeset
|
3084 ('d', 'date', '', _('tipmost revision matching date')), |
2965
890e285c52a1
revert: require --all to revert all files.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2963
diff
changeset
|
3085 ('r', 'rev', '', _('revision to revert to')), |
2029
d436b21b20dc
rewrite revert command. fix issues 93, 123, 147.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2022
diff
changeset
|
3086 ('', 'no-backup', None, _('do not save backup copies of files')), |
3182
a73a785ea8e1
factor opts: --dry-run option
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3181
diff
changeset
|
3087 ] + walkopts + dryrunopts, |
3883
6081b4c68baf
Corrected synopsis for many commands.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3862
diff
changeset
|
3088 _('hg revert [OPTION]... [-r REV] [NAME]...')), |
2227
4f072bb06e89
deprecate undo command, replace with rollback command.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2212
diff
changeset
|
3089 "rollback": (rollback, [], _('hg rollback')), |
1615
83238c1db6de
Cleanup of indentation, spacing, newlines, strings and line length
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1607
diff
changeset
|
3090 "root": (root, [], _('hg root')), |
3539
e1508621e9ef
add --untrusted to showconfig
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
3524
diff
changeset
|
3091 "showconfig|debugconfig": |
e1508621e9ef
add --untrusted to showconfig
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
3524
diff
changeset
|
3092 (showconfig, |
e1508621e9ef
add --untrusted to showconfig
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
3524
diff
changeset
|
3093 [('u', 'untrusted', None, _('show untrusted configuration options'))], |
e1508621e9ef
add --untrusted to showconfig
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
3524
diff
changeset
|
3094 _('showconfig [-u] [NAME]...')), |
697
cb1be2327220
Multiple cleanups of things detected by pylint.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
696
diff
changeset
|
3095 "^serve": |
cb1be2327220
Multiple cleanups of things detected by pylint.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
696
diff
changeset
|
3096 (serve, |
1437
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
3097 [('A', 'accesslog', '', _('name of access log file to write to')), |
1740
f95654385065
add --daemon option to serve command. for issue 45.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
1736
diff
changeset
|
3098 ('d', 'daemon', None, _('run server in background')), |
1742
1e5bb6c929cd
Added help string for --daemon-pipefds
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1741
diff
changeset
|
3099 ('', 'daemon-pipefds', '', _('used internally by daemon mode')), |
1437
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
3100 ('E', 'errorlog', '', _('name of error log file to write to')), |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
3101 ('p', 'port', 0, _('port to use (default: 8000)')), |
ea51d296085f
import docstring from doc/hg.1.txt
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1436
diff
changeset
|
3102 ('a', 'address', '', _('address to use')), |
1615
83238c1db6de
Cleanup of indentation, spacing, newlines, strings and line length
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1607
diff
changeset
|
3103 ('n', 'name', '', |
1602
fb4149eebdd4
strictly adher to 80 chars per line
Muli Ben-Yehuda <mulix@mulix.org>
parents:
1601
diff
changeset
|
3104 _('name to show in web pages (default: working dir)')), |
2124
27fd8b7a6c51
Cleaned trailing whitespace in hgweb.py, removed command line shortcut for webdir-conf.
Alexander Schremmer <alex AT alexanderweb DOT de>
parents:
2122
diff
changeset
|
3105 ('', 'webdir-conf', '', _('name of the webdir config file' |
27fd8b7a6c51
Cleaned trailing whitespace in hgweb.py, removed command line shortcut for webdir-conf.
Alexander Schremmer <alex AT alexanderweb DOT de>
parents:
2122
diff
changeset
|
3106 ' (serve more than one repo)')), |
1740
f95654385065
add --daemon option to serve command. for issue 45.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
1736
diff
changeset
|
3107 ('', 'pid-file', '', _('name of file to write process ID to')), |
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
|
3108 ('', 'stdio', None, _('for remote clients')), |
1615
83238c1db6de
Cleanup of indentation, spacing, newlines, strings and line length
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1607
diff
changeset
|
3109 ('t', 'templates', '', _('web templates to use')), |
83238c1db6de
Cleanup of indentation, spacing, newlines, strings and line length
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1607
diff
changeset
|
3110 ('', 'style', '', _('template style to use')), |
4850
f3802f9f1840
Add SSL support to hg serve, activated via --certificate option
Brendan Cully <brendan@kublai.com>
parents:
4847
diff
changeset
|
3111 ('6', 'ipv6', None, _('use IPv6 in addition to IPv4')), |
f3802f9f1840
Add SSL support to hg serve, activated via --certificate option
Brendan Cully <brendan@kublai.com>
parents:
4847
diff
changeset
|
3112 ('', 'certificate', '', _('SSL certificate file'))], |
1615
83238c1db6de
Cleanup of indentation, spacing, newlines, strings and line length
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1607
diff
changeset
|
3113 _('hg serve [OPTION]...')), |
1507
cd8fadd8c689
Add explicit 'st' alias for status
Matt Mackall <mpm@selenic.com>
parents:
1506
diff
changeset
|
3114 "^status|st": |
840
141744605b51
hg status: added options to select files by status.
tksoh@users.sourceforge.net
parents:
839
diff
changeset
|
3115 (status, |
2661
5c10b7ed3411
status: add -c (clean) and -A (all files) options
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
2639
diff
changeset
|
3116 [('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
|
3117 ('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
|
3118 ('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
|
3119 ('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
|
3120 ('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
|
3121 ('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
|
3122 ('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
|
3123 ('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
|
3124 ('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
|
3125 ('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
|
3126 ('0', 'print0', None, |
fb4149eebdd4
strictly adher to 80 chars per line
Muli Ben-Yehuda <mulix@mulix.org>
parents:
1601
diff
changeset
|
3127 _('end filenames with NUL, for use with xargs')), |
3462
2b3b703b3a2b
Add --rev option to status
Brendan Cully <brendan@kublai.com>
parents:
3460
diff
changeset
|
3128 ('', 'rev', [], _('show difference from revision')), |
3181
725e3d3145d8
factor opts: walk options
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
3180
diff
changeset
|
3129 ] + walkopts, |
1615
83238c1db6de
Cleanup of indentation, spacing, newlines, strings and line length
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1607
diff
changeset
|
3130 _('hg status [OPTION]... [FILE]...')), |
697
cb1be2327220
Multiple cleanups of things detected by pylint.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
696
diff
changeset
|
3131 "tag": |
cb1be2327220
Multiple cleanups of things detected by pylint.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
696
diff
changeset
|
3132 (tag, |
4273
8185a1ca8628
tags: require -f to replace an existing tag
Matt Mackall <mpm@selenic.com>
parents:
4249
diff
changeset
|
3133 [('f', 'force', None, _('replace existing tag')), |
8185a1ca8628
tags: require -f to replace an existing tag
Matt Mackall <mpm@selenic.com>
parents:
4249
diff
changeset
|
3134 ('l', 'local', None, _('make the tag local')), |
4217 | 3135 ('r', 'rev', '', _('revision to tag')), |
5122
c80af96943aa
refactor options from cmdtable
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
5098
diff
changeset
|
3136 ('', 'remove', None, _('remove a tag')), |
c80af96943aa
refactor options from cmdtable
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
5098
diff
changeset
|
3137 # -l/--local is already there, commitopts cannot be used |
c80af96943aa
refactor options from cmdtable
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
5098
diff
changeset
|
3138 ('m', 'message', '', _('use <text> as commit message')), |
c80af96943aa
refactor options from cmdtable
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
5098
diff
changeset
|
3139 ] + commitopts2, |
1812
a81f99dfaa2a
fix the synopsis of some commands, mark rawcommit as deprecated in short help
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1811
diff
changeset
|
3140 _('hg tag [-l] [-m TEXT] [-d DATE] [-u USER] [-r REV] NAME')), |
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
|
3141 "tags": (tags, [], _('hg 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
|
3142 "tip": |
8eaa8e06a364
Add option -b/--branch to hg tip (as done for hg parents).
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1761
diff
changeset
|
3143 (tip, |
3885
1e0b94cfba0e
Remove deprecated old-style branch support
Matt Mackall <mpm@selenic.com>
parents:
3862
diff
changeset
|
3144 [('', 'style', '', _('display using template map file')), |
1907
7718885070b1
let commands that show changesets use templates.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
1800
diff
changeset
|
3145 ('p', 'patch', None, _('show patch')), |
1913
74cf2b2f43d4
fix some things people wanted to be cleaner.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
1910
diff
changeset
|
3146 ('', 'template', '', _('display with template'))], |
3504
f4ab58d4ccd4
Remove [-b] options from help syntax lines
Matt Mackall <mpm@selenic.com>
parents:
3503
diff
changeset
|
3147 _('hg tip [-p]')), |
1218
cde6818e082a
Add preliminary support for the bundle and unbundle commands
mpm@selenic.com
parents:
1215
diff
changeset
|
3148 "unbundle": |
cde6818e082a
Add preliminary support for the bundle and unbundle commands
mpm@selenic.com
parents:
1215
diff
changeset
|
3149 (unbundle, |
1601
a1b25fb2e764
Error handling for unbundle, fix option line wrapping
Matt Mackall <mpm@selenic.com>
parents:
1600
diff
changeset
|
3150 [('u', 'update', None, |
3191
a32f65549b9e
Documentation clarification for --update option to pull and unbundle
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3190
diff
changeset
|
3151 _('update to new tip if changesets were unbundled'))], |
4699
a6b62584d0b2
unbundle: accept multiple file arguments
Giorgos Keramidas <keramida@ceid.upatras.gr>
parents:
4697
diff
changeset
|
3152 _('hg unbundle [-u] FILE...')), |
593 | 3153 "^update|up|checkout|co": |
697
cb1be2327220
Multiple cleanups of things detected by pylint.
Thomas Arendsen Hein <thomas@intevation.de>
parents:
696
diff
changeset
|
3154 (update, |
3885
1e0b94cfba0e
Remove deprecated old-style branch support
Matt Mackall <mpm@selenic.com>
parents:
3862
diff
changeset
|
3155 [('C', 'clean', None, _('overwrite locally modified files')), |
4450
8fa54b9c6c5a
accept -r REV in more places
Daniel Holth <dholth@fastmail.fm>
parents:
4442
diff
changeset
|
3156 ('d', 'date', '', _('tipmost revision matching date')), |
8fa54b9c6c5a
accept -r REV in more places
Daniel Holth <dholth@fastmail.fm>
parents:
4442
diff
changeset
|
3157 ('r', 'rev', '', _('revision'))], |
8fa54b9c6c5a
accept -r REV in more places
Daniel Holth <dholth@fastmail.fm>
parents:
4442
diff
changeset
|
3158 _('hg update [-C] [-d DATE] [[-r] REV]')), |
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
|
3159 "verify": (verify, [], _('hg verify')), |
3658
6389205291c6
move show_version to version_
Matt Mackall <mpm@selenic.com>
parents:
3657
diff
changeset
|
3160 "version": (version_, [], _('hg version')), |
1046
772507daaa17
Sort global options by topic: directories, ui, timing, other
Thomas Arendsen Hein <thomas@intevation.de>
parents:
1044
diff
changeset
|
3161 } |
209 | 3162 |
1887
913397c27cd8
new command debugcomplete
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
1875
diff
changeset
|
3163 norepo = ("clone init version help debugancestor debugcomplete debugdata" |
3844
3ba82c3f4bc3
Add debuginstall command to do basic install tests
Matt Mackall <mpm@selenic.com>
parents:
3840
diff
changeset
|
3164 " debugindex debugindexdot debugdate debuginstall") |
5330
4528858e7202
make identify an optionalrepo command
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
5329
diff
changeset
|
3165 optionalrepo = ("identify paths serve showconfig") |