# HG changeset patch # User Martin von Zweigbergk # Date 1520572646 28800 # Node ID 9ab7eba99fe52ae2cbb3e9cb9c18156bf952deee # Parent f4e9e89330d42b6b0fdc49bb74c2c7b70a7258c2 tests: add a few tests involving --collapse and rebase.singletransaction=1 I'm about to change the rebase code quite a bit and this was poorly tested. Differential Revision: https://phab.mercurial-scm.org/D2757 diff -r f4e9e89330d4 -r 9ab7eba99fe5 tests/test-rebase-transaction.t --- a/tests/test-rebase-transaction.t Thu Mar 08 20:55:51 2018 -0800 +++ b/tests/test-rebase-transaction.t Thu Mar 08 21:17:26 2018 -0800 @@ -48,3 +48,149 @@ o 0: A $ cd .. + +Check that --collapse works + + $ hg init collapse && cd collapse + $ hg debugdrawdag <<'EOF' + > Z + > | + > | D + > | | + > | C + > | | + > Y B + > |/ + > A + > EOF +- We should only see two status stored messages. One from the start, one from +- the end. + $ hg rebase --collapse --debug -b D -d Z | grep 'status stored' + rebase status stored + rebase status stored + $ hg tglog + o 3: Collapsed revision + | * B + | * C + | * D + o 2: Z + | + o 1: Y + | + o 0: A + + $ cd .. + +With --collapse, check that conflicts can be resolved and rebase can then be +continued + + $ hg init collapse-conflict && cd collapse-conflict + $ hg debugdrawdag <<'EOF' + > Z # Z/conflict=Z + > | + > | D + > | | + > | C # C/conflict=C + > | | + > Y B + > |/ + > A + > EOF + $ hg rebase --collapse -b D -d Z + rebasing 1:112478962961 "B" (B) + rebasing 3:c26739dbe603 "C" (C) + merging conflict + warning: conflicts while merging conflict! (edit, then use 'hg resolve --mark') + unresolved conflicts (see hg resolve, then hg rebase --continue) + [1] + $ hg tglog + o 5: D + | + | @ 4: Z + | | + @ | 3: C + | | + | o 2: Y + | | + o | 1: B + |/ + o 0: A + + $ hg st + M C + M conflict + A B + ? conflict.orig + $ echo resolved > conflict + $ hg resolve -m + (no more unresolved files) + continue: hg rebase --continue + $ hg rebase --continue + already rebased 1:112478962961 "B" (B) as 79bc8f4973ce + rebasing 3:c26739dbe603 "C" (C) + rebasing 5:d24bb333861c "D" (D tip) + saved backup bundle to $TESTTMP/collapse-conflict/.hg/strip-backup/112478962961-b5b34645-rebase.hg + $ hg tglog + o 3: Collapsed revision + | * B + | * C + | * D + o 2: Z + | + o 1: Y + | + o 0: A + + $ cd .. + +With --collapse, check that the commit message editing can be canceled and +rebase can then be continued + + $ hg init collapse-cancel-editor && cd collapse-cancel-editor + $ hg debugdrawdag <<'EOF' + > Z + > | + > | D + > | | + > | C + > | | + > Y B + > |/ + > A + > EOF + $ HGEDITOR=false hg --config ui.interactive=1 rebase --collapse -b D -d Z + rebasing 1:112478962961 "B" (B) + rebasing 3:26805aba1e60 "C" (C) + rebasing 5:f585351a92f8 "D" (D tip) + abort: edit failed: false exited with status 1 + [255] + $ hg tglog + o 5: D + | + | @ 4: Z + | | + o | 3: C + | | + | o 2: Y + | | + o | 1: B + |/ + o 0: A + + $ hg rebase --continue + already rebased 1:112478962961 "B" (B) as e9b22a392ce0 + already rebased 3:26805aba1e60 "C" (C) as e9b22a392ce0 + already rebased 5:f585351a92f8 "D" (D tip) as e9b22a392ce0 + saved backup bundle to $TESTTMP/collapse-cancel-editor/.hg/strip-backup/112478962961-cb2a9b47-rebase.hg + $ hg tglog + o 3: Collapsed revision + | * B + | * C + | * D + o 2: Z + | + o 1: Y + | + o 0: A + + $ cd ..