diff --git a/mercurial/dispatch.py b/mercurial/dispatch.py --- a/mercurial/dispatch.py +++ b/mercurial/dispatch.py @@ -225,8 +225,9 @@ def _runcatch(req): break if compare not in testedwith.split() and testedwith != 'internal': tested = [tuplever(v) for v in testedwith.split()] - nearest = max([t for t in tested if t < ct]) - if nearest < worst[1]: + lower = [t for t in tested if t < ct] + nearest = max(lower or tested) + if worst[0] is None or nearest < worst[1]: worst = name, nearest, report if worst[0] is not None: name, testedwith, report = worst diff --git a/tests/test-extension.t b/tests/test-extension.t --- a/tests/test-extension.t +++ b/tests/test-extension.t @@ -522,7 +522,31 @@ If the extensions declare outdated versi ** Please disable older and try your action again. ** If that fixes the bug please report it to the extension author. ** Python * (glob) - ** Mercurial Distributed SCM (*) (glob) + ** Mercurial Distributed SCM (version 2.2) + ** Extensions loaded: throw, older +One extension only tested with older, one only with newer versions: + $ echo "util.version = lambda:'2.1.0'" >> older.py + $ rm -f older.pyc older.pyo + $ hg --config extensions.throw=throw.py --config extensions.older=older.py \ + > throw 2>&1 | egrep '^\*\*' + ** Unknown exception encountered with possibly-broken third-party extension older + ** which supports versions 1.9.3 of Mercurial. + ** Please disable older and try your action again. + ** If that fixes the bug please report it to the extension author. + ** Python * (glob) + ** Mercurial Distributed SCM (version 2.1.0) + ** Extensions loaded: throw, older +Older extension is tested with current version, the other only with newer: + $ echo "util.version = lambda:'1.9.3'" >> older.py + $ rm -f older.pyc older.pyo + $ hg --config extensions.throw=throw.py --config extensions.older=older.py \ + > throw 2>&1 | egrep '^\*\*' + ** Unknown exception encountered with possibly-broken third-party extension throw + ** which supports versions 2.1.1 of Mercurial. + ** Please disable throw and try your action again. + ** If that fixes the bug please report it to http://example.com/bts + ** Python * (glob) + ** Mercurial Distributed SCM (version 1.9.3) ** Extensions loaded: throw, older Declare the version as supporting this hg version, show regular bts link: