On Sun, Mar 19, 2017 at 11:26 AM, Augie Fackler <r...@durin42.com> wrote: > # HG changeset patch > # User Augie Fackler <au...@google.com> > # Date 1489900139 14400 > # Sun Mar 19 01:08:59 2017 -0400 > # Node ID 9e6b585465b7ec033160326a4eb049329a2f83a9 > # Parent d5e20f704fd722dbf8b0a011b3c9ab7437b4ac82 > 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()
Just for my understanding, what makes idbase bytes on py3 (as hashlib.sha1() requires)? > + if pycompat.ispy3: > + ha = ha.encode('latin1') Every time I see "if pycompat.ispy3:", I feel like we should have extracted a function instead. Do others agree? What could this method be called? pycompat.latin1bytes()? > + txnid = 'TXN:' + ha > self.hook('pretxnopen', throw=True, txnname=desc, txnid=txnid) > > self._writejournal(desc) > _______________________________________________ > Mercurial-devel mailing list > Mercurial-devel@mercurial-scm.org > https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel _______________________________________________ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel