[PATCH 4 of 8 py3] repair: reliably obtain bytestr of node ids

Augie Fackler raf at durin42.com
Fri Sep 15 19:14:07 EDT 2017


# HG changeset patch
# User Augie Fackler <raf at durin42.com>
# Date 1503451354 14400
#      Tue Aug 22 21:22:34 2017 -0400
# Node ID 050dd624a9a887c3efde65b7750311d3d3bd716c
# Parent  e6d61e2a38873be057c9ecd0432750935423d745
repair: reliably obtain bytestr of node ids

diff --git a/mercurial/repair.py b/mercurial/repair.py
--- a/mercurial/repair.py
+++ b/mercurial/repair.py
@@ -12,7 +12,10 @@ import errno
 import hashlib
 
 from .i18n import _
-from .node import short
+from .node import (
+    hex,
+    short,
+)
 from . import (
     bundle2,
     changegroup,
@@ -21,6 +24,7 @@ from . import (
     exchange,
     obsolete,
     obsutil,
+    pycompat,
     util,
 )
 
@@ -35,8 +39,9 @@ def _bundle(repo, bases, heads, node, su
     # Include a hash of all the nodes in the filename for uniqueness
     allcommits = repo.set('%ln::%ln', bases, heads)
     allhashes = sorted(c.hex() for c in allcommits)
-    totalhash = hashlib.sha1(''.join(allhashes)).hexdigest()
-    name = "%s/%s-%s-%s.hg" % (backupdir, short(node), totalhash[:8], suffix)
+    totalhash = hashlib.sha1(''.join(allhashes)).digest()
+    name = "%s/%s-%s-%s.hg" % (backupdir, pycompat.bytestr(short(node)),
+                               hex(totalhash[:4]), suffix)
 
     cgversion = changegroup.safeversion(repo)
     comp = None


More information about the Mercurial-devel mailing list