##// END OF EJS Templates
dispatch: make "_checkshellalias()" invoke "findcmd()" with "strict=True"...
dispatch: make "_checkshellalias()" invoke "findcmd()" with "strict=True" Before this patch, shell alias may be executed by abbreviated command name unexpectedly, even if abbreviated command name matches also against the command provided by extension. For example, "rebate" shell alias is executed by "hg reba", even if rebase extension (= "rebase" command) is enabled. In this case, "hg reba" should be aborted because of command name ambiguity. This patch makes "_checkshellalias()" invoke "cmdutil.findcmd()" always with "strict=True" (default value). If abbreviated command name matches against only one shell alias even after loading extensions, such shell alias will be executed via "_parse()". This patch doesn't remove "_checkshellalias()" invocation itself, because it may prevent shell alias from loading extensions uselessly.

File last commit:

r14438:08bfec2e default
r20328:03d345da stable
Show More
test-dispatch.py
33 lines | 786 B | text/x-python | PythonLexer
Thomas Arendsen Hein
Added test for commands.dispatch (especially 88803a69b24)
r5095 import os
Matt Mackall
dispatch: move command dispatching into its own module...
r5178 from mercurial import dispatch
Thomas Arendsen Hein
Added test for commands.dispatch (especially 88803a69b24)
r5095
Matt Mackall
dispatch: move command dispatching into its own module...
r5178 def testdispatch(cmd):
"""Simple wrapper around dispatch.dispatch()
Thomas Arendsen Hein
Added test for commands.dispatch (especially 88803a69b24)
r5095
Prints command and result value, but does not handle quoting.
"""
print "running: %s" % (cmd,)
Idan Kamara
dispatch: wrap dispatch related information in a request class...
r14438 req = dispatch.request(cmd.split())
result = dispatch.dispatch(req)
Thomas Arendsen Hein
Added test for commands.dispatch (especially 88803a69b24)
r5095 print "result: %r" % (result,)
Matt Mackall
dispatch: move command dispatching into its own module...
r5178 testdispatch("init test1")
Thomas Arendsen Hein
Added test for commands.dispatch (especially 88803a69b24)
r5095 os.chdir('test1')
# create file 'foo', add and commit
Alejandro Santos
compat: use open() instead of file() everywhere
r9031 f = open('foo', 'wb')
Thomas Arendsen Hein
Added test for commands.dispatch (especially 88803a69b24)
r5095 f.write('foo\n')
f.close()
Matt Mackall
dispatch: move command dispatching into its own module...
r5178 testdispatch("add foo")
testdispatch("commit -m commit1 -d 2000-01-01 foo")
Thomas Arendsen Hein
Added test for commands.dispatch (especially 88803a69b24)
r5095
# append to file 'foo' and commit
Alejandro Santos
compat: use open() instead of file() everywhere
r9031 f = open('foo', 'ab')
Thomas Arendsen Hein
Added test for commands.dispatch (especially 88803a69b24)
r5095 f.write('bar\n')
f.close()
Matt Mackall
dispatch: move command dispatching into its own module...
r5178 testdispatch("commit -m commit2 -d 2000-01-02 foo")
Thomas Arendsen Hein
Added test for commands.dispatch (especially 88803a69b24)
r5095
# check 88803a69b24 (fancyopts modified command table)
Matt Mackall
dispatch: move command dispatching into its own module...
r5178 testdispatch("log -r 0")
testdispatch("log -r tip")