diff -r 8db2feb04ceb -r 28b773aa3ff2 mercurial/policy.py --- 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 '