diff -r b39f0fdb0338 -r f574cc00831a mercurial/node.py --- a/mercurial/node.py Fri Feb 16 11:30:18 2018 -0800 +++ b/mercurial/node.py Wed Feb 14 21:34:12 2018 -0500 @@ -11,7 +11,14 @@ # This ugly style has a noticeable effect in manifest parsing hex = binascii.hexlify -bin = binascii.unhexlify +# Adapt to Python 3 API changes. If this ends up showing up in +# profiles, we can use this version only on Python 3, and forward +# binascii.unhexlify like we used to on Python 2. +def bin(s): + try: + return binascii.unhexlify(s) + except binascii.Error as e: + raise TypeError(e) nullrev = -1 nullid = b"\0" * 20