Mercurial > hg
changeset 48016:5caec48d9a01
extensions: prevent a crash on py3 with a `minimumhgversion` str value
The expectation is that this field is bytes, but unported extensions are a thing
and it shouldn't explode on a bad value. We already do this transformation in
the version reporting mechanism.
Differential Revision: https://phab.mercurial-scm.org/D11476
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Mon, 20 Sep 2021 14:21:18 -0400 |
parents | a9bedc56f025 |
children | 08efe5945d2b |
files | mercurial/extensions.py tests/test-extension.t |
diffstat | 2 files changed, 4 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/extensions.py Mon Sep 20 14:16:10 2021 -0400 +++ b/mercurial/extensions.py Mon Sep 20 14:21:18 2021 -0400 @@ -224,7 +224,7 @@ minver = getattr(mod, 'minimumhgversion', None) if minver: curver = util.versiontuple(n=2) - extmin = util.versiontuple(minver, 2) + extmin = util.versiontuple(stringutil.forcebytestr(minver), 2) if None in extmin: extmin = (extmin[0] or 0, extmin[1] or 0)
--- a/tests/test-extension.t Mon Sep 20 14:16:10 2021 -0400 +++ b/tests/test-extension.t Mon Sep 20 14:21:18 2021 -0400 @@ -1692,12 +1692,13 @@ $ hg --config extensions.minversion=minversion3.py version 2>&1 | egrep '\(third' [1] -Don't explode on py3 with a bad version number +Don't explode on py3 with a bad version number (both str vs bytes, and not enough +parts) $ cat > minversion4.py << EOF > from mercurial import util > util.version = lambda: b'3.5' - > minimumhgversion = b'3' + > minimumhgversion = '3' > EOF $ hg --config extensions.minversion=minversion4.py version -v Mercurial Distributed SCM (version 3.5)