Martin von Zweigbergk <martinvonz@google.com> [Wed, 23 Sep 2020 09:21:26 -0700] rev 45547
rebase: when collapsing, p1 == dest, so use the former only
`dest` is the destination we're rebasing onto, which is always the
same as `p1` when using `--collapse`. This lets us simplify a bit.
Differential Revision: https://phab.mercurial-scm.org/D9073
Martin von Zweigbergk <martinvonz@google.com> [Fri, 18 Sep 2020 15:37:03 -0700] rev 45546
rebase: remove redundant isinmemory argument from _origrebase()
The argument is redundant with `rbst.inmemory`, which makes it unclear
what to do if they were somehow different.
Differential Revision: https://phab.mercurial-scm.org/D9070
Martin von Zweigbergk <martinvonz@google.com> [Tue, 22 Sep 2020 23:18:37 -0700] rev 45545
largefiles: prevent in-memory merge instead of switching to on-disk
I enabled in-memory merge by default while testing some changes. I
spent quite some time troubleshooting why largefiles was still
creating an on-disk mergestate. Then I found out that it ignores the
callers `wc` argument to `mergemod._update()` and always uses on-disk
merge. This patch changes that so we raise an error if largefiles is
used with in-memory merge. That way we'll notice if in-memory merge is
used with largefiles instead of silently replacing ignoring the
`overlayworkingctx` instance and updating the working copy instead.
I felt a little bad that this would break things more for users with
both largefiles and in-memory rebase enabled. So I also added a
higher-level override to make sure that largefiles disables in-memory
rebase. It turns out that that fixes `run-tests.py -k largefiles
--extra-config-opt rebase.experimental.inmemory=1`.
Differential Revision: https://phab.mercurial-scm.org/D9069
Martin von Zweigbergk <martinvonz@google.com> [Mon, 21 Sep 2020 09:56:48 -0700] rev 45544
merge: add a back_out() function to encapsulate update()
I've sent several earlier patches adding `merge.clean_update()`,
`merge.merge()` etc, one function for each use case. This patch
continues that work. I plan to hide the complex `update()` eventually.
Differential Revision: https://phab.mercurial-scm.org/D9064