Mercurial > hg-onsub
annotate onsub.py @ 12:90b54c4fe4fe
onsub extension: pre and post order
author | jakob krainz <jakob@hawo-net.de> |
---|---|
date | Tue, 06 Mar 2012 12:55:40 +0100 |
parents | ecc4fd16555d |
children | 34aa014b5989 |
rev | line source |
---|---|
6 | 1 # onsub.py - execute commands recursively on subrepositories |
2 # | |
3 # Copyright 2010, 2011 aragost Trifork | |
4 # | |
5 # This software may be used and distributed according to the terms of | |
6 # the GNU General Public License version 2 or any later version. | |
0 | 7 |
8 import os | |
9 from mercurial.i18n import _ | |
10 from mercurial import extensions, subrepo, util | |
11 | |
12 """execute a command in each subrepository""" | |
13 | |
14 def onsub(ui, repo, *args, **opts): | |
15 """execute a command in each subrepository | |
16 | |
7
a2ad7553ba79
Improve help text (in particular, clarify meaning of --print0).
Greg Ward <greg@gerg.ca>
parents:
6
diff
changeset
|
17 Executes CMD with the current working directory set to the root of |
a2ad7553ba79
Improve help text (in particular, clarify meaning of --print0).
Greg Ward <greg@gerg.ca>
parents:
6
diff
changeset
|
18 each subrepository. By default, execution stops if CMD returns a |
a2ad7553ba79
Improve help text (in particular, clarify meaning of --print0).
Greg Ward <greg@gerg.ca>
parents:
6
diff
changeset
|
19 non-zero exit code. Use --ignore-errors to override this. |
0 | 20 |
7
a2ad7553ba79
Improve help text (in particular, clarify meaning of --print0).
Greg Ward <greg@gerg.ca>
parents:
6
diff
changeset
|
21 Use --verbose/-v to print the command being run and the subrepo |
a2ad7553ba79
Improve help text (in particular, clarify meaning of --print0).
Greg Ward <greg@gerg.ca>
parents:
6
diff
changeset
|
22 name for each run of CMD in a subrepo. Alternately, use |
a2ad7553ba79
Improve help text (in particular, clarify meaning of --print0).
Greg Ward <greg@gerg.ca>
parents:
6
diff
changeset
|
23 --print0/-0 to print just the subrepo name followed by a NUL |
a2ad7553ba79
Improve help text (in particular, clarify meaning of --print0).
Greg Ward <greg@gerg.ca>
parents:
6
diff
changeset
|
24 character instead of a newline. This can be useful in combination |
a2ad7553ba79
Improve help text (in particular, clarify meaning of --print0).
Greg Ward <greg@gerg.ca>
parents:
6
diff
changeset
|
25 with :hg:`status --print0`. |
0 | 26 |
27 The command has access to the following environment variables: | |
28 | |
29 ``HG_REPO``: | |
30 Absolute path to the top-level repository in which the onsub | |
31 command was executed. | |
32 | |
33 ``HG_SUBPATH``: | |
34 Relative path to the current subrepository from the top-level | |
35 repository. | |
36 | |
37 ``HG_SUBURL``: | |
38 URL for the current subrepository as specified in the | |
39 containing repository's ``.hgsub`` file. | |
40 | |
41 ``HG_SUBSTATE``: | |
42 State of the current subrepository as specified in the | |
43 containing repository's ``.hgsubstate`` file. | |
44 """ | |
12
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
45 if len(args) == 2: |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
46 precmd = args[0] |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
47 postcmd = args[1] |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
48 if opts.get('breadth_first') or opts.get('post_order'): |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
49 raise util.Abort(_("onsub: '-b' and '-p' imply the use of only one command")) |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
50 elif len(args) == 1: |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
51 if opts.get('post_order'): |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
52 precmd = None |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
53 postcmd = args[0] |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
54 else: |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
55 precmd = args[0] |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
56 postcmd = None |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
57 elif len(args) == 0: |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
58 # cmd == '' means only do print0 |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
59 if opts.get('post_order'): |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
60 precmd = None |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
61 postcmd = '' |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
62 else: |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
63 precmd = '' |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
64 postcmd = None |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
65 else: |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
66 raise util.Abort(_("onsub: at most 2 command arguments required")) |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
67 if opts.get('post_order') and opts.get('breadth_first'): |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
68 raise util.Abort(_("onsub: '-b' and '-p' are mutually exclusive")) |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
69 foreach(ui, repo, precmd, postcmd, |
8
ecc4fd16555d
Add --max-depth option to limit depth of recursion.
Greg Ward <greg@gerg.ca>
parents:
7
diff
changeset
|
70 not opts.get('breadth_first'), |
ecc4fd16555d
Add --max-depth option to limit depth of recursion.
Greg Ward <greg@gerg.ca>
parents:
7
diff
changeset
|
71 opts.get('max_depth'), |
ecc4fd16555d
Add --max-depth option to limit depth of recursion.
Greg Ward <greg@gerg.ca>
parents:
7
diff
changeset
|
72 opts.get('print0'), |
12
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
73 opts.get('ignore_errors'), |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
74 opts.get('root_repo')) |
0 | 75 |
12
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
76 def execCmd(ui, rootrepo, sub, doaction, print0, cmd, inroot, ignoreerrors): |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
77 """ if doaction, execute cmd; else, do nothing. if inroot, |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
78 then command is executed inside rootrepo; else, inside sub |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
79 |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
80 If cmd == None, do nothing. If cmd == '', do only the print0 (if needed). |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
81 Else, do either print0 or the debugging message, then execute the command. |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
82 """ |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
83 if not doaction: |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
84 return |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
85 if inroot: |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
86 envargdict = dict(HG_SUBPATH='.', |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
87 HG_SUBURL='.', |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
88 HG_SUBSTATE=rootrepo['.'].hex(), |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
89 HG_REPO=rootrepo.root) |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
90 relpath = '.' |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
91 cmdwd = rootrepo.root |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
92 else: |
4
aa0c2e9f5f59
Adapt to Mercurial API change
Martin Geisler <mg@aragost.com>
parents:
3
diff
changeset
|
93 # subrepo.relpath was renamed to subrepo.subrelpath in |
aa0c2e9f5f59
Adapt to Mercurial API change
Martin Geisler <mg@aragost.com>
parents:
3
diff
changeset
|
94 # 18b5b6392fcf. |
aa0c2e9f5f59
Adapt to Mercurial API change
Martin Geisler <mg@aragost.com>
parents:
3
diff
changeset
|
95 if hasattr(subrepo, 'relpath'): |
aa0c2e9f5f59
Adapt to Mercurial API change
Martin Geisler <mg@aragost.com>
parents:
3
diff
changeset
|
96 relpath = subrepo.relpath(sub) |
aa0c2e9f5f59
Adapt to Mercurial API change
Martin Geisler <mg@aragost.com>
parents:
3
diff
changeset
|
97 else: |
aa0c2e9f5f59
Adapt to Mercurial API change
Martin Geisler <mg@aragost.com>
parents:
3
diff
changeset
|
98 relpath = subrepo.subrelpath(sub) |
12
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
99 envargdict = dict(HG_SUBPATH=relpath, |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
100 HG_SUBURL=sub._path, |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
101 HG_SUBSTATE=sub._state[1], |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
102 HG_REPO=rootrepo.root) |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
103 cmdwd = os.path.join(rootrepo.root, relpath) |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
104 if ignoreerrors: |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
105 onerr = None |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
106 else: |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
107 onerr = util.Abort |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
108 if cmd != None: |
0 | 109 if print0: |
110 ui.write(relpath, "\0") | |
12
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
111 if cmd != '': |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
112 if not print0: ui.note(_("executing '%s' in %s\n") % (cmd, relpath)) |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
113 util.system(cmd, environ=envargdict, cwd=cmdwd, onerr=onerr, |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
114 errprefix=_('terminated onsub in %s') % relpath) |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
115 |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
116 |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
117 |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
118 def foreach(ui, repo, precmd, postcmd, depthfirst, maxdepth, print0, ignoreerrors, includeroot): |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
119 """execute (pre/post)cmd in repo.root and in each subrepository""" |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
120 seen = set() |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
121 execCmd(ui=ui, rootrepo=repo, sub=None, doaction=includeroot, |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
122 print0=print0, cmd=precmd, inroot=True, ignoreerrors=ignoreerrors) |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
123 ctx = repo['.'] |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
124 work = [(1, ctx.sub(subpath)) for subpath in sorted(ctx.substate)] |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
125 if depthfirst: |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
126 work.reverse() |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
127 while work: |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
128 if depthfirst: |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
129 (depth, sub) = work[-1] |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
130 if sub in seen: |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
131 dopreaction = False |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
132 dopostaction = True |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
133 doaddchildren = False |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
134 work.pop() |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
135 else: |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
136 dopreaction = True |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
137 dopostaction = False |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
138 doaddchildren = True |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
139 seen.add(sub) |
3 | 140 else: |
12
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
141 (depth, sub) = work.pop(0) |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
142 dopreaction = True |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
143 dopostaction = False |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
144 doaddchildren = True |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
145 if depth > maxdepth >= 0: |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
146 continue |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
147 execCmd(ui=ui, rootrepo=repo, sub=sub, doaction=dopreaction, |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
148 print0=print0, cmd=precmd, inroot=False, ignoreerrors=ignoreerrors) |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
149 if doaddchildren: |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
150 if isinstance(sub, subrepo.hgsubrepo): |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
151 rev = sub._state[1] |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
152 ctx = sub._repo[rev] |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
153 w = [(depth + 1, ctx.sub(subpath)) |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
154 for subpath in sorted(ctx.substate)] |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
155 if depthfirst: |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
156 w.reverse() |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
157 work.extend(w) |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
158 execCmd(ui=ui, rootrepo=repo, sub=sub, doaction=dopostaction, |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
159 print0=print0, cmd=postcmd, inroot=False, ignoreerrors=ignoreerrors) |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
160 execCmd(ui=ui, rootrepo=repo, sub=None, doaction=includeroot, |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
161 print0=print0, cmd=postcmd, inroot=True, ignoreerrors=ignoreerrors) |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
162 |
0 | 163 cmdtable = { |
164 "onsub": | |
165 (onsub, | |
166 [('b', 'breadth-first', None, | |
167 _('use breadth-first traversal')), | |
12
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
168 ('p', 'post-order', None, |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
169 _('use post-order depth-first traversal')), |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
170 ('', 'root-repo', None, |
90b54c4fe4fe
onsub extension: pre and post order
jakob krainz <jakob@hawo-net.de>
parents:
8
diff
changeset
|
171 _('include root repository in traversal')), |
8
ecc4fd16555d
Add --max-depth option to limit depth of recursion.
Greg Ward <greg@gerg.ca>
parents:
7
diff
changeset
|
172 ('', 'max-depth', -1, |
ecc4fd16555d
Add --max-depth option to limit depth of recursion.
Greg Ward <greg@gerg.ca>
parents:
7
diff
changeset
|
173 _('limit recursion to N levels (negative for no limit)'), 'N'), |
3 | 174 ('', 'ignore-errors', None, |
175 _('continue execution despite errors')), | |
0 | 176 ('0', 'print0', None, |
177 _('end subrepository names with NUL, for use with xargs'))], | |
3 | 178 _('[-b] [-0] [--ignore-errors] CMD')) |
0 | 179 } |