diff -r 3470a39fb66b -r 93a44c1ba0c6 mercurial/unionrepo.py --- a/mercurial/unionrepo.py Mon Sep 25 12:13:38 2023 +0200 +++ b/mercurial/unionrepo.py Mon Sep 25 12:14:38 2023 +0200 @@ -11,6 +11,8 @@ allowing operations like diff and log with revsets. """ +import contextlib + from .i18n import _ @@ -112,6 +114,19 @@ self.bundlerevs.add(n) n += 1 + @contextlib.contextmanager + def reading(self): + if 0 <= len(self.bundlerevs) < len(self.index): + read_1 = super().reading + else: + read_1 = util.nullcontextmanager + if 0 < len(self.bundlerevs): + read_2 = self.revlog2.reading + else: + read_2 = util.nullcontextmanager + with read_1(), read_2(): + yield + def _chunk(self, rev, df=None): if rev <= self.repotiprev: return revlog.revlog._chunk(self, rev)