diff --git a/mercurial/revlog.py b/mercurial/revlog.py --- a/mercurial/revlog.py +++ b/mercurial/revlog.py @@ -1985,7 +1985,7 @@ with self._indexfp(b'r') as ifh, self._datafp(b'w') as dfh: for r in self: dfh.write(self._getsegmentforrevs(r, r, df=ifh)[1]) - if troffset <= self.start(r): + if troffset <= self.start(r) + r * self.index.entry_size: trindex = r with self._indexfp(b'w') as fp: diff --git a/tests/test-transaction-rollback-on-revlog-split.t b/tests/test-transaction-rollback-on-revlog-split.t --- a/tests/test-transaction-rollback-on-revlog-split.t +++ b/tests/test-transaction-rollback-on-revlog-split.t @@ -31,7 +31,7 @@ $ cat .hg/store/journal | tr -s '\000' ' ' data/file.i 1065 data/file.d 0 - data/file.i 0 + data/file.i 64 00manifest.i 111 00changelog.i 122