diff --git a/mercurial/upgrade_utils/actions.py b/mercurial/upgrade_utils/actions.py --- a/mercurial/upgrade_utils/actions.py +++ b/mercurial/upgrade_utils/actions.py @@ -658,6 +658,11 @@ elif b're-delta-fulladd' in self._upgrade_actions_names: self.delta_reuse_mode = revlog.revlog.DELTAREUSEFULLADD + # should this operation force re-delta of both parents + self.force_re_delta_both_parents = ( + b're-delta-multibase' in self._upgrade_actions_names + ) + def _write_labeled(self, l, label): """ Utility function to aid writing of a list under one label diff --git a/mercurial/upgrade_utils/engine.py b/mercurial/upgrade_utils/engine.py --- a/mercurial/upgrade_utils/engine.py +++ b/mercurial/upgrade_utils/engine.py @@ -140,9 +140,7 @@ newrl, addrevisioncb=oncopiedrevision, deltareuse=upgrade_op.delta_reuse_mode, - forcedeltabothparents=upgrade_op.has_upgrade_action( - b're-delta-multibase' - ), + forcedeltabothparents=upgrade_op.force_re_delta_both_parents, sidedatacompanion=sidedatacompanion, ) else: