--- a/mercurial/revlog.py Mon May 29 14:07:58 2023 +0200
+++ b/mercurial/revlog.py Mon May 29 18:41:58 2023 +0200
@@ -506,7 +506,7 @@
except FileNotFoundError:
return b''
- def get_streams(self, max_linkrev):
+ def get_streams(self, max_linkrev, force_inline=False):
n = len(self)
index = self.index
while n > 0:
@@ -547,6 +547,29 @@
return [
(self._indexfile, inline_stream, index_size + data_size),
]
+ elif force_inline:
+
+ def get_stream():
+ with self._datafp() as fp_d:
+ yield None
+
+ for rev in range(n):
+ idx = self.index.entry_binary(rev)
+ if rev == 0 and self._docket is None:
+ # re-inject the inline flag
+ header = self._format_flags
+ header |= self._format_version
+ header |= FLAG_INLINE_DATA
+ header = self.index.pack_header(header)
+ idx = header + idx
+ yield idx
+ yield self._getsegmentforrevs(rev, rev, df=fp_d)[1]
+
+ inline_stream = get_stream()
+ next(inline_stream)
+ return [
+ (self._indexfile, inline_stream, index_size + data_size),
+ ]
else:
def get_index_stream():