##// END OF EJS Templates
narrow: fix flaky behavior described in issue6150...
narrow: fix flaky behavior described in issue6150 This has been plaguing the CI for a good while, and it doesn't appear to have an easy fix proposed yet. The solution in this change is to always do an unambiguous (but expensive) lookup in case of comparison. This should always be correct, albeit suboptimal. Differential Revision: https://phab.mercurial-scm.org/D10034

File last commit:

r46888:9c9e0b4b default
r47280:b994db7c stable
Show More
test-alias.t
722 lines | 17.6 KiB | text/troff | Tads3Lexer
Steve Losh
alias: add test cases for $ escaping in shell aliases
r13434 $ HGFOO=BAR; export HGFOO
Nicolas Dumazet
tests: unify test-alias
r11814 $ cat >> $HGRCPATH <<EOF
> [alias]
Augie Fackler
alias: don't shadow commands that we only partially matched (issue2993) (BC)...
r15233 > # should clobber ci but not commit (issue2993)
> ci = version
Nicolas Dumazet
tests: unify test-alias
r11814 > myinit = init
Rodrigo Damazio
help: supporting both help and doc for aliases...
r37152 > myinit:doc = This is my documented alias for init.
> myinit:help = [OPTIONS] [BLA] [BLE]
Yuya Nishihara
alias: fix loss of non-zero return code in command aliases...
r21556 > mycommit = commit
Rodrigo Damazio
help: supporting both help and doc for aliases...
r37152 > mycommit:doc = This is my alias with only doc.
Patrick Mezard
alias: inherit command optionalrepo flag (issue3298)...
r16609 > optionalrepo = showconfig alias.myinit
Nicolas Dumazet
tests: unify test-alias
r11814 > cleanstatus = status -c
Rodrigo Damazio
help: supporting both help and doc for aliases...
r37152 > cleanstatus:help = [ONLYHELPHERE]
Nicolas Dumazet
tests: unify test-alias
r11814 > unknown = bargle
> ambiguous = s
> recursive = recursive
Yuya Nishihara
alias: add test for alias command provided by disabled extension...
r22159 > disabled = email
Nicolas Dumazet
tests: unify test-alias
r11814 > nodefinition =
Yuya Nishihara
alias: handle shlex error in command aliases...
r21569 > noclosingquotation = '
Nicolas Dumazet
tests: unify test-alias
r11814 > no--cwd = status --cwd elsewhere
> no-R = status -R elsewhere
> no--repo = status --repo elsewhere
> no--repository = status --repository elsewhere
Simon Heimberg
dispatch: also a separate warning message on aliases with --config...
r18693 > no--config = status --config a.config=1
Nicolas Dumazet
tests: unify test-alias
r11814 > mylog = log
> lognull = log -r null
Rodrigo Damazio
help: supporting both help and doc for aliases...
r37152 > lognull:doc = Logs the null rev
> lognull:help = foo bar baz
Nicolas Dumazet
tests: unify test-alias
r11814 > shortlog = log --template '{rev} {node|short} | {date|isodate}\n'
Alexander Solovyov
add positional arguments to non-shell aliases
r14265 > positional = log --template '{\$2} {\$1} | {date|isodate}\n'
Nicolas Dumazet
tests: unify test-alias
r11814 > dln = lognull --debug
Rodrigo Damazio
help: supporting both help and doc for aliases...
r37152 > recursivedoc = dln
> recursivedoc:doc = Logs the null rev in debug mode
Nicolas Dumazet
tests: unify test-alias
r11814 > nousage = rollback
> put = export -r 0 -o "\$FOO/%R.diff"
Mads Kiilerich
test-alias: adapt for Windows...
r16965 > blank = !printf '\n'
> self = !printf '\$0\n'
> echoall = !printf '\$@\n'
> echo1 = !printf '\$1\n'
> echo2 = !printf '\$2\n'
> echo13 = !printf '\$1 \$3\n'
Siddharth Agarwal
alias: expand "$@" as list of parameters quoted individually (BC) (issue4200)...
r22158 > echotokens = !printf "%s\n" "\$@"
Mads Kiilerich
test-alias: adapt for Windows...
r16965 > count = !hg log -r "\$@" --template=. | wc -c | sed -e 's/ //g'
> mcount = !hg log \$@ --template=. | wc -c | sed -e 's/ //g'
Nicolas Dumazet
tests: unify test-alias
r11814 > rt = root
Martin Geisler
tests: don't load unnecessary graphlog extension...
r20117 > tglog = log -G --template "{rev}:{node|short}: '{desc}' {branches}\n"
Steve Losh
alias: fall back to normal error handling for ambigious commands (fixes issue2475)
r12932 > idalias = id
> idaliaslong = id
> idaliasshell = !echo test
> parentsshell1 = !echo one
> parentsshell2 = !echo two
Mads Kiilerich
test-alias: adapt for Windows...
r16965 > escaped1 = !printf 'test\$\$test\n'
> escaped2 = !sh -c 'echo "HGFOO is \$\$HGFOO"'
> escaped3 = !sh -c 'echo "\$1 is \$\$\$1"'
> escaped4 = !printf '\$\$0 \$\$@\n'
Yuya Nishihara
alias: fix loss of non-zero return code in command aliases...
r21556 > exit1 = !sh -c 'exit 1'
Nicolas Dumazet
tests: unify test-alias
r11814 >
> [defaults]
> mylog = -q
> lognull = -q
> log = -v
> EOF
basic
$ hg myinit alias
Rodrigo Damazio
help: supporting both help and doc for aliases...
r37152 help
$ hg help -c | grep myinit
rdamazio@google.com
help: displaying documented aliases by default...
r40450 myinit This is my documented alias for init.
Rodrigo Damazio
help: supporting both help and doc for aliases...
r37152 $ hg help -c | grep mycommit
rdamazio@google.com
help: displaying documented aliases by default...
r40450 mycommit This is my alias with only doc.
Rodrigo Damazio
help: supporting both help and doc for aliases...
r37152 $ hg help -c | grep cleanstatus
rdamazio@google.com
help: displaying documented aliases by default...
r40450 [1]
Rodrigo Damazio
help: supporting both help and doc for aliases...
r37152 $ hg help -c | grep lognull
rdamazio@google.com
help: displaying documented aliases by default...
r40450 lognull Logs the null rev
Rodrigo Damazio
help: supporting both help and doc for aliases...
r37152 $ hg help -c | grep dln
rdamazio@google.com
help: displaying documented aliases by default...
r40450 [1]
Rodrigo Damazio
help: supporting both help and doc for aliases...
r37152 $ hg help -c | grep recursivedoc
rdamazio@google.com
help: displaying documented aliases by default...
r40450 recursivedoc Logs the null rev in debug mode
Rodrigo Damazio
help: supporting both help and doc for aliases...
r37152 $ hg help myinit
hg myinit [OPTIONS] [BLA] [BLE]
alias for: hg init
This is my documented alias for init.
defined by: * (glob)
*/* (glob) (?)
*/* (glob) (?)
*/* (glob) (?)
options:
-e --ssh CMD specify ssh command to use
--remotecmd CMD specify hg command to run on the remote side
--insecure do not verify server certificate (ignoring web.cacerts
config)
(some details hidden, use --verbose to show complete help)
$ hg help mycommit
hg mycommit [OPTION]... [FILE]...
alias for: hg commit
This is my alias with only doc.
defined by: * (glob)
*/* (glob) (?)
*/* (glob) (?)
*/* (glob) (?)
options ([+] can be repeated):
-A --addremove mark new/missing files as added/removed before
committing
--close-branch mark a branch head as closed
--amend amend the parent of the working directory
-s --secret use the secret phase for committing
-e --edit invoke editor on commit messages
-i --interactive use interactive mode
-I --include PATTERN [+] include names matching the given patterns
-X --exclude PATTERN [+] exclude names matching the given patterns
-m --message TEXT use text as commit message
-l --logfile FILE read commit message from file
-d --date DATE record the specified date as commit date
-u --user USER record the specified user as committer
-S --subrepos recurse into subrepositories
(some details hidden, use --verbose to show complete help)
$ hg help cleanstatus
hg cleanstatus [ONLYHELPHERE]
alias for: hg status -c
show changed files in the working directory
Show status of files in the repository. If names are given, only files
that match are shown. Files that are clean or ignored or the source of a
copy/move operation, are not listed unless -c/--clean, -i/--ignored,
-C/--copies or -A/--all are given. Unless options described with "show
only ..." are given, the options -mardu are used.
Option -q/--quiet hides untracked (unknown and ignored) files unless
explicitly requested with -u/--unknown or -i/--ignored.
Note:
'hg status' may appear to disagree with diff if permissions have
changed or a merge has occurred. The standard diff format does not
report permission changes and diff only reports changes relative to one
merge parent.
If one revision is given, it is used as the base revision. If two
revisions are given, the differences between them are shown. The --change
option can also be used as a shortcut to list the changed files of a
revision from its first parent.
The codes used to show the status of files are:
M = modified
A = added
R = removed
C = clean
! = missing (deleted by non-hg command, but still tracked)
? = not tracked
I = ignored
= origin of the previous file (with --copies)
Returns 0 on success.
defined by: * (glob)
*/* (glob) (?)
*/* (glob) (?)
*/* (glob) (?)
options ([+] can be repeated):
-A --all show status of all files
-m --modified show only modified files
-a --added show only added files
-r --removed show only removed files
Joerg Sonnenberger
status: match category text in the option description...
r45694 -d --deleted show only missing files
Rodrigo Damazio
help: supporting both help and doc for aliases...
r37152 -c --clean show only files without changes
-u --unknown show only unknown (not tracked) files
-i --ignored show only ignored files
-n --no-status hide status prefix
-C --copies show source of copied files
-0 --print0 end filenames with NUL, for use with xargs
--rev REV [+] show difference from revision
--change REV list the changed files of a revision
-I --include PATTERN [+] include names matching the given patterns
-X --exclude PATTERN [+] exclude names matching the given patterns
-S --subrepos recurse into subrepositories
Yuya Nishihara
formatter: remove experimental marker from -T option...
r39967 -T --template TEMPLATE display with template
Rodrigo Damazio
help: supporting both help and doc for aliases...
r37152
(some details hidden, use --verbose to show complete help)
$ hg help recursivedoc | head -n 5
hg recursivedoc foo bar baz
alias for: hg dln
Logs the null rev in debug mode
Nicolas Dumazet
tests: unify test-alias
r11814
unknown
$ hg unknown
Martin von Zweigbergk
errors: raise ConfigError on bad alias definition...
r46524 config error: alias 'unknown' resolves to unknown command 'bargle'
[30]
Nicolas Dumazet
tests: unify test-alias
r11814 $ hg help unknown
alias 'unknown' resolves to unknown command 'bargle'
ambiguous
$ hg ambiguous
Martin von Zweigbergk
errors: raise ConfigError on bad alias definition...
r46524 config error: alias 'ambiguous' resolves to ambiguous command 's'
[30]
Nicolas Dumazet
tests: unify test-alias
r11814 $ hg help ambiguous
alias 'ambiguous' resolves to ambiguous command 's'
recursive
$ hg recursive
Martin von Zweigbergk
errors: raise ConfigError on bad alias definition...
r46524 config error: alias 'recursive' resolves to unknown command 'recursive'
[30]
Nicolas Dumazet
tests: unify test-alias
r11814 $ hg help recursive
alias 'recursive' resolves to unknown command 'recursive'
Yuya Nishihara
alias: add test for alias command provided by disabled extension...
r22159 disabled
$ hg disabled
Martin von Zweigbergk
errors: raise ConfigError on bad alias definition...
r46524 config error: alias 'disabled' resolves to unknown command 'email'
Yuya Nishihara
alias: exit from bad definition by Abort
r22164 ('email' is provided by 'patchbomb' extension)
Martin von Zweigbergk
errors: raise ConfigError on bad alias definition...
r46524 [30]
Yuya Nishihara
alias: add test for alias command provided by disabled extension...
r22159 $ hg help disabled
alias 'disabled' resolves to unknown command 'email'
Yuya Nishihara
help: provide help of bad alias without executing aliascmd()...
r22162
Yuya Nishihara
alias: add test for alias command provided by disabled extension...
r22159 'email' is provided by the following extension:
patchbomb command to send changesets as (a series of) patch emails
timeless
help: use single quotes in use warning
r29974 (use 'hg help extensions' for information on enabling extensions)
Yuya Nishihara
alias: add test for alias command provided by disabled extension...
r22159
Nicolas Dumazet
tests: unify test-alias
r11814 no definition
$ hg nodef
Martin von Zweigbergk
errors: raise ConfigError on bad alias definition...
r46524 config error: no definition for alias 'nodefinition'
[30]
Nicolas Dumazet
tests: unify test-alias
r11814 $ hg help nodef
no definition for alias 'nodefinition'
Yuya Nishihara
alias: handle shlex error in command aliases...
r21569 no closing quotation
$ hg noclosing
Martin von Zweigbergk
errors: raise ConfigError on bad alias definition...
r46524 config error: error in definition for alias 'noclosingquotation': No closing quotation
[30]
Yuya Nishihara
alias: handle shlex error in command aliases...
r21569 $ hg help noclosing
error in definition for alias 'noclosingquotation': No closing quotation
Yuya Nishihara
dispatch: replace _earlygetopt(strip=True) with new parser...
r35225 "--" in alias definition should be preserved
$ hg --config alias.dash='cat --' -R alias dash -r0
abort: -r0 not under root '$TESTTMP/alias'
(consider using '--cwd alias')
[255]
Yuya Nishihara
alias: handle shlex error in command aliases...
r21569
Nicolas Dumazet
tests: unify test-alias
r11814 invalid options
$ hg no--cwd
Martin von Zweigbergk
errors: raise ConfigError on bad alias definition...
r46524 config error: error in definition for alias 'no--cwd': --cwd may only be given on the command line
[30]
Nicolas Dumazet
tests: unify test-alias
r11814 $ hg help no--cwd
Yuya Nishihara
help: provide help of bad alias without executing aliascmd()...
r22162 error in definition for alias 'no--cwd': --cwd may only be given on the
command line
Nicolas Dumazet
tests: unify test-alias
r11814 $ hg no-R
Martin von Zweigbergk
errors: raise ConfigError on bad alias definition...
r46524 config error: error in definition for alias 'no-R': -R may only be given on the command line
[30]
Nicolas Dumazet
tests: unify test-alias
r11814 $ hg help no-R
error in definition for alias 'no-R': -R may only be given on the command line
$ hg no--repo
Martin von Zweigbergk
errors: raise ConfigError on bad alias definition...
r46524 config error: error in definition for alias 'no--repo': --repo may only be given on the command line
[30]
Nicolas Dumazet
tests: unify test-alias
r11814 $ hg help no--repo
Yuya Nishihara
help: provide help of bad alias without executing aliascmd()...
r22162 error in definition for alias 'no--repo': --repo may only be given on the
command line
Nicolas Dumazet
tests: unify test-alias
r11814 $ hg no--repository
Martin von Zweigbergk
errors: raise ConfigError on bad alias definition...
r46524 config error: error in definition for alias 'no--repository': --repository may only be given on the command line
[30]
Nicolas Dumazet
tests: unify test-alias
r11814 $ hg help no--repository
Yuya Nishihara
help: provide help of bad alias without executing aliascmd()...
r22162 error in definition for alias 'no--repository': --repository may only be given
on the command line
Simon Heimberg
dispatch: also a separate warning message on aliases with --config...
r18693 $ hg no--config
Martin von Zweigbergk
errors: raise ConfigError on bad alias definition...
r46524 config error: error in definition for alias 'no--config': --config may only be given on the command line
[30]
Yuya Nishihara
dispatch: replace _earlygetopt(strip=True) with new parser...
r35225 $ hg no --config alias.no='--repo elsewhere --cwd elsewhere status'
Martin von Zweigbergk
errors: raise ConfigError on bad alias definition...
r46524 config error: error in definition for alias 'no': --repo/--cwd may only be given on the command line
[30]
Yuya Nishihara
dispatch: replace _earlygetopt(strip=True) with new parser...
r35225 $ hg no --config alias.no='--repo elsewhere'
Martin von Zweigbergk
errors: raise ConfigError on bad alias definition...
r46524 config error: error in definition for alias 'no': --repo may only be given on the command line
[30]
Nicolas Dumazet
tests: unify test-alias
r11814
Patrick Mezard
alias: inherit command optionalrepo flag (issue3298)...
r16609 optional repository
Mads Kiilerich
tests: add missing no-outer-repo requirements...
r17015 #if no-outer-repo
Patrick Mezard
alias: inherit command optionalrepo flag (issue3298)...
r16609 $ hg optionalrepo
init
Mads Kiilerich
tests: add missing no-outer-repo requirements...
r17015 #endif
Nicolas Dumazet
tests: unify test-alias
r11814 $ cd alias
Patrick Mezard
alias: inherit command optionalrepo flag (issue3298)...
r16609 $ cat > .hg/hgrc <<EOF
> [alias]
> myinit = init -q
> EOF
$ hg optionalrepo
init -q
Nicolas Dumazet
tests: unify test-alias
r11814
no usage
$ hg nousage
no rollback information available
Yuya Nishihara
alias: fix loss of non-zero return code in command aliases...
r21556 [1]
Nicolas Dumazet
tests: unify test-alias
r11814
$ echo foo > foo
Augie Fackler
alias: don't shadow commands that we only partially matched (issue2993) (BC)...
r15233 $ hg commit -Amfoo
Nicolas Dumazet
tests: unify test-alias
r11814 adding foo
Yuya Nishihara
dispatch: copy inferrepo attribute to alias commands...
r27679 infer repository
$ cd ..
#if no-outer-repo
$ hg shortlog alias/foo
0 e63c23eaa88a | 1970-01-01 00:00 +0000
#endif
$ cd alias
Nicolas Dumazet
tests: unify test-alias
r11814
with opts
$ hg cleanst
C foo
with opts and whitespace
$ hg shortlog
0 e63c23eaa88a | 1970-01-01 00:00 +0000
Alexander Solovyov
add positional arguments to non-shell aliases
r14265 positional arguments
Matt Mackall
alias: abort on missing positional args (issue3331)
r16294 $ hg positional
abort: too few arguments for command alias
Martin von Zweigbergk
errors: raise InputError when too few arguments given to alias...
r46526 [10]
Matt Mackall
alias: abort on missing positional args (issue3331)
r16294 $ hg positional a
abort: too few arguments for command alias
Martin von Zweigbergk
errors: raise InputError when too few arguments given to alias...
r46526 [10]
Alexander Solovyov
add positional arguments to non-shell aliases
r14265 $ hg positional 'node|short' rev
0 e63c23eaa88a | 1970-01-01 00:00 +0000
Nicolas Dumazet
tests: unify test-alias
r11814
interaction with defaults
$ hg mylog
0:e63c23eaa88a
$ hg lognull
-1:000000000000
properly recursive
$ hg dln
changeset: -1:0000000000000000000000000000000000000000
Jordi Gutiérrez Hermoso
log: do not hide the public phase in debug mode (BC)...
r22765 phase: public
Nicolas Dumazet
tests: unify test-alias
r11814 parent: -1:0000000000000000000000000000000000000000
parent: -1:0000000000000000000000000000000000000000
manifest: -1:0000000000000000000000000000000000000000
user:
date: Thu Jan 01 00:00:00 1970 +0000
extra: branch=default
path expanding
$ FOO=`pwd` hg put
$ cat 0.diff
# HG changeset patch
# User test
# Date 0 0
Mads Kiilerich
export: show 'Date' header in a format that also is readable for humans...
r18648 # Thu Jan 01 00:00:00 1970 +0000
Nicolas Dumazet
tests: unify test-alias
r11814 # Node ID e63c23eaa88ae77967edcf4ea194d31167c478b0
# Parent 0000000000000000000000000000000000000000
foo
diff -r 000000000000 -r e63c23eaa88a foo
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/foo Thu Jan 01 00:00:00 1970 +0000
@@ -0,0 +1,1 @@
+foo
Steve Losh
aliases: provide more flexible ways to work with shell alias arguments...
r11989 simple shell aliases
Nicolas Dumazet
tests: unify test-alias
r11814
Steve Losh
aliases: provide more flexible ways to work with shell alias arguments...
r11989 $ hg blank
$ hg blank foo
Steve Losh
alias: only allow global options before a shell alias, pass later ones through...
r12536 $ hg self
self
Mads Kiilerich
test-alias: adapt for Windows...
r16965 $ hg echoall
Steve Losh
aliases: provide more flexible ways to work with shell alias arguments...
r11989
Mads Kiilerich
test-alias: adapt for Windows...
r16965 $ hg echoall foo
Nicolas Dumazet
tests: unify test-alias
r11814 foo
Mads Kiilerich
test-alias: adapt for Windows...
r16965 $ hg echoall 'test $2' foo
Steve Losh
aliases: provide more flexible ways to work with shell alias arguments...
r11989 test $2 foo
Siddharth Agarwal
test-alias: add some tests to ensure we aren't double-substituting...
r22157 $ hg echoall 'test $@' foo '$@'
test $@ foo $@
$ hg echoall 'test "$@"' foo '"$@"'
test "$@" foo "$@"
Steve Losh
aliases: provide more flexible ways to work with shell alias arguments...
r11989 $ hg echo1 foo bar baz
foo
$ hg echo2 foo bar baz
bar
$ hg echo13 foo bar baz test
foo baz
$ hg echo2 foo
Siddharth Agarwal
alias: expand "$@" as list of parameters quoted individually (BC) (issue4200)...
r22158 $ hg echotokens
$ hg echotokens foo 'bar $1 baz'
foo
bar $1 baz
$ hg echotokens 'test $2' foo
test $2
foo
$ hg echotokens 'test $@' foo '$@'
test $@
foo
$@
$ hg echotokens 'test "$@"' foo '"$@"'
test "$@"
foo
"$@"
Steve Losh
aliases: provide more flexible ways to work with shell alias arguments...
r11989 $ echo bar > bar
Augie Fackler
alias: don't shadow commands that we only partially matched (issue2993) (BC)...
r15233 $ hg commit -qA -m bar
Steve Losh
aliases: provide more flexible ways to work with shell alias arguments...
r11989 $ hg count .
1
$ hg count 'branch(default)'
2
Steve Losh
alias: only allow global options before a shell alias, pass later ones through...
r12536 $ hg mcount -r '"branch(default)"'
2
Adrian Buehlmann
tests: add testcase for 208fc9ad6a48 to test-alias.t...
r12656 $ hg tglog
Mads Kiilerich
export: show 'Date' header in a format that also is readable for humans...
r18648 @ 1:042423737847: 'bar'
Adrian Buehlmann
tests: add testcase for 208fc9ad6a48 to test-alias.t...
r12656 |
o 0:e63c23eaa88a: 'foo'
Steve Losh
alias: only allow global options before a shell alias, pass later ones through...
r12536
Steve Losh
alias: fall back to normal error handling for ambigious commands (fixes issue2475)
r12932
shadowing
$ hg i
hg: command 'i' is ambiguous:
idalias idaliaslong idaliasshell identify import incoming init
Martin von Zweigbergk
error: use detailed exit code 10 for command errors...
r46888 [10]
Steve Losh
alias: fall back to normal error handling for ambigious commands (fixes issue2475)
r12932 $ hg id
Mads Kiilerich
export: show 'Date' header in a format that also is readable for humans...
r18648 042423737847 tip
Steve Losh
alias: fall back to normal error handling for ambigious commands (fixes issue2475)
r12932 $ hg ida
hg: command 'ida' is ambiguous:
idalias idaliaslong idaliasshell
Martin von Zweigbergk
error: use detailed exit code 10 for command errors...
r46888 [10]
Steve Losh
alias: fall back to normal error handling for ambigious commands (fixes issue2475)
r12932 $ hg idalias
Mads Kiilerich
export: show 'Date' header in a format that also is readable for humans...
r18648 042423737847 tip
Steve Losh
alias: fall back to normal error handling for ambigious commands (fixes issue2475)
r12932 $ hg idaliasl
Mads Kiilerich
export: show 'Date' header in a format that also is readable for humans...
r18648 042423737847 tip
Steve Losh
alias: fall back to normal error handling for ambigious commands (fixes issue2475)
r12932 $ hg idaliass
test
$ hg parentsshell
hg: command 'parentsshell' is ambiguous:
parentsshell1 parentsshell2
Martin von Zweigbergk
error: use detailed exit code 10 for command errors...
r46888 [10]
Steve Losh
alias: fall back to normal error handling for ambigious commands (fixes issue2475)
r12932 $ hg parentsshell1
one
$ hg parentsshell2
two
Steve Losh
alias: only allow global options before a shell alias, pass later ones through...
r12536 shell aliases with global options
$ hg init sub
$ cd sub
$ hg count 'branch(default)'
Martin von Zweigbergk
errors: remove trailing "!" from some error messages for consistency...
r46518 abort: unknown revision 'default'
Steve Losh
alias: only allow global options before a shell alias, pass later ones through...
r12536 0
$ hg -v count 'branch(default)'
Martin von Zweigbergk
errors: remove trailing "!" from some error messages for consistency...
r46518 abort: unknown revision 'default'
Steve Losh
alias: only allow global options before a shell alias, pass later ones through...
r12536 0
$ hg -R .. count 'branch(default)'
Martin von Zweigbergk
errors: remove trailing "!" from some error messages for consistency...
r46518 abort: unknown revision 'default'
Steve Losh
alias: only allow global options before a shell alias, pass later ones through...
r12536 0
$ hg --cwd .. count 'branch(default)'
2
Mads Kiilerich
test-alias: adapt for Windows...
r16965 $ hg echoall --cwd ..
Matt Mackall
dispatch: move shell alias handling after early arg handling...
r14886
Steve Losh
alias: only allow global options before a shell alias, pass later ones through...
r12536
Yuya Nishihara
dispatch: replace _earlygetopt(strip=True) with new parser...
r35225 "--" passed to shell alias should be preserved
$ hg --config alias.printf='!printf "$@"' printf '%s %s %s\n' -- --cwd ..
-- --cwd ..
Steve Losh
alias: only allow global options before a shell alias, pass later ones through...
r12536
repo specific shell aliases
$ cat >> .hg/hgrc <<EOF
> [alias]
Mads Kiilerich
test-alias: adapt for Windows...
r16965 > subalias = !echo sub
Steve Losh
alias: only allow global options before a shell alias, pass later ones through...
r12536 > EOF
$ cat >> ../.hg/hgrc <<EOF
> [alias]
Mads Kiilerich
test-alias: adapt for Windows...
r16965 > mainalias = !echo main
Steve Losh
alias: only allow global options before a shell alias, pass later ones through...
r12536 > EOF
shell alias defined in current repo
$ hg subalias
sub
$ hg --cwd .. subalias > /dev/null
hg: unknown command 'subalias'
Bryan O'Sullivan
dispatch: report similar names consistently
r27623 (did you mean idalias?)
Martin von Zweigbergk
error: use detailed exit code 10 for command errors...
r46888 [10]
Steve Losh
alias: only allow global options before a shell alias, pass later ones through...
r12536 $ hg -R .. subalias > /dev/null
Matt Mackall
alias: fix up test results
r14890 hg: unknown command 'subalias'
Bryan O'Sullivan
dispatch: report similar names consistently
r27623 (did you mean idalias?)
Martin von Zweigbergk
error: use detailed exit code 10 for command errors...
r46888 [10]
Steve Losh
alias: only allow global options before a shell alias, pass later ones through...
r12536
shell alias defined in other repo
$ hg mainalias > /dev/null
hg: unknown command 'mainalias'
Bryan O'Sullivan
dispatch: report similar names consistently
r27623 (did you mean idalias?)
Martin von Zweigbergk
error: use detailed exit code 10 for command errors...
r46888 [10]
Steve Losh
alias: only allow global options before a shell alias, pass later ones through...
r12536 $ hg -R .. mainalias
main
$ hg --cwd .. mainalias
main
Steve Losh
aliases: provide more flexible ways to work with shell alias arguments...
r11989
Augie Fackler
dispatch: offer suggestions of similar-named commands...
r24222 typos get useful suggestions
$ hg --cwd .. manalias
hg: unknown command 'manalias'
(did you mean one of idalias, mainalias, manifest?)
Martin von Zweigbergk
error: use detailed exit code 10 for command errors...
r46888 [10]
Nicolas Dumazet
tests: unify test-alias
r11814
Steve Losh
alias: add test cases for $ escaping in shell aliases
r13434 shell aliases with escaped $ chars
$ hg escaped1
test$test
$ hg escaped2
HGFOO is BAR
$ hg escaped3 HGFOO
HGFOO is BAR
$ hg escaped4 test
$0 $@
FUJIWARA Katsunori
dispatch: make "_checkshellalias()" invoke "findcmd()" with "strict=True"...
r20328 abbreviated name, which matches against both shell alias and the
command provided extension, should be aborted.
$ cat >> .hg/hgrc <<EOF
> [extensions]
> hgext.rebase =
FUJIWARA Katsunori
tests: use "%HG_ARGS%" in shell alias on Windows instead of "$HG_ARGS"...
r23093 > EOF
#if windows
$ cat >> .hg/hgrc <<EOF
> [alias]
> rebate = !echo this is %HG_ARGS%
> EOF
#else
$ cat >> .hg/hgrc <<EOF
FUJIWARA Katsunori
dispatch: make "_checkshellalias()" invoke "findcmd()" with "strict=True"...
r20328 > [alias]
FUJIWARA Katsunori
dispatch: check shell alias again after loading extensions (issue4355)...
r22377 > rebate = !echo this is \$HG_ARGS
FUJIWARA Katsunori
dispatch: make "_checkshellalias()" invoke "findcmd()" with "strict=True"...
r20328 > EOF
FUJIWARA Katsunori
tests: use "%HG_ARGS%" in shell alias on Windows instead of "$HG_ARGS"...
r23093 #endif
Rodrigo Damazio
help: supporting both help and doc for aliases...
r37152 $ cat >> .hg/hgrc <<EOF
> rebate:doc = This is my alias which just prints something.
> rebate:help = [MYARGS]
> EOF
FUJIWARA Katsunori
dispatch: make "_checkshellalias()" invoke "findcmd()" with "strict=True"...
r20328 $ hg reba
hg: command 'reba' is ambiguous:
rebase rebate
Martin von Zweigbergk
error: use detailed exit code 10 for command errors...
r46888 [10]
FUJIWARA Katsunori
dispatch: make "_checkshellalias()" invoke "findcmd()" with "strict=True"...
r20328 $ hg rebat
this is rebate
FUJIWARA Katsunori
dispatch: check shell alias again after loading extensions (issue4355)...
r22377 $ hg rebat --foo-bar
this is rebate --foo-bar
Steve Losh
alias: add test cases for $ escaping in shell aliases
r13434
Rodrigo Damazio
help: supporting both help and doc for aliases...
r37152 help for a shell alias
$ hg help -c | grep rebate
rdamazio@google.com
help: displaying documented aliases by default...
r40450 rebate This is my alias which just prints something.
Rodrigo Damazio
help: supporting both help and doc for aliases...
r37152 $ hg help rebate
hg rebate [MYARGS]
Matt Harbison
tests: conditionalize printed environment variable output in test-alias
r37162 shell alias for: echo this is %HG_ARGS% (windows !)
shell alias for: echo this is $HG_ARGS (no-windows !)
Rodrigo Damazio
help: supporting both help and doc for aliases...
r37152
This is my alias which just prints something.
defined by:* (glob)
*/* (glob) (?)
*/* (glob) (?)
*/* (glob) (?)
(some details hidden, use --verbose to show complete help)
Yuya Nishihara
alias: reject non-ascii characters in user help/doc strings...
r37157 invalid character in user-specified help
>>> with open('.hg/hgrc', 'ab') as f:
... f.write(b'[alias]\n'
... b'invaliddoc = log\n'
Valentin Gatien-Baron
tests: make test-alias.t pass with re2...
r40708 ... b'invaliddoc:doc = \xc3\xa9\n'
Yuya Nishihara
alias: reject non-ascii characters in user help/doc strings...
r37157 ... b'invalidhelp = log\n'
Valentin Gatien-Baron
tests: make test-alias.t pass with re2...
r40708 ... b'invalidhelp:help = \xc3\xa9\n') and None
Yuya Nishihara
alias: reject non-ascii characters in user help/doc strings...
r37157 $ hg help invaliddoc
non-ASCII character in alias definition 'invaliddoc:doc'
$ hg help invalidhelp
non-ASCII character in alias definition 'invalidhelp:help'
$ hg invaliddoc
Martin von Zweigbergk
errors: raise ConfigError on bad alias definition...
r46524 config error: non-ASCII character in alias definition 'invaliddoc:doc'
[30]
Yuya Nishihara
alias: reject non-ascii characters in user help/doc strings...
r37157 $ hg invalidhelp
Martin von Zweigbergk
errors: raise ConfigError on bad alias definition...
r46524 config error: non-ASCII character in alias definition 'invalidhelp:help'
[30]
Yuya Nishihara
alias: reject non-ascii characters in user help/doc strings...
r37157
Nicolas Dumazet
tests: unify test-alias
r11814 invalid arguments
$ hg rt foo
hg rt: invalid arguments
Matt Mackall
help: generate command help into a single RST string for formatting
r15203 hg rt
Nicolas Dumazet
tests: unify test-alias
r11814
alias for: hg root
Yuya Nishihara
root: add support for -Tformatter option...
r42610 options:
-T --template TEMPLATE display with template
timeless
help: use single quotes in use warning
r29974 (use 'hg rt -h' to show more help)
Martin von Zweigbergk
error: use detailed exit code 10 for command errors...
r46888 [10]
Steve Losh
alias: fail gracefully when invalid global options are given (issue2442)...
r12748
invalid global arguments for normal commands, aliases, and shell aliases
$ hg --invalid root
hg: option --invalid not recognized
Martin von Zweigbergk
dispatch: show a short error message when invalid global option given...
r38824 (use 'hg help -v' for a list of global options)
Martin von Zweigbergk
error: use detailed exit code 10 for command errors...
r46888 [10]
Steve Losh
alias: fail gracefully when invalid global options are given (issue2442)...
r12748 $ hg --invalid mylog
hg: option --invalid not recognized
Martin von Zweigbergk
dispatch: show a short error message when invalid global option given...
r38824 (use 'hg help -v' for a list of global options)
Martin von Zweigbergk
error: use detailed exit code 10 for command errors...
r46888 [10]
Steve Losh
alias: fail gracefully when invalid global options are given (issue2442)...
r12748 $ hg --invalid blank
hg: option --invalid not recognized
Martin von Zweigbergk
dispatch: show a short error message when invalid global option given...
r38824 (use 'hg help -v' for a list of global options)
Martin von Zweigbergk
error: use detailed exit code 10 for command errors...
r46888 [10]
Steve Losh
alias: fail gracefully when invalid global options are given (issue2442)...
r12748
Jun Wu
dispatch: defer environment variable resolution in alias commands (BC)...
r29087 environment variable changes in alias commands
Jun Wu
test-alias: make it compatible with chg...
r34485 $ cat > $TESTTMP/expandalias.py <<EOF
Jun Wu
dispatch: defer environment variable resolution in alias commands (BC)...
r29087 > import os
Jun Wu
test-alias: make it compatible with chg...
r34485 > from mercurial import cmdutil, commands, registrar
> cmdtable = {}
> command = registrar.command(cmdtable)
Pulkit Goyal
py3: add b'' prefixes in test-alias.t...
r36398 > @command(b'expandalias')
Jun Wu
test-alias: make it compatible with chg...
r34485 > def expandalias(ui, repo, name):
> alias = cmdutil.findcmd(name, commands.table)[1][0]
Pulkit Goyal
py3: add b'' prefixes in test-alias.t...
r36398 > ui.write(b'%s args: %s\n' % (name, b' '.join(alias.args)))
Jun Wu
dispatch: defer environment variable resolution in alias commands (BC)...
r29087 > os.environ['COUNT'] = '2'
Pulkit Goyal
py3: add b'' prefixes in test-alias.t...
r36398 > ui.write(b'%s args: %s (with COUNT=2)\n' % (name, b' '.join(alias.args)))
Jun Wu
dispatch: defer environment variable resolution in alias commands (BC)...
r29087 > EOF
$ cat >> $HGRCPATH <<'EOF'
> [extensions]
Jun Wu
test-alias: make it compatible with chg...
r34485 > expandalias = $TESTTMP/expandalias.py
Jun Wu
dispatch: defer environment variable resolution in alias commands (BC)...
r29087 > [alias]
Jun Wu
test-alias: make it compatible with chg...
r34485 > showcount = log -T "$COUNT" -r .
Jun Wu
dispatch: defer environment variable resolution in alias commands (BC)...
r29087 > EOF
Jun Wu
test-alias: make it compatible with chg...
r34485 $ COUNT=1 hg expandalias showcount
showcount args: -T 1 -r .
showcount args: -T 2 -r . (with COUNT=2)
Jun Wu
dispatch: defer environment variable resolution in alias commands (BC)...
r29087
Matt Mackall
alias: shortcut command matching show shadowing works properly (issue3104)...
r15600 This should show id:
$ hg --config alias.log='id' log
000000000000 tip
This shouldn't:
$ hg --config alias.log='id' history
Mads Kiilerich
tests: cleanup of tests that got lost in their own nested directories...
r16912
$ cd ../..
Yuya Nishihara
alias: fix loss of non-zero return code in command aliases...
r21556
return code of command and shell aliases:
$ hg mycommit -R alias
nothing changed
[1]
$ hg exit1
[1]
FUJIWARA Katsunori
hg.bat: return exit code explicitly for indirect invocation...
r23934
#if no-outer-repo
$ hg root
Martin von Zweigbergk
errors: remove trailing "!" from some error messages for consistency...
r46518 abort: no repository found in '$TESTTMP' (.hg not found)
Martin von Zweigbergk
errors: raise InputError on bad repo arguments...
r46523 [10]
FUJIWARA Katsunori
hg.bat: return exit code explicitly for indirect invocation...
r23934 $ hg --config alias.hgroot='!hg root' hgroot
Martin von Zweigbergk
errors: remove trailing "!" from some error messages for consistency...
r46518 abort: no repository found in '$TESTTMP' (.hg not found)
Martin von Zweigbergk
errors: raise InputError on bad repo arguments...
r46523 [10]
FUJIWARA Katsunori
hg.bat: return exit code explicitly for indirect invocation...
r23934 #endif