[PATCH] util: correct check of sys.version_info

Augie Fackler raf at durin42.com
Fri Oct 7 12:48:02 UTC 2016


# HG changeset patch
# User Augie Fackler <augie at google.com>
# Date 1475841676 14400
#      Fri Oct 07 08:01:16 2016 -0400
# Node ID 12048b2934186bf24740640fd88412a7218deb44
# Parent  f3a2125968377fb1d4b9ea3f4917260d5aca3536
util: correct check of sys.version_info

sys.version is a string, and shouldn't be compared against a tuple for
version comparisons. This was always true, so we were never disabling
gc on 2.6.

>>> (2, 7) >= '2.7'
True
>>> (2, 6) >= '2.7'
True

diff --git a/mercurial/util.py b/mercurial/util.py
--- a/mercurial/util.py
+++ b/mercurial/util.py
@@ -881,7 +881,7 @@ def nogc(func):
 
     This garbage collector issue have been fixed in 2.7.
     """
-    if sys.version >= (2, 7):
+    if sys.version_info >= (2, 7):
         return func
     def wrapper(*args, **kwargs):
         gcenabled = gc.isenabled()
diff --git a/tests/test-check-py3-compat.t b/tests/test-check-py3-compat.t
--- a/tests/test-check-py3-compat.t
+++ b/tests/test-check-py3-compat.t
@@ -162,10 +162,10 @@
   mercurial/ui.py: error importing: <TypeError> int() can't convert non-string with explicit base (error at util.py:*)
   mercurial/unionrepo.py: error importing: <TypeError> int() can't convert non-string with explicit base (error at util.py:*)
   mercurial/url.py: error importing: <TypeError> int() can't convert non-string with explicit base (error at util.py:*)
-  mercurial/verify.py: error importing module: <TypeError> unorderable types: str() >= tuple() (line *)
+  mercurial/verify.py: error importing: <TypeError> a bytes-like object is required, not 'str' (error at revset.py:*)
   mercurial/win32.py: error importing module: <ImportError> No module named 'msvcrt' (line *)
   mercurial/windows.py: error importing module: <ImportError> No module named 'msvcrt' (line *)
-  mercurial/wireproto.py: error importing module: <TypeError> unorderable types: str() >= tuple() (line *)
+  mercurial/wireproto.py: error importing: <TypeError> a bytes-like object is required, not 'str' (error at revset.py:*)
 
 #endif
 


More information about the Mercurial-devel mailing list