# HG changeset patch # User Pierre-Yves David # Date 2023-12-06 23:34:08 # Node ID 66417f55ea33c3ed3c1357200b1321b7b11da495 # Parent 962974a5d0685494f06dcb9b7d0473871ed8f1ef revlog: avoid exposing delayed index entry too widely in non-inline revlog Before this change, the index entry would be seen as "appended" to the data file. It did not hurt too much as there are never accessed for reading, but this was odd. So lets stop doing so. diff --git a/mercurial/revlog.py b/mercurial/revlog.py --- a/mercurial/revlog.py +++ b/mercurial/revlog.py @@ -1173,7 +1173,9 @@ class _InnerRevlog: self.opener.unlink(self.index_file) return self.index_file else: - self._segmentfile._delay_buffer = self._delay_buffer = [] + self._delay_buffer = [] + if self.inline: + self._segmentfile._delay_buffer = self._delay_buffer return None def write_pending(self): @@ -1193,7 +1195,11 @@ class _InnerRevlog: ifh.seek(0, os.SEEK_END) ifh.write(b"".join(self._delay_buffer)) any_pending = True - self._segmentfile._delay_buffer = self._delay_buffer = None + self._delay_buffer = None + if self.inline: + self._segmentfile._delay_buffer = self._delay_buffer + else: + assert self._segmentfile._delay_buffer is None self._orig_index_file = self.index_file self.index_file = pending_index_file self._segmentfile.filename = self.index_file