diff -r a4e3dec3010e -r 060f83d219b9 mercurial/extensions.py --- a/mercurial/extensions.py Wed Nov 25 00:39:05 2015 +0000 +++ b/mercurial/extensions.py Tue Nov 24 15:16:25 2015 -0800 @@ -101,6 +101,17 @@ if ui.debugflag: ui.traceback() mod = importh(name) + + # Before we do anything with the extension, check against minimum stated + # compatibility. This gives extension authors a mechanism to have their + # extensions short circuit when loaded with a known incompatible version + # of Mercurial. + minver = getattr(mod, 'minimumhgversion', None) + if minver and util.versiontuple(minver, 2) > util.versiontuple(n=2): + ui.warn(_('(third party extension %s requires version %s or newer ' + 'of Mercurial; disabling)\n') % (shortname, minver)) + return + _extensions[shortname] = mod _order.append(shortname) for fn in _aftercallbacks.get(shortname, []):