Mercurial > hg
view tests/test-rebase-legacy.t @ 45545:e5e1285b6f6f
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
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Tue, 22 Sep 2020 23:18:37 -0700 |
parents | 503d0dd2af18 |
children | f90a5c211251 |
line wrap: on
line source
#testcases continuecommand continueflag Test rebase --continue with rebasestate written by legacy client $ cat >> $HGRCPATH <<EOF > [extensions] > rebase= > drawdag=$TESTDIR/drawdag.py > EOF #if continueflag $ cat >> $HGRCPATH <<EOF > [alias] > continue = rebase --continue > EOF #endif $ hg init $ hg debugdrawdag <<'EOF' > D H > | | > C G > | | > B F > | | > Z A E > \|/ > R > EOF $ for r in A B C D E F G H R Z > do > eval node_$r=$(hg log -r $r -T '{node}') > done rebasestate generated by a legacy client running "hg rebase -r B+D+E+G+H -d Z" $ touch .hg/last-message.txt $ cat > .hg/rebasestate <<EOF > 0000000000000000000000000000000000000000 > $node_Z > 0000000000000000000000000000000000000000 > 0 > 0 > 0 > > $node_A:-2 > $node_E:0000000000000000000000000000000000000000 > $node_B:0000000000000000000000000000000000000000 > $node_F:-3 > $node_C:-3 > $node_G:0000000000000000000000000000000000000000 > $node_D:0000000000000000000000000000000000000000 > $node_H:0000000000000000000000000000000000000000 > EOF #if continuecommand $ hg continue --dry-run rebase in progress, will be resumed #endif $ hg continue rebasing 4:c1e6b162678d "B" (B) rebasing 8:6f7a236de685 "D" (D) rebasing 2:de008c61a447 "E" (E) rebasing 7:d2fa1c02b240 "G" (G) rebasing 9:6582e6951a9c "H" (H tip) warning: orphaned descendants detected, not stripping c1e6b162678d, de008c61a447 saved backup bundle to $TESTTMP/.hg/strip-backup/6f7a236de685-9880a3dc-rebase.hg $ hg log -G -T '{rev}:{node|short} {desc}\n' o 11:721b8da0a708 H | o 10:9d65695ec3c2 G | o 9:21c8397a5d68 E | | o 8:fc52970345e8 D | | | o 7:eac96551b107 B |/ | o 6:bd5548558fcf C | | | | o 5:aeba276fcb7d F | | | | o | 4:c1e6b162678d B | | | o | | 3:f424eb6a8c01 Z | | | +---o 2:de008c61a447 E | | | o 1:21a6c4502885 A |/ o 0:b41ce7760717 R