Mercurial > evolve
annotate tests/test-issue-5720.t @ 3843:f0096db2a7b1
evolve: improve error messages when conflicts occur
This patch improves the error messages when conflicts occur.
First, we drop the line 'evolution failed', that is not the best line we can
show and evolution didn't failed, it's just interrupted by the conflicts and
when user will run `hg evolve --continue`, things will be fine. I still remember
when I first saw 'evolution failed', I got a bit scare as am I in a recoverable
position or not. So let's drop this scary line.
Second, we replace the error messages to say `resolve conflicts and see
help-topic`. The help topic was added recently and documents all the three flags
very well. Addition of tests also showed that all the three flags works fine
with all the three instability type. So we should advertise them more.
Third, we now raise the error with our error message rather than raising
MergeFailure and having evolution related text in hint or stderr above. This
increase the focus on the error message we want to show.
After this patch, I think error messages by evolve in case of conflicts will be
same in every case.
author | Pulkit Goyal <7895pulkit@gmail.com> |
---|---|
date | Tue, 12 Jun 2018 19:00:12 +0530 |
parents | f67ac33c07d2 |
children | 629558d09898 |
rev | line source |
---|---|
3379
ef475fce0dd2
test: add a test to reproduce issue 5720
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
1 This test file test the #5720 issue |
ef475fce0dd2
test: add a test to reproduce issue 5720
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
2 |
ef475fce0dd2
test: add a test to reproduce issue 5720
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
3 Check that `hg evolve --continue` doesn't change changeset phase from secret |
ef475fce0dd2
test: add a test to reproduce issue 5720
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
4 to draft after a merge conflict. |
ef475fce0dd2
test: add a test to reproduce issue 5720
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
5 |
ef475fce0dd2
test: add a test to reproduce issue 5720
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
6 https://bz.mercurial-scm.org/show_bug.cgi?id=5720 |
ef475fce0dd2
test: add a test to reproduce issue 5720
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
7 |
ef475fce0dd2
test: add a test to reproduce issue 5720
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
8 Global setup |
ef475fce0dd2
test: add a test to reproduce issue 5720
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
9 ============ |
ef475fce0dd2
test: add a test to reproduce issue 5720
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
10 |
ef475fce0dd2
test: add a test to reproduce issue 5720
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
11 $ . $TESTDIR/testlib/common.sh |
ef475fce0dd2
test: add a test to reproduce issue 5720
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
12 $ cat >> $HGRCPATH <<EOF |
ef475fce0dd2
test: add a test to reproduce issue 5720
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
13 > [ui] |
ef475fce0dd2
test: add a test to reproduce issue 5720
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
14 > interactive = true |
ef475fce0dd2
test: add a test to reproduce issue 5720
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
15 > [phases] |
ef475fce0dd2
test: add a test to reproduce issue 5720
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
16 > publish=False |
ef475fce0dd2
test: add a test to reproduce issue 5720
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
17 > [extensions] |
ef475fce0dd2
test: add a test to reproduce issue 5720
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
18 > evolve = |
ef475fce0dd2
test: add a test to reproduce issue 5720
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
19 > EOF |
ef475fce0dd2
test: add a test to reproduce issue 5720
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
20 |
ef475fce0dd2
test: add a test to reproduce issue 5720
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
21 Test |
ef475fce0dd2
test: add a test to reproduce issue 5720
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
22 ==== |
ef475fce0dd2
test: add a test to reproduce issue 5720
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
23 |
ef475fce0dd2
test: add a test to reproduce issue 5720
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
24 $ hg init $TESTTMP/issue-5720 |
ef475fce0dd2
test: add a test to reproduce issue 5720
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
25 $ cd $TESTTMP/issue-5720 |
ef475fce0dd2
test: add a test to reproduce issue 5720
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
26 |
ef475fce0dd2
test: add a test to reproduce issue 5720
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
27 Create two drafts commits and one secret |
ef475fce0dd2
test: add a test to reproduce issue 5720
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
28 $ echo a > a |
ef475fce0dd2
test: add a test to reproduce issue 5720
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
29 $ hg commit -Am a |
ef475fce0dd2
test: add a test to reproduce issue 5720
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
30 adding a |
ef475fce0dd2
test: add a test to reproduce issue 5720
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
31 $ echo b > a |
ef475fce0dd2
test: add a test to reproduce issue 5720
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
32 $ hg commit -m b |
ef475fce0dd2
test: add a test to reproduce issue 5720
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
33 $ echo c > a |
ef475fce0dd2
test: add a test to reproduce issue 5720
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
34 $ hg commit --secret -m c |
ef475fce0dd2
test: add a test to reproduce issue 5720
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
35 $ hg log -G -T "{rev}: {phase}" |
ef475fce0dd2
test: add a test to reproduce issue 5720
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
36 @ 2: secret |
ef475fce0dd2
test: add a test to reproduce issue 5720
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
37 | |
ef475fce0dd2
test: add a test to reproduce issue 5720
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
38 o 1: draft |
ef475fce0dd2
test: add a test to reproduce issue 5720
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
39 | |
ef475fce0dd2
test: add a test to reproduce issue 5720
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
40 o 0: draft |
ef475fce0dd2
test: add a test to reproduce issue 5720
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
41 |
ef475fce0dd2
test: add a test to reproduce issue 5720
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
42 Amend the second draft with new content |
ef475fce0dd2
test: add a test to reproduce issue 5720
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
43 $ hg prev |
ef475fce0dd2
test: add a test to reproduce issue 5720
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
44 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
ef475fce0dd2
test: add a test to reproduce issue 5720
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
45 [1] b |
ef475fce0dd2
test: add a test to reproduce issue 5720
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
46 $ echo b2 > a |
ef475fce0dd2
test: add a test to reproduce issue 5720
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
47 $ hg amend |
ef475fce0dd2
test: add a test to reproduce issue 5720
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
48 1 new orphan changesets |
ef475fce0dd2
test: add a test to reproduce issue 5720
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
49 $ hg log -G -T "{rev}: {phase}" |
ef475fce0dd2
test: add a test to reproduce issue 5720
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
50 @ 3: draft |
ef475fce0dd2
test: add a test to reproduce issue 5720
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
51 | |
3417
d3a17c67f85c
branching: merge stable back into default
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
3411
diff
changeset
|
52 | * 2: secret |
3379
ef475fce0dd2
test: add a test to reproduce issue 5720
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
53 | | |
ef475fce0dd2
test: add a test to reproduce issue 5720
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
54 | x 1: draft |
ef475fce0dd2
test: add a test to reproduce issue 5720
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
55 |/ |
ef475fce0dd2
test: add a test to reproduce issue 5720
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
56 o 0: draft |
ef475fce0dd2
test: add a test to reproduce issue 5720
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
57 |
ef475fce0dd2
test: add a test to reproduce issue 5720
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
58 Evolve which triggers a conflict |
ef475fce0dd2
test: add a test to reproduce issue 5720
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
59 $ hg evolve |
ef475fce0dd2
test: add a test to reproduce issue 5720
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
60 move:[2] c |
ef475fce0dd2
test: add a test to reproduce issue 5720
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
61 atop:[3] b |
ef475fce0dd2
test: add a test to reproduce issue 5720
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
62 merging a |
ef475fce0dd2
test: add a test to reproduce issue 5720
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
63 warning: conflicts while merging a! (edit, then use 'hg resolve --mark') |
3843
f0096db2a7b1
evolve: improve error messages when conflicts occur
Pulkit Goyal <7895pulkit@gmail.com>
parents:
3821
diff
changeset
|
64 abort: fix conflicts and see `hg help evolve.interrupted` |
3379
ef475fce0dd2
test: add a test to reproduce issue 5720
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
65 [255] |
ef475fce0dd2
test: add a test to reproduce issue 5720
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
66 |
ef475fce0dd2
test: add a test to reproduce issue 5720
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
67 Fix the conflict |
ef475fce0dd2
test: add a test to reproduce issue 5720
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
68 $ echo c2 > a |
ef475fce0dd2
test: add a test to reproduce issue 5720
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
69 $ hg resolve -m |
ef475fce0dd2
test: add a test to reproduce issue 5720
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
70 (no more unresolved files) |
3472
05bd493d496d
evolve: add evolve info to cmdutil.afterresolvedstates
Pulkit Goyal <7895pulkit@gmail.com>
parents:
3417
diff
changeset
|
71 continue: hg evolve --continue |
3379
ef475fce0dd2
test: add a test to reproduce issue 5720
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
72 |
ef475fce0dd2
test: add a test to reproduce issue 5720
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
73 Continue the evolution |
ef475fce0dd2
test: add a test to reproduce issue 5720
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
74 $ hg evolve --continue |
3386
2a51107e60cf
evolve: add a utility fn to check validity of opts passed to `hg evolve`
Pulkit Goyal <7895pulkit@gmail.com>
parents:
3379
diff
changeset
|
75 evolving 2:13833940840c "c" |
3494
14cd04ff968e
evolve: show the updated working directory after `hg evolve --continue`
Pulkit Goyal <7895pulkit@gmail.com>
parents:
3472
diff
changeset
|
76 working directory is now at 3d2080c198e5 |
3379
ef475fce0dd2
test: add a test to reproduce issue 5720
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
77 |
ef475fce0dd2
test: add a test to reproduce issue 5720
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
78 Tip should stay in secret phase |
ef475fce0dd2
test: add a test to reproduce issue 5720
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
79 $ hg log -G -T "{rev}: {phase}" |
3388
be41e4740a25
evolve: use phases.new-commit config to retain phase information (issue5720)
Pulkit Goyal <7895pulkit@gmail.com>
parents:
3386
diff
changeset
|
80 @ 4: secret |
3379
ef475fce0dd2
test: add a test to reproduce issue 5720
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
81 | |
ef475fce0dd2
test: add a test to reproduce issue 5720
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
82 o 3: draft |
ef475fce0dd2
test: add a test to reproduce issue 5720
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
83 | |
ef475fce0dd2
test: add a test to reproduce issue 5720
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
84 o 0: draft |
ef475fce0dd2
test: add a test to reproduce issue 5720
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
85 |
ef475fce0dd2
test: add a test to reproduce issue 5720
Boris Feld <boris.feld@octobus.net>
parents:
diff
changeset
|
86 $ hg log -r . -T '{phase}\n' |
3388
be41e4740a25
evolve: use phases.new-commit config to retain phase information (issue5720)
Pulkit Goyal <7895pulkit@gmail.com>
parents:
3386
diff
changeset
|
87 secret |