# HG changeset patch # User Pierre-Yves David # Date 2021-05-03 10:28:26 # Node ID b3acefded601d4030bbdf6c2e87e4609c62e4174 # Parent 8f6165c90163307a4c4eee64205acfb16fbf018e revlog: use `_writing` in `rewrite_sidedata` Special cases aren't special enough to break the rules. Differential Revision: https://phab.mercurial-scm.org/D10609 diff --git a/mercurial/revlog.py b/mercurial/revlog.py --- a/mercurial/revlog.py +++ b/mercurial/revlog.py @@ -3157,8 +3157,8 @@ class revlog(object): new_entries = [] # append the new sidedata - with self._datafp(b'a+') as dfh: - # Maybe this bug still exists, see revlog._writeentry + with self._writing(transaction): + ifh, dfh = self._writinghandles dfh.seek(0, os.SEEK_END) current_offset = dfh.tell() for rev in range(startrev, endrev + 1): @@ -3192,9 +3192,8 @@ class revlog(object): new_entries.append(entry) current_offset += len(serialized_sidedata) - # rewrite the new index entries - with self._indexfp(b'r+') as ifh: - fp.seek(startrev * self.index.entry_size) + # rewrite the new index entries + ifh.seek(startrev * self.index.entry_size) for i, e in enumerate(new_entries): rev = startrev + i self.index.replace_sidedata_info(rev, e[8], e[9], e[0])