( )⚙ D9076 rebase: teach in-memory rebase to not restart with on-disk rebase on conflict

This is an archive of the discontinued Mercurial Phabricator instance.

rebase: teach in-memory rebase to not restart with on-disk rebase on conflict
ClosedPublic

Authored by martinvonz on Sep 23 2020, 1:28 PM.

Details

Summary

When in-memory rebase runs into conflicts, it redoes the whole rebase
operation. This patch teaches it to instead discard just the current
overlayworkingctx and redo that node on disk.

I've tested this by enabling in-memory rebase by default and checking
that there are no unexpected differences after this patch.

The next step is to make it so that hg rebase --continue can use
in-memory merge.

Diff Detail

Repository
rHG Mercurial
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

martinvonz created this revision.Sep 23 2020, 1:28 PM
pulkit accepted this revision.Sep 24 2020, 2:53 AM
This revision is now accepted and ready to land.Sep 24 2020, 2:53 AM

I've made this not dependent on the merge.update() changes, so it can now be queued separately.

pulkit accepted this revision.Sep 25 2020, 3:15 AM

I've made this not dependent on the merge.update() changes, so it can now be queued separately.

Thank you!