[Updated] [+ ] D8951: rewriteutil: relax the sha1 hash references to handle future hash types

mharbison72 (Matt Harbison) phabricator at mercurial-scm.org
Fri Sep 4 18:19:36 UTC 2020


mharbison72 updated this revision to Diff 22543.

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST UPDATE
  https://phab.mercurial-scm.org/D8951?vs=22448&id=22543

BRANCH
  default

CHANGES SINCE LAST ACTION
  https://phab.mercurial-scm.org/D8951/new/

REVISION DETAIL
  https://phab.mercurial-scm.org/D8951

AFFECTED FILES
  mercurial/rewriteutil.py

CHANGE DETAILS

diff --git a/mercurial/rewriteutil.py b/mercurial/rewriteutil.py
--- a/mercurial/rewriteutil.py
+++ b/mercurial/rewriteutil.py
@@ -21,7 +21,7 @@
 )
 
 
-sha1re = re.compile(br'\b[0-9a-f]{6,40}\b')
+NODE_RE = re.compile(br'\b[0-9a-f]{6,64}\b')
 
 
 def precheck(repo, revs, action=b'rewrite'):
@@ -92,10 +92,10 @@
     if not pending:
         pending = {}
     cache = {}
-    sha1s = re.findall(sha1re, commitmsg)
+    hashes = re.findall(NODE_RE, commitmsg)
     unfi = repo.unfiltered()
-    for sha1 in sha1s:
-        fullnode = scmutil.resolvehexnodeidprefix(unfi, sha1)
+    for h in hashes:
+        fullnode = scmutil.resolvehexnodeidprefix(unfi, h)
         if fullnode is None:
             continue
         ctx = unfi[fullnode]
@@ -111,15 +111,15 @@
         # We can't make any assumptions about how to update the hash if the
         # cset in question was split or diverged.
         if len(successors) == 1 and len(successors[0]) == 1:
-            newsha1 = node.hex(successors[0][0])
-            commitmsg = commitmsg.replace(sha1, newsha1[: len(sha1)])
+            newhash = node.hex(successors[0][0])
+            commitmsg = commitmsg.replace(h, newhash[: len(h)])
         else:
             repo.ui.note(
                 _(
                     b'The stale commit message reference to %s could '
                     b'not be updated\n'
                 )
-                % sha1
+                % h
             )
 
     return commitmsg



To: mharbison72, #hg-reviewers, marmoute
Cc: mercurial-patches
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mercurial-scm.org/pipermail/mercurial-patches/attachments/20200904/c7fc5e48/attachment.html>


More information about the Mercurial-patches mailing list