Mercurial > hg
annotate tests/test-alias.t @ 12536:208fc9ad6a48
alias: only allow global options before a shell alias, pass later ones through
This patch refactors the dispatch code to change how arguments to shell aliases
are handled.
A separate "pass" to determine whether a command is a shell alias has been
added. The rough steps dispatch now performs when a command is given are these:
* Parse all arguments up to the command name.
* If any arguments such as --repository or --cwd are given (which could change
the config file used, and therefore the definition of aliases), they are
taken into account.
* We determine whether the command is a shell alias.
* If so, execute the alias. The --repo and --cwd arguments are still in effect.
Any arguments *after* the command name are passed unchanged through to the
shell command (and interpolated as normal.
* If the command is *not* a shell alias, the dispatching is effectively "reset"
and reparsed as normal in its entirety.
The net effect of this patch is to make shell alias commands behave as you
would expect.
Any arguments you give to a shell alias *after* the alias name are passed
through unchanged. This lets you do something like the following:
[alias]
filereleased = !$HG log -r 'descendants(adds("$1")) and tagged()' -l1 $2 $3 $4 $5
$ hg filereleased hgext/bookmarks.py --style compact
Previously the `--style compact` part would fail because Mercurial would
interpret those arguments as arguments to the alias command itself (which
doesn't take any arguments).
Also: running something like `hg -R ~/src/hg-crew filereleased
hgext/bookmarks.py` when `filereleased` is only defined in that repo's config
will now work.
These global arguments can *only* be given to a shell alias *before* the alias
name. For example, this will *not* work in the above situation:
$ hg filereleased -R ~/src/hg-crew hgext/bookmarks.py
The reason for this is that you may want to pass arguments like --repository to
the alias (or, more likely, their short versions like -R):
[alias]
own = !chown $@ `$HG root`
$ hg own steve
$ hg own -R steve
author | Steve Losh <steve@stevelosh.com> |
---|---|
date | Tue, 24 Aug 2010 18:25:33 -0400 |
parents | 92e30e135581 |
children | 929b424e1146 |
rev | line source |
---|---|
11814
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
1 $ cat >> $HGRCPATH <<EOF |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
2 > [alias] |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
3 > myinit = init |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
4 > cleanstatus = status -c |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
5 > unknown = bargle |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
6 > ambiguous = s |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
7 > recursive = recursive |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
8 > nodefinition = |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
9 > no--cwd = status --cwd elsewhere |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
10 > no-R = status -R elsewhere |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
11 > no--repo = status --repo elsewhere |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
12 > no--repository = status --repository elsewhere |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
13 > mylog = log |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
14 > lognull = log -r null |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
15 > shortlog = log --template '{rev} {node|short} | {date|isodate}\n' |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
16 > dln = lognull --debug |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
17 > nousage = rollback |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
18 > put = export -r 0 -o "\$FOO/%R.diff" |
11989
f853873fc66d
aliases: provide more flexible ways to work with shell alias arguments
Steve Losh <steve@stevelosh.com>
parents:
11814
diff
changeset
|
19 > blank = !echo |
f853873fc66d
aliases: provide more flexible ways to work with shell alias arguments
Steve Losh <steve@stevelosh.com>
parents:
11814
diff
changeset
|
20 > self = !echo '\$0' |
f853873fc66d
aliases: provide more flexible ways to work with shell alias arguments
Steve Losh <steve@stevelosh.com>
parents:
11814
diff
changeset
|
21 > echo = !echo '\$@' |
f853873fc66d
aliases: provide more flexible ways to work with shell alias arguments
Steve Losh <steve@stevelosh.com>
parents:
11814
diff
changeset
|
22 > echo1 = !echo '\$1' |
f853873fc66d
aliases: provide more flexible ways to work with shell alias arguments
Steve Losh <steve@stevelosh.com>
parents:
11814
diff
changeset
|
23 > echo2 = !echo '\$2' |
f853873fc66d
aliases: provide more flexible ways to work with shell alias arguments
Steve Losh <steve@stevelosh.com>
parents:
11814
diff
changeset
|
24 > echo13 = !echo '\$1' '\$3' |
f853873fc66d
aliases: provide more flexible ways to work with shell alias arguments
Steve Losh <steve@stevelosh.com>
parents:
11814
diff
changeset
|
25 > count = !hg log -r '\$@' --template='.' | wc -c | sed -e 's/ //g' |
12536
208fc9ad6a48
alias: only allow global options before a shell alias, pass later ones through
Steve Losh <steve@stevelosh.com>
parents:
12327
diff
changeset
|
26 > mcount = !hg log \$@ --template='.' | wc -c | sed -e 's/ //g' |
11814
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
27 > rt = root |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
28 > |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
29 > [defaults] |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
30 > mylog = -q |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
31 > lognull = -q |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
32 > log = -v |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
33 > EOF |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
34 |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
35 |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
36 basic |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
37 |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
38 $ hg myinit alias |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
39 |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
40 |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
41 unknown |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
42 |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
43 $ hg unknown |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
44 alias 'unknown' resolves to unknown command 'bargle' |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
45 $ hg help unknown |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
46 alias 'unknown' resolves to unknown command 'bargle' |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
47 |
4801 | 48 |
11814
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
49 ambiguous |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
50 |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
51 $ hg ambiguous |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
52 alias 'ambiguous' resolves to ambiguous command 's' |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
53 $ hg help ambiguous |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
54 alias 'ambiguous' resolves to ambiguous command 's' |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
55 |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
56 |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
57 recursive |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
58 |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
59 $ hg recursive |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
60 alias 'recursive' resolves to unknown command 'recursive' |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
61 $ hg help recursive |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
62 alias 'recursive' resolves to unknown command 'recursive' |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
63 |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
64 |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
65 no definition |
8477
a0104303f400
alias: honor the [defaults] section, fix issue1642
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
5523
diff
changeset
|
66 |
11814
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
67 $ hg nodef |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
68 no definition for alias 'nodefinition' |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
69 $ hg help nodef |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
70 no definition for alias 'nodefinition' |
4801 | 71 |
11814
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
72 |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
73 invalid options |
4801 | 74 |
11814
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
75 $ hg no--cwd |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
76 error in definition for alias 'no--cwd': --cwd may only be given on the command line |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
77 $ hg help no--cwd |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
78 error in definition for alias 'no--cwd': --cwd may only be given on the command line |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
79 $ hg no-R |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
80 error in definition for alias 'no-R': -R may only be given on the command line |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
81 $ hg help no-R |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
82 error in definition for alias 'no-R': -R may only be given on the command line |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
83 $ hg no--repo |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
84 error in definition for alias 'no--repo': --repo may only be given on the command line |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
85 $ hg help no--repo |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
86 error in definition for alias 'no--repo': --repo may only be given on the command line |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
87 $ hg no--repository |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
88 error in definition for alias 'no--repository': --repository may only be given on the command line |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
89 $ hg help no--repository |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
90 error in definition for alias 'no--repository': --repository may only be given on the command line |
4801 | 91 |
11814
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
92 $ cd alias |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
93 |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
94 |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
95 no usage |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
96 |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
97 $ hg nousage |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
98 no rollback information available |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
99 |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
100 $ echo foo > foo |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
101 $ hg ci -Amfoo |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
102 adding foo |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
103 |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
104 |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
105 with opts |
8655 | 106 |
11814
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
107 $ hg cleanst |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
108 C foo |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
109 |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
110 |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
111 with opts and whitespace |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
112 |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
113 $ hg shortlog |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
114 0 e63c23eaa88a | 1970-01-01 00:00 +0000 |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
115 |
11695
ee8f36a6c766
alias: improved diagnostic when arguments include --cwd, etc.
Dan Villiom Podlaski Christiansen <danchr@gmail.com>
parents:
11681
diff
changeset
|
116 |
11814
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
117 interaction with defaults |
9993
8bce1e0d2801
alias: do not crash when aliased command has no usage help text
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8655
diff
changeset
|
118 |
11814
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
119 $ hg mylog |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
120 0:e63c23eaa88a |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
121 $ hg lognull |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
122 -1:000000000000 |
9993
8bce1e0d2801
alias: do not crash when aliased command has no usage help text
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
8655
diff
changeset
|
123 |
11814
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
124 |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
125 properly recursive |
4801 | 126 |
11814
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
127 $ hg dln |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
128 changeset: -1:0000000000000000000000000000000000000000 |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
129 parent: -1:0000000000000000000000000000000000000000 |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
130 parent: -1:0000000000000000000000000000000000000000 |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
131 manifest: -1:0000000000000000000000000000000000000000 |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
132 user: |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
133 date: Thu Jan 01 00:00:00 1970 +0000 |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
134 extra: branch=default |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
135 |
8477
a0104303f400
alias: honor the [defaults] section, fix issue1642
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
5523
diff
changeset
|
136 |
8519
5fbee915ea5d
alias: a0104303f400 did not correctly handle whitespace in the args
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
8477
diff
changeset
|
137 |
11814
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
138 path expanding |
8655 | 139 |
11814
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
140 $ FOO=`pwd` hg put |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
141 $ cat 0.diff |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
142 # HG changeset patch |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
143 # User test |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
144 # Date 0 0 |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
145 # Node ID e63c23eaa88ae77967edcf4ea194d31167c478b0 |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
146 # Parent 0000000000000000000000000000000000000000 |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
147 foo |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
148 |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
149 diff -r 000000000000 -r e63c23eaa88a foo |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
150 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
151 +++ b/foo Thu Jan 01 00:00:00 1970 +0000 |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
152 @@ -0,0 +1,1 @@ |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
153 +foo |
10793
16df09a54113
expand paths in aliases
Alexander Solovyov <piranha@piranha.org.ua>
parents:
10021
diff
changeset
|
154 |
11814
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
155 |
11989
f853873fc66d
aliases: provide more flexible ways to work with shell alias arguments
Steve Losh <steve@stevelosh.com>
parents:
11814
diff
changeset
|
156 simple shell aliases |
11676
e4357c214bf1
alias: ensure checksignature() is applied directly to the command (issue2286)
Brodie Rao <brodie@bitheap.org>
parents:
11460
diff
changeset
|
157 |
11989
f853873fc66d
aliases: provide more flexible ways to work with shell alias arguments
Steve Losh <steve@stevelosh.com>
parents:
11814
diff
changeset
|
158 $ hg blank |
f853873fc66d
aliases: provide more flexible ways to work with shell alias arguments
Steve Losh <steve@stevelosh.com>
parents:
11814
diff
changeset
|
159 |
f853873fc66d
aliases: provide more flexible ways to work with shell alias arguments
Steve Losh <steve@stevelosh.com>
parents:
11814
diff
changeset
|
160 $ hg blank foo |
f853873fc66d
aliases: provide more flexible ways to work with shell alias arguments
Steve Losh <steve@stevelosh.com>
parents:
11814
diff
changeset
|
161 |
12536
208fc9ad6a48
alias: only allow global options before a shell alias, pass later ones through
Steve Losh <steve@stevelosh.com>
parents:
12327
diff
changeset
|
162 $ hg self |
208fc9ad6a48
alias: only allow global options before a shell alias, pass later ones through
Steve Losh <steve@stevelosh.com>
parents:
12327
diff
changeset
|
163 self |
11989
f853873fc66d
aliases: provide more flexible ways to work with shell alias arguments
Steve Losh <steve@stevelosh.com>
parents:
11814
diff
changeset
|
164 $ hg echo |
f853873fc66d
aliases: provide more flexible ways to work with shell alias arguments
Steve Losh <steve@stevelosh.com>
parents:
11814
diff
changeset
|
165 |
11814
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
166 $ hg echo foo |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
167 foo |
11989
f853873fc66d
aliases: provide more flexible ways to work with shell alias arguments
Steve Losh <steve@stevelosh.com>
parents:
11814
diff
changeset
|
168 $ hg echo 'test $2' foo |
f853873fc66d
aliases: provide more flexible ways to work with shell alias arguments
Steve Losh <steve@stevelosh.com>
parents:
11814
diff
changeset
|
169 test $2 foo |
f853873fc66d
aliases: provide more flexible ways to work with shell alias arguments
Steve Losh <steve@stevelosh.com>
parents:
11814
diff
changeset
|
170 $ hg echo1 foo bar baz |
f853873fc66d
aliases: provide more flexible ways to work with shell alias arguments
Steve Losh <steve@stevelosh.com>
parents:
11814
diff
changeset
|
171 foo |
f853873fc66d
aliases: provide more flexible ways to work with shell alias arguments
Steve Losh <steve@stevelosh.com>
parents:
11814
diff
changeset
|
172 $ hg echo2 foo bar baz |
f853873fc66d
aliases: provide more flexible ways to work with shell alias arguments
Steve Losh <steve@stevelosh.com>
parents:
11814
diff
changeset
|
173 bar |
f853873fc66d
aliases: provide more flexible ways to work with shell alias arguments
Steve Losh <steve@stevelosh.com>
parents:
11814
diff
changeset
|
174 $ hg echo13 foo bar baz test |
f853873fc66d
aliases: provide more flexible ways to work with shell alias arguments
Steve Losh <steve@stevelosh.com>
parents:
11814
diff
changeset
|
175 foo baz |
f853873fc66d
aliases: provide more flexible ways to work with shell alias arguments
Steve Losh <steve@stevelosh.com>
parents:
11814
diff
changeset
|
176 $ hg echo2 foo |
f853873fc66d
aliases: provide more flexible ways to work with shell alias arguments
Steve Losh <steve@stevelosh.com>
parents:
11814
diff
changeset
|
177 |
f853873fc66d
aliases: provide more flexible ways to work with shell alias arguments
Steve Losh <steve@stevelosh.com>
parents:
11814
diff
changeset
|
178 $ echo bar > bar |
f853873fc66d
aliases: provide more flexible ways to work with shell alias arguments
Steve Losh <steve@stevelosh.com>
parents:
11814
diff
changeset
|
179 $ hg ci -qA -m bar |
f853873fc66d
aliases: provide more flexible ways to work with shell alias arguments
Steve Losh <steve@stevelosh.com>
parents:
11814
diff
changeset
|
180 $ hg count . |
f853873fc66d
aliases: provide more flexible ways to work with shell alias arguments
Steve Losh <steve@stevelosh.com>
parents:
11814
diff
changeset
|
181 1 |
f853873fc66d
aliases: provide more flexible ways to work with shell alias arguments
Steve Losh <steve@stevelosh.com>
parents:
11814
diff
changeset
|
182 $ hg count 'branch(default)' |
f853873fc66d
aliases: provide more flexible ways to work with shell alias arguments
Steve Losh <steve@stevelosh.com>
parents:
11814
diff
changeset
|
183 2 |
12536
208fc9ad6a48
alias: only allow global options before a shell alias, pass later ones through
Steve Losh <steve@stevelosh.com>
parents:
12327
diff
changeset
|
184 $ hg mcount -r '"branch(default)"' |
208fc9ad6a48
alias: only allow global options before a shell alias, pass later ones through
Steve Losh <steve@stevelosh.com>
parents:
12327
diff
changeset
|
185 2 |
208fc9ad6a48
alias: only allow global options before a shell alias, pass later ones through
Steve Losh <steve@stevelosh.com>
parents:
12327
diff
changeset
|
186 |
208fc9ad6a48
alias: only allow global options before a shell alias, pass later ones through
Steve Losh <steve@stevelosh.com>
parents:
12327
diff
changeset
|
187 |
208fc9ad6a48
alias: only allow global options before a shell alias, pass later ones through
Steve Losh <steve@stevelosh.com>
parents:
12327
diff
changeset
|
188 shell aliases with global options |
208fc9ad6a48
alias: only allow global options before a shell alias, pass later ones through
Steve Losh <steve@stevelosh.com>
parents:
12327
diff
changeset
|
189 |
208fc9ad6a48
alias: only allow global options before a shell alias, pass later ones through
Steve Losh <steve@stevelosh.com>
parents:
12327
diff
changeset
|
190 $ hg init sub |
208fc9ad6a48
alias: only allow global options before a shell alias, pass later ones through
Steve Losh <steve@stevelosh.com>
parents:
12327
diff
changeset
|
191 $ cd sub |
208fc9ad6a48
alias: only allow global options before a shell alias, pass later ones through
Steve Losh <steve@stevelosh.com>
parents:
12327
diff
changeset
|
192 $ hg count 'branch(default)' |
208fc9ad6a48
alias: only allow global options before a shell alias, pass later ones through
Steve Losh <steve@stevelosh.com>
parents:
12327
diff
changeset
|
193 0 |
208fc9ad6a48
alias: only allow global options before a shell alias, pass later ones through
Steve Losh <steve@stevelosh.com>
parents:
12327
diff
changeset
|
194 $ hg -v count 'branch(default)' |
208fc9ad6a48
alias: only allow global options before a shell alias, pass later ones through
Steve Losh <steve@stevelosh.com>
parents:
12327
diff
changeset
|
195 0 |
208fc9ad6a48
alias: only allow global options before a shell alias, pass later ones through
Steve Losh <steve@stevelosh.com>
parents:
12327
diff
changeset
|
196 $ hg -R .. count 'branch(default)' |
208fc9ad6a48
alias: only allow global options before a shell alias, pass later ones through
Steve Losh <steve@stevelosh.com>
parents:
12327
diff
changeset
|
197 0 |
208fc9ad6a48
alias: only allow global options before a shell alias, pass later ones through
Steve Losh <steve@stevelosh.com>
parents:
12327
diff
changeset
|
198 $ hg --cwd .. count 'branch(default)' |
208fc9ad6a48
alias: only allow global options before a shell alias, pass later ones through
Steve Losh <steve@stevelosh.com>
parents:
12327
diff
changeset
|
199 2 |
208fc9ad6a48
alias: only allow global options before a shell alias, pass later ones through
Steve Losh <steve@stevelosh.com>
parents:
12327
diff
changeset
|
200 $ hg echo --cwd .. |
208fc9ad6a48
alias: only allow global options before a shell alias, pass later ones through
Steve Losh <steve@stevelosh.com>
parents:
12327
diff
changeset
|
201 --cwd .. |
208fc9ad6a48
alias: only allow global options before a shell alias, pass later ones through
Steve Losh <steve@stevelosh.com>
parents:
12327
diff
changeset
|
202 |
208fc9ad6a48
alias: only allow global options before a shell alias, pass later ones through
Steve Losh <steve@stevelosh.com>
parents:
12327
diff
changeset
|
203 |
208fc9ad6a48
alias: only allow global options before a shell alias, pass later ones through
Steve Losh <steve@stevelosh.com>
parents:
12327
diff
changeset
|
204 repo specific shell aliases |
208fc9ad6a48
alias: only allow global options before a shell alias, pass later ones through
Steve Losh <steve@stevelosh.com>
parents:
12327
diff
changeset
|
205 |
208fc9ad6a48
alias: only allow global options before a shell alias, pass later ones through
Steve Losh <steve@stevelosh.com>
parents:
12327
diff
changeset
|
206 $ cat >> .hg/hgrc <<EOF |
208fc9ad6a48
alias: only allow global options before a shell alias, pass later ones through
Steve Losh <steve@stevelosh.com>
parents:
12327
diff
changeset
|
207 > [alias] |
208fc9ad6a48
alias: only allow global options before a shell alias, pass later ones through
Steve Losh <steve@stevelosh.com>
parents:
12327
diff
changeset
|
208 > subalias = !echo sub \$@ |
208fc9ad6a48
alias: only allow global options before a shell alias, pass later ones through
Steve Losh <steve@stevelosh.com>
parents:
12327
diff
changeset
|
209 > EOF |
208fc9ad6a48
alias: only allow global options before a shell alias, pass later ones through
Steve Losh <steve@stevelosh.com>
parents:
12327
diff
changeset
|
210 $ cat >> ../.hg/hgrc <<EOF |
208fc9ad6a48
alias: only allow global options before a shell alias, pass later ones through
Steve Losh <steve@stevelosh.com>
parents:
12327
diff
changeset
|
211 > [alias] |
208fc9ad6a48
alias: only allow global options before a shell alias, pass later ones through
Steve Losh <steve@stevelosh.com>
parents:
12327
diff
changeset
|
212 > mainalias = !echo main \$@ |
208fc9ad6a48
alias: only allow global options before a shell alias, pass later ones through
Steve Losh <steve@stevelosh.com>
parents:
12327
diff
changeset
|
213 > EOF |
208fc9ad6a48
alias: only allow global options before a shell alias, pass later ones through
Steve Losh <steve@stevelosh.com>
parents:
12327
diff
changeset
|
214 |
208fc9ad6a48
alias: only allow global options before a shell alias, pass later ones through
Steve Losh <steve@stevelosh.com>
parents:
12327
diff
changeset
|
215 |
208fc9ad6a48
alias: only allow global options before a shell alias, pass later ones through
Steve Losh <steve@stevelosh.com>
parents:
12327
diff
changeset
|
216 shell alias defined in current repo |
208fc9ad6a48
alias: only allow global options before a shell alias, pass later ones through
Steve Losh <steve@stevelosh.com>
parents:
12327
diff
changeset
|
217 |
208fc9ad6a48
alias: only allow global options before a shell alias, pass later ones through
Steve Losh <steve@stevelosh.com>
parents:
12327
diff
changeset
|
218 $ hg subalias |
208fc9ad6a48
alias: only allow global options before a shell alias, pass later ones through
Steve Losh <steve@stevelosh.com>
parents:
12327
diff
changeset
|
219 sub |
208fc9ad6a48
alias: only allow global options before a shell alias, pass later ones through
Steve Losh <steve@stevelosh.com>
parents:
12327
diff
changeset
|
220 $ hg --cwd .. subalias > /dev/null |
208fc9ad6a48
alias: only allow global options before a shell alias, pass later ones through
Steve Losh <steve@stevelosh.com>
parents:
12327
diff
changeset
|
221 hg: unknown command 'subalias' |
208fc9ad6a48
alias: only allow global options before a shell alias, pass later ones through
Steve Losh <steve@stevelosh.com>
parents:
12327
diff
changeset
|
222 [255] |
208fc9ad6a48
alias: only allow global options before a shell alias, pass later ones through
Steve Losh <steve@stevelosh.com>
parents:
12327
diff
changeset
|
223 $ hg -R .. subalias > /dev/null |
208fc9ad6a48
alias: only allow global options before a shell alias, pass later ones through
Steve Losh <steve@stevelosh.com>
parents:
12327
diff
changeset
|
224 hg: unknown command 'subalias' |
208fc9ad6a48
alias: only allow global options before a shell alias, pass later ones through
Steve Losh <steve@stevelosh.com>
parents:
12327
diff
changeset
|
225 [255] |
208fc9ad6a48
alias: only allow global options before a shell alias, pass later ones through
Steve Losh <steve@stevelosh.com>
parents:
12327
diff
changeset
|
226 |
208fc9ad6a48
alias: only allow global options before a shell alias, pass later ones through
Steve Losh <steve@stevelosh.com>
parents:
12327
diff
changeset
|
227 |
208fc9ad6a48
alias: only allow global options before a shell alias, pass later ones through
Steve Losh <steve@stevelosh.com>
parents:
12327
diff
changeset
|
228 shell alias defined in other repo |
208fc9ad6a48
alias: only allow global options before a shell alias, pass later ones through
Steve Losh <steve@stevelosh.com>
parents:
12327
diff
changeset
|
229 |
208fc9ad6a48
alias: only allow global options before a shell alias, pass later ones through
Steve Losh <steve@stevelosh.com>
parents:
12327
diff
changeset
|
230 $ hg mainalias > /dev/null |
208fc9ad6a48
alias: only allow global options before a shell alias, pass later ones through
Steve Losh <steve@stevelosh.com>
parents:
12327
diff
changeset
|
231 hg: unknown command 'mainalias' |
208fc9ad6a48
alias: only allow global options before a shell alias, pass later ones through
Steve Losh <steve@stevelosh.com>
parents:
12327
diff
changeset
|
232 [255] |
208fc9ad6a48
alias: only allow global options before a shell alias, pass later ones through
Steve Losh <steve@stevelosh.com>
parents:
12327
diff
changeset
|
233 $ hg -R .. mainalias |
208fc9ad6a48
alias: only allow global options before a shell alias, pass later ones through
Steve Losh <steve@stevelosh.com>
parents:
12327
diff
changeset
|
234 main |
208fc9ad6a48
alias: only allow global options before a shell alias, pass later ones through
Steve Losh <steve@stevelosh.com>
parents:
12327
diff
changeset
|
235 $ hg --cwd .. mainalias |
208fc9ad6a48
alias: only allow global options before a shell alias, pass later ones through
Steve Losh <steve@stevelosh.com>
parents:
12327
diff
changeset
|
236 main |
11989
f853873fc66d
aliases: provide more flexible ways to work with shell alias arguments
Steve Losh <steve@stevelosh.com>
parents:
11814
diff
changeset
|
237 |
11814
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
238 |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
239 invalid arguments |
11676
e4357c214bf1
alias: ensure checksignature() is applied directly to the command (issue2286)
Brodie Rao <brodie@bitheap.org>
parents:
11460
diff
changeset
|
240 |
11814
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
241 $ hg rt foo |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
242 hg rt: invalid arguments |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
243 hg rt |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
244 |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
245 alias for: hg root |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
246 |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
247 print the root (top) of the current working directory |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
248 |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
249 Print the root directory of the current repository. |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
250 |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
251 Returns 0 on success. |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
252 |
61b0a01182d5
tests: unify test-alias
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents:
11695
diff
changeset
|
253 use "hg -v help rt" to show global options |
12316
4134686b83e1
tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents:
11989
diff
changeset
|
254 [255] |