[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