mercurial/policy.py
changeset 32428 28b773aa3ff2
parent 32366 8e0327dae3f4
child 32511 2e431fb98c6b
--- a/mercurial/policy.py	Sat May 20 19:43:58 2017 +0200
+++ b/mercurial/policy.py	Mon May 22 22:59:40 2017 -0700
@@ -70,8 +70,18 @@
     getattr(mod, r'__doc__', None)
     return fakelocals[modname]
 
+# keep in sync with "version" in C modules
+_cextversions = {
+    r'base85': 1,
+    r'bdiff': 1,
+    r'diffhelpers': 1,
+    r'mpatch': 1,
+    r'osutil': 1,
+    r'parsers': 1,
+}
+
 def _checkmod(pkgname, modname, mod):
-    expected = 1  # TODO: maybe defined in table?
+    expected = _cextversions.get(modname)
     actual = getattr(mod, r'version', None)
     if actual != expected:
         raise ImportError(r'cannot import module %s.%s '