# HG changeset patch # User Augie Fackler # Date 2017-03-19 05:08:59 # Node ID 590319c072598950c80e4ce23242bf2189f05737 # Parent 4d1dd9cf0dca5e01d96ce49bcfbb7aeded084f8f localrepo: ensure transaction id is fully bytes on py3 diff --git a/mercurial/localrepo.py b/mercurial/localrepo.py --- a/mercurial/localrepo.py +++ b/mercurial/localrepo.py @@ -49,6 +49,7 @@ from . import ( peer, phases, pushkey, + pycompat, repoview, revset, revsetlang, @@ -1082,7 +1083,10 @@ class localrepository(object): hint=_("run 'hg recover' to clean up transaction")) idbase = "%.40f#%f" % (random.random(), time.time()) - txnid = 'TXN:' + hashlib.sha1(idbase).hexdigest() + ha = hashlib.sha1(idbase).hexdigest() + if pycompat.ispy3: + ha = ha.encode('latin1') + txnid = 'TXN:' + ha self.hook('pretxnopen', throw=True, txnname=desc, txnid=txnid) self._writejournal(desc)