diff --git a/mercurial/util.py b/mercurial/util.py --- a/mercurial/util.py +++ b/mercurial/util.py @@ -938,10 +938,9 @@ into. As a workaround, disable GC while building complex (huge) containers. - This garbage collector issue have been fixed in 2.7. + This garbage collector issue have been fixed in 2.7. But it still affect + CPython's performance. """ - if sys.version_info >= (2, 7): - return func def wrapper(*args, **kwargs): gcenabled = gc.isenabled() gc.disable() @@ -952,6 +951,10 @@ gc.enable() return wrapper +if pycompat.ispypy: + # PyPy runs slower with gc disabled + nogc = lambda x: x + def pathto(root, n1, n2): '''return the relative path from one place to another. root should use os.sep to separate directories