[Request] [+ ] D11476: extensions: prevent a crash on py3 with a `minimumhgversion` str value
mharbison72 (Matt Harbison)
phabricator at mercurial-scm.org
Tue Sep 21 15:39:36 UTC 2021
mharbison72 created this revision.
Herald added a reviewer: hg-reviewers.
Herald added a subscriber: mercurial-patches.
REVISION SUMMARY
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.
REPOSITORY
rHG Mercurial
BRANCH
default
REVISION DETAIL
https://phab.mercurial-scm.org/D11476
AFFECTED FILES
mercurial/extensions.py
tests/test-extension.t
CHANGE DETAILS
diff --git a/tests/test-extension.t b/tests/test-extension.t
--- a/tests/test-extension.t
+++ b/tests/test-extension.t
@@ -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)
diff --git a/mercurial/extensions.py b/mercurial/extensions.py
--- a/mercurial/extensions.py
+++ b/mercurial/extensions.py
@@ -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)
To: mharbison72, #hg-reviewers
Cc: mercurial-patches, mercurial-devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mercurial-scm.org/pipermail/mercurial-patches/attachments/20210921/098f8856/attachment-0001.html>
More information about the Mercurial-patches
mailing list