--- a/.hgsigs Tue Oct 31 22:42:46 2023 -0700
+++ b/.hgsigs Mon Nov 06 17:12:04 2023 +0100
@@ -250,3 +250,4 @@
3ffc7209bbae5804a53084c9dc2d41139e88c867 0 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
--- a/.hgtags Tue Oct 31 22:42:46 2023 -0700
+++ b/.hgtags Mon Nov 06 17:12:04 2023 +0100
@@ -266,3 +266,4 @@
3ffc7209bbae5804a53084c9dc2d41139e88c867 6.5
787af4e0e8b787e1b77a8059926b123730a4cd01 6.5.1
5a8b5420103937fca97c584c5162178eed828ada 6.5.2
+c083d9776cb2fb6056715b2988d1ea48055f3162 6.5.3
--- a/mercurial/revlog.py Tue Oct 31 22:42:46 2023 -0700
+++ b/mercurial/revlog.py Mon Nov 06 17:12:04 2023 +0100
@@ -1279,6 +1279,9 @@
@staticmethod
def is_inline_index(header_bytes):
"""Determine if a revlog is inline from the initial bytes of the index"""
+ if len(header_bytes) == 0:
+ return True
+
header = INDEX_HEADER.unpack(header_bytes)[0]
_format_flags = header & ~0xFFFF
--- a/relnotes/6.5 Tue Oct 31 22:42:46 2023 -0700
+++ b/relnotes/6.5 Mon Nov 06 17:12:04 2023 +0100
@@ -1,3 +1,18 @@
+= Mercurial 6.5.3 =
+
+ * "hgweb: pass strings in WSGI environment correctly from wsgicgi"
+ * "perf: introduce more cache invalidation option in perf::tags"
+ * "perf: add a `--clear-fnode-cache-rev` argument to perf::tags"
+ * "perf: add a --update-last flag to perf::tags"
+ * "blackbox: add a option to duplicate output to stderr too"
+ * "tags: avoid expensive access to repo.changelog in a loop"
+ * "revlog: fix a bug where NULL_NODE failed to be resolved to NULL_REV"
+ * "httppeer: fix static-http: scheme autodetection (issue6833)"
+ * "tests: backed out changeset 8037ddacad47"
+ * "stream-clone: fix a crash when a repo with an empty revlog is cloned"
+ * "censor: accept censored revision during upgrade"
+ * "revlog: avoid opening and closing the file for each cloned revision"
+
= Mercurial 6.5.2 =
* hgweb: encode WSGI environment using the ISO-8859-1 codec
--- a/tests/test-clone-stream.t Tue Oct 31 22:42:46 2023 -0700
+++ b/tests/test-clone-stream.t Mon Nov 06 17:12:04 2023 +0100
@@ -980,3 +980,15 @@
$ mkdir -p empty-repo/.hg
$ hg clone -q --stream ssh://user@dummy/empty-repo empty-repo2
$ hg --cwd empty-repo2 verify -q
+
+Cloning a repo with an empty manifestlog doesn't give some weird error
+
+ $ rm -r empty-repo; hg init empty-repo
+ $ (cd empty-repo; touch x; hg commit -Am empty; hg debugstrip -r 0) > /dev/null
+ $ hg clone -q --stream ssh://user@dummy/empty-repo empty-repo3
+ $ hg --cwd empty-repo3 verify -q 2>&1 | grep -v warning
+ [1]
+
+The warnings filtered out here are talking about zero-length 'orphan' data files.
+Those are harmless, so that's fine.
+