[PATCH 2 of 2 RFC] extensions: make disabled()/disabledext() load prebuilt index if available

Yuya Nishihara yuya at tcha.org
Sat Jun 4 07:19:20 CDT 2011


# HG changeset patch
# User Yuya Nishihara <yuya at tcha.org>
# Date 1307186370 -32400
# Node ID 022ee080c73a67c22ba7b4584365651f334026cb
# Parent  994c340d811360674aa046e4a4c923db615779b4
extensions: make disabled()/disabledext() load prebuilt index if available

__index__ contains a dict of {name: desc} of all extensions.

diff --git a/mercurial/extensions.py b/mercurial/extensions.py
--- a/mercurial/extensions.py
+++ b/mercurial/extensions.py
@@ -262,6 +262,14 @@ def _disabledhelp(path):
 
 def disabled():
     '''find disabled extensions from hgext. returns a dict of {name: desc}'''
+    try:
+        from hgext import __index__
+        return dict((name, gettext(desc))
+                    for name, desc in __index__.docs.iteritems()
+                    if name not in _order)
+    except ImportError:
+        pass
+
     paths = _disabledpaths()
     if not paths:
         return None
@@ -276,6 +284,15 @@ def disabled():
 
 def disabledext(name):
     '''find a specific disabled extension from hgext. returns desc'''
+    try:
+        from hgext import __index__
+        if name in _order:  # enabled
+            return
+        else:
+            return gettext(__index__.docs.get(name))
+    except ImportError:
+        pass
+
     paths = _disabledpaths()
     if name in paths:
         return _disabledhelp(paths[name])


More information about the Mercurial-devel mailing list