--- a/.hgsigs Fri Mar 15 10:52:51 2024 +0100
+++ b/.hgsigs Thu Mar 21 12:26:46 2024 +0100
@@ -258,3 +258,4 @@
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
--- a/.hgtags Fri Mar 15 10:52:51 2024 +0100
+++ b/.hgtags Thu Mar 21 12:26:46 2024 +0100
@@ -274,3 +274,4 @@
3fd1efb3ad124e6686c0fb66e6943cd8aeea5681 6.6.3
d1d48d18db37106b801ef6cb90955536458e7ffc 6.7rc0
c9ceb4f6025690167bdb245e530de6bac8baae95 6.7
+2e6fde2ed01e63f0de6a5966994fbb60b1f87057 6.7.1
--- a/mercurial/revlogutils/deltas.py Fri Mar 15 10:52:51 2024 +0100
+++ b/mercurial/revlogutils/deltas.py Thu Mar 21 12:26:46 2024 +0100
@@ -876,7 +876,8 @@
# XXX note that the ordering of the group becomes important as
# it now impacts the final result. The current order is
# unprocessed and can be improved.
- next_idx = self._internal_idx + self._group_chunk_size
+ chunk_size = self.revlog.delta_config.candidate_group_chunk_size
+ next_idx = self._internal_idx + chunk_size
self.current_group = self._internal_group[
self._internal_idx : next_idx
]
--- a/mercurial/sshpeer.py Fri Mar 15 10:52:51 2024 +0100
+++ b/mercurial/sshpeer.py Thu Mar 21 12:26:46 2024 +0100
@@ -640,7 +640,7 @@
"""
u = urlutil.url(path.loc, parsequery=False, parsefragment=False)
if u.scheme != b'ssh' or not u.host or u.path is None:
- raise error.RepoError(_(b"couldn't parse location %s") % path)
+ raise error.RepoError(_(b"couldn't parse location %s") % path.loc)
urlutil.checksafessh(path.loc)
--- a/mercurial/subrepoutil.py Fri Mar 15 10:52:51 2024 +0100
+++ b/mercurial/subrepoutil.py Thu Mar 21 12:26:46 2024 +0100
@@ -421,7 +421,18 @@
chunks.reverse()
path = posixpath.join(*chunks)
- return posixpath.normpath(path)
+ matchscheme = re.compile(b'^[a-zA-Z0-9+.\\-]+:').match
+ if matchscheme(path):
+ scheme, path = path.split(b':', 1)
+ if path.startswith(b'//'):
+ path = path[2:]
+ sep = b'//'
+ else:
+ sep = b''
+ normalized_path = scheme + b':' + sep + posixpath.normpath(path)
+ else:
+ normalized_path = posixpath.normpath(path)
+ return normalized_path
def reporelpath(repo: "localrepo.localrepository") -> bytes:
--- a/relnotes/6.7 Fri Mar 15 10:52:51 2024 +0100
+++ b/relnotes/6.7 Thu Mar 21 12:26:46 2024 +0100
@@ -1,3 +1,12 @@
+= Mercurial 6.7.1 =
+
+Exceptional release following a crash found in delta code that can be triggered
+with complex repository shapes.
+
+ * delta-search: fix crash caused by unbound variable
+ * sshpeer: fix path when handling invalid url exception
+ * subrepo: fix normalizing paths with scheme
+
= Mercurial 6.7 =
As usual, a *lot* of patches don't make it to this list.