dispatch: fix typo suggestion for disabled extension
If the matching command lives in an in-tree extension (which is all we
scan for), and the user has disabled that extension with
"extensions.<name>=!", we were not finding it, because the path in
_disabledextensions was the empty string. If the user had set
"extensions.<name>=!<valid path>" it would work, so it seems like just
a mistake that it didn't work.
--- a/mercurial/extensions.py Fri Jul 07 00:12:44 2017 -0700
+++ b/mercurial/extensions.py Fri Jul 07 00:13:53 2017 -0700
@@ -494,7 +494,11 @@
if name in exts or name in _order or name == '__init__':
continue
exts[name] = path
- exts.update(_disabledextensions)
+ for name, path in _disabledextensions.iteritems():
+ # If no path was provided for a disabled extension (e.g. "color=!"),
+ # don't replace the path we already found by the scan above.
+ if path:
+ exts[name] = path
return exts
def _moduledoc(file):
--- a/tests/test-help.t Fri Jul 07 00:12:44 2017 -0700
+++ b/tests/test-help.t Fri Jul 07 00:13:53 2017 -0700
@@ -680,7 +680,11 @@
Disabled extension gets suggested
$ hg --config extensions.rebase=! rebase
hg: unknown command 'rebase'
- (did you mean one of rename, resolve?)
+ 'rebase' is provided by the following extension:
+
+ rebase command to move sets of revisions to a different ancestor
+
+ (use 'hg help extensions' for information on enabling extensions)
[255]
Make sure that we don't run afoul of the help system thinking that