repair: reliably obtain bytestr of node ids
authorAugie Fackler <raf@durin42.com>
Tue, 22 Aug 2017 21:22:34 -0400
changeset 34222 6193d810f7bb
parent 34221 8e0358024a36
child 34223 fa9f5d6733d3
repair: reliably obtain bytestr of node ids
mercurial/repair.py
--- a/mercurial/repair.py	Fri Sep 15 18:38:36 2017 -0400
+++ b/mercurial/repair.py	Tue Aug 22 21:22:34 2017 -0400
@@ -12,7 +12,10 @@
 import hashlib
 
 from .i18n import _
-from .node import short
+from .node import (
+    hex,
+    short,
+)
 from . import (
     bundle2,
     changegroup,
@@ -35,8 +38,9 @@
     # 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, short(node),
+                               hex(totalhash[:4]), suffix)
 
     cgversion = changegroup.safeversion(repo)
     comp = None