Mercurial > public > mercurial-scm > hg
diff mercurial/util.py @ 33626:524b13fc711f stable
util: fix sortdict.update() to call __setitem__() on PyPy (issue5639)
It appears that overriding __setitem__() doesn't work as documented on PyPy.
Let's patch it as before bd0fd3ff9916.
https://docs.python.org/2/library/collections.html#ordereddict-examples-and-recipes
The issue was ui.configitems() wasn't ordered correctly, so the pull command
was wrapped in different order.
author | Yuya Nishihara <yuya@tcha.org> |
---|---|
date | Wed, 02 Aug 2017 22:51:19 +0900 |
parents | 9a2ee9591acc |
children | 0b3fe3910ef5 86aca74a063b |
line wrap: on
line diff
--- a/mercurial/util.py Wed Aug 02 22:58:38 2017 +0900 +++ b/mercurial/util.py Wed Aug 02 22:51:19 2017 +0900 @@ -584,6 +584,14 @@ del self[key] super(sortdict, self).__setitem__(key, value) + if pycompat.ispypy: + # __setitem__() isn't called as of PyPy 5.8.0 + def update(self, src): + if isinstance(src, dict): + src = src.iteritems() + for k, v in src: + self[k] = v + @contextlib.contextmanager def acceptintervention(tr=None): """A context manager that closes the transaction on InterventionRequired