[Request] [+ ] D8951: rewriteutil: relax the sha1 hash references to handle future hash types
mharbison72 (Matt Harbison)
phabricator at mercurial-scm.org
Wed Aug 26 03:21:07 UTC 2020
mharbison72 created this revision.
Herald added a reviewer: hg-reviewers.
Herald added a subscriber: mercurial-patches.
REVISION SUMMARY
Per discussion with nbjoerg in IRC.
REPOSITORY
rHG Mercurial
BRANCH
default
REVISION DETAIL
https://phab.mercurial-scm.org/D8951
AFFECTED FILES
mercurial/utils/rewriteutil.py
CHANGE DETAILS
diff --git a/mercurial/utils/rewriteutil.py b/mercurial/utils/rewriteutil.py
--- a/mercurial/utils/rewriteutil.py
+++ b/mercurial/utils/rewriteutil.py
@@ -28,7 +28,7 @@
assert any((Dict, List, Optional,))
-sha1re = re.compile(br'\b[0-9a-f]{6,40}\b')
+NODE_RE = re.compile(br'\b[0-9a-f]{6,64}\b')
def update_hash_refs(repo, commitmsg, pending=None):
@@ -41,10 +41,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]
@@ -61,14 +61,14 @@
# cset in question was split or diverged.
if len(successors) == 1 and len(successors[0]) == 1:
newsha1 = nodemod.hex(successors[0][0])
- commitmsg = commitmsg.replace(sha1, newsha1[: len(sha1)])
+ commitmsg = commitmsg.replace(h, newsha1[: 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
Cc: mercurial-patches, mercurial-devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mercurial-scm.org/pipermail/mercurial-patches/attachments/20200826/30fb32bf/attachment-0001.html>
More information about the Mercurial-patches
mailing list