##// 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:

r17192:1ac628cd default
r20328:03d345da stable
Show More
notcapable
24 lines | 806 B | text/plain | TextLexer
Steven Brown
tests: add script to disable a selected wire protocol capability...
r14011 # Disable the $CAP wire protocol capability.
if test -z "$CAP"
then
echo "CAP environment variable not set."
fi
cat > notcapable-$CAP.py << EOF
Peter Arrenbrecht
peer: introduce real peer classes...
r17192 from mercurial import extensions, peer, localrepo
Steven Brown
tests: add script to disable a selected wire protocol capability...
r14011 def extsetup():
Peter Arrenbrecht
peer: introduce real peer classes...
r17192 extensions.wrapfunction(peer.peerrepository, 'capable', wrapcapable)
extensions.wrapfunction(localrepo.localrepository, 'peer', wrappeer)
def wrapcapable(orig, self, name, *args, **kwargs):
Peter Arrenbrecht
tests: support multiple caps in notcapable
r14409 if name in '$CAP'.split(' '):
Steven Brown
tests: add script to disable a selected wire protocol capability...
r14011 return False
return orig(self, name, *args, **kwargs)
Peter Arrenbrecht
peer: introduce real peer classes...
r17192 def wrappeer(orig, self):
# Since we're disabling some newer features, we need to make sure local
# repos add in the legacy features again.
return localrepo.locallegacypeer(self)
Steven Brown
tests: add script to disable a selected wire protocol capability...
r14011 EOF
echo '[extensions]' >> $HGRCPATH
echo "notcapable-$CAP = `pwd`/notcapable-$CAP.py" >> $HGRCPATH