Mercurial > evolve
annotate tests/test-exchange-obsmarkers-case-B1.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 | e6bea259c227 |
children | 98941c28f3e2 |
rev | line source |
---|---|
2268
f2ebe960998b
tests: update test to match upstreamable version
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
2230
diff
changeset
|
1 ============================================ |
f2ebe960998b
tests: update test to match upstreamable version
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
2230
diff
changeset
|
2 Testing obsolescence markers push: Cases B.1 |
f2ebe960998b
tests: update test to match upstreamable version
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
2230
diff
changeset
|
3 ============================================ |
837
64f75c5c4f7f
exchange: add test case for B.1
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
4 |
2268
f2ebe960998b
tests: update test to match upstreamable version
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
2230
diff
changeset
|
5 Mercurial pushes obsolescences markers relevant to the "pushed-set", the set of |
f2ebe960998b
tests: update test to match upstreamable version
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
2230
diff
changeset
|
6 all changesets that requested to be "in sync" after the push (even if they are |
f2ebe960998b
tests: update test to match upstreamable version
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
2230
diff
changeset
|
7 already on both side). |
837
64f75c5c4f7f
exchange: add test case for B.1
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
8 |
2268
f2ebe960998b
tests: update test to match upstreamable version
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
2230
diff
changeset
|
9 This test belongs to a series of tests checking such set is properly computed |
f2ebe960998b
tests: update test to match upstreamable version
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
2230
diff
changeset
|
10 and applied. This does not tests "obsmarkers" discovery capabilities. |
837
64f75c5c4f7f
exchange: add test case for B.1
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
11 |
2268
f2ebe960998b
tests: update test to match upstreamable version
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
2230
diff
changeset
|
12 Category B: pruning case |
f2ebe960998b
tests: update test to match upstreamable version
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
2230
diff
changeset
|
13 TestCase 1: Prune on non-targeted common changeset |
f2ebe960998b
tests: update test to match upstreamable version
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
2230
diff
changeset
|
14 |
f2ebe960998b
tests: update test to match upstreamable version
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
2230
diff
changeset
|
15 B.1 Prune on non-targeted common changeset |
f2ebe960998b
tests: update test to match upstreamable version
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
2230
diff
changeset
|
16 ========================================== |
837
64f75c5c4f7f
exchange: add test case for B.1
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
17 |
64f75c5c4f7f
exchange: add test case for B.1
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
18 .. {{{ |
64f75c5c4f7f
exchange: add test case for B.1
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
19 .. ⊗ B |
64f75c5c4f7f
exchange: add test case for B.1
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
20 .. | |
64f75c5c4f7f
exchange: add test case for B.1
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
21 .. ◕ A |
64f75c5c4f7f
exchange: add test case for B.1
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
22 .. | |
64f75c5c4f7f
exchange: add test case for B.1
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
23 .. ● O |
64f75c5c4f7f
exchange: add test case for B.1
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
24 .. }}} |
64f75c5c4f7f
exchange: add test case for B.1
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
25 .. |
64f75c5c4f7f
exchange: add test case for B.1
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
26 .. Marker exist from: |
64f75c5c4f7f
exchange: add test case for B.1
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
27 .. |
64f75c5c4f7f
exchange: add test case for B.1
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
28 .. * B (prune) |
64f75c5c4f7f
exchange: add test case for B.1
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
29 .. |
2268
f2ebe960998b
tests: update test to match upstreamable version
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
2230
diff
changeset
|
30 .. Command runs: |
837
64f75c5c4f7f
exchange: add test case for B.1
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
31 .. |
64f75c5c4f7f
exchange: add test case for B.1
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
32 .. * hg push -r O |
64f75c5c4f7f
exchange: add test case for B.1
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
33 .. |
2268
f2ebe960998b
tests: update test to match upstreamable version
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
2230
diff
changeset
|
34 .. Expected exclude: |
837
64f75c5c4f7f
exchange: add test case for B.1
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
35 .. |
64f75c5c4f7f
exchange: add test case for B.1
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
36 .. * B (prune) |
64f75c5c4f7f
exchange: add test case for B.1
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
37 |
2268
f2ebe960998b
tests: update test to match upstreamable version
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
2230
diff
changeset
|
38 Setup |
f2ebe960998b
tests: update test to match upstreamable version
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
2230
diff
changeset
|
39 ----- |
f2ebe960998b
tests: update test to match upstreamable version
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
2230
diff
changeset
|
40 |
f2ebe960998b
tests: update test to match upstreamable version
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
2230
diff
changeset
|
41 $ . $TESTDIR/testlib/exchange-obsmarker-util.sh |
f2ebe960998b
tests: update test to match upstreamable version
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
2230
diff
changeset
|
42 |
f2ebe960998b
tests: update test to match upstreamable version
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
2230
diff
changeset
|
43 Initial |
837
64f75c5c4f7f
exchange: add test case for B.1
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
44 |
64f75c5c4f7f
exchange: add test case for B.1
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
45 $ setuprepos B.1 |
64f75c5c4f7f
exchange: add test case for B.1
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
46 creating test repo for test case B.1 |
64f75c5c4f7f
exchange: add test case for B.1
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
47 - pulldest |
64f75c5c4f7f
exchange: add test case for B.1
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
48 - main |
64f75c5c4f7f
exchange: add test case for B.1
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
49 - pushdest |
64f75c5c4f7f
exchange: add test case for B.1
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
50 cd into `main` and proceed with env setup |
64f75c5c4f7f
exchange: add test case for B.1
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
51 $ cd main |
64f75c5c4f7f
exchange: add test case for B.1
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
52 $ mkcommit A |
64f75c5c4f7f
exchange: add test case for B.1
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
53 $ mkcommit B |
2268
f2ebe960998b
tests: update test to match upstreamable version
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
2230
diff
changeset
|
54 |
f2ebe960998b
tests: update test to match upstreamable version
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
2230
diff
changeset
|
55 make both changeset known in remote |
f2ebe960998b
tests: update test to match upstreamable version
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
2230
diff
changeset
|
56 |
f2ebe960998b
tests: update test to match upstreamable version
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
2230
diff
changeset
|
57 $ hg push -qf ../pushdest |
f2ebe960998b
tests: update test to match upstreamable version
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
2230
diff
changeset
|
58 $ hg push -qf ../pulldest |
f2ebe960998b
tests: update test to match upstreamable version
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
2230
diff
changeset
|
59 |
f2ebe960998b
tests: update test to match upstreamable version
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
2230
diff
changeset
|
60 create prune marker |
f2ebe960998b
tests: update test to match upstreamable version
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
2230
diff
changeset
|
61 |
837
64f75c5c4f7f
exchange: add test case for B.1
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
62 $ hg prune -qd '0 0' . |
64f75c5c4f7f
exchange: add test case for B.1
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
63 $ hg log -G --hidden |
64f75c5c4f7f
exchange: add test case for B.1
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
64 x f6fbb35d8ac9 (draft): B |
64f75c5c4f7f
exchange: add test case for B.1
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
65 | |
64f75c5c4f7f
exchange: add test case for B.1
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
66 @ f5bc6836db60 (draft): A |
64f75c5c4f7f
exchange: add test case for B.1
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
67 | |
64f75c5c4f7f
exchange: add test case for B.1
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
68 o a9bdc8b26820 (public): O |
64f75c5c4f7f
exchange: add test case for B.1
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
69 |
2268
f2ebe960998b
tests: update test to match upstreamable version
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
2230
diff
changeset
|
70 $ inspect_obsmarkers |
f2ebe960998b
tests: update test to match upstreamable version
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
2230
diff
changeset
|
71 obsstore content |
f2ebe960998b
tests: update test to match upstreamable version
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
2230
diff
changeset
|
72 ================ |
3566
e6bea259c227
prune: include "operation" metadata in obsmarkers
Martin von Zweigbergk <martinvonz@google.com>
parents:
3559
diff
changeset
|
73 f6fbb35d8ac958bbe70035e4c789c18471cdc0af 0 {f5bc6836db60e308a17ba08bf050154ba9c4fad7} (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', 'operation': 'prune', 'user': 'test'} |
2268
f2ebe960998b
tests: update test to match upstreamable version
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
2230
diff
changeset
|
74 obshashtree |
f2ebe960998b
tests: update test to match upstreamable version
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
2230
diff
changeset
|
75 =========== |
2083
778afb036245
discovery: introduce a official 'obshash associated to a range
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
1093
diff
changeset
|
76 a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04 0000000000000000000000000000000000000000 |
3566
e6bea259c227
prune: include "operation" metadata in obsmarkers
Martin von Zweigbergk <martinvonz@google.com>
parents:
3559
diff
changeset
|
77 f5bc6836db60e308a17ba08bf050154ba9c4fad7 26563406db05b110410fcfb692bd66c212f15c7a |
e6bea259c227
prune: include "operation" metadata in obsmarkers
Martin von Zweigbergk <martinvonz@google.com>
parents:
3559
diff
changeset
|
78 f6fbb35d8ac958bbe70035e4c789c18471cdc0af 8dff6be5bc7194357b78e44acc79f138eedc075a |
2268
f2ebe960998b
tests: update test to match upstreamable version
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
2230
diff
changeset
|
79 obshashrange |
f2ebe960998b
tests: update test to match upstreamable version
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
2230
diff
changeset
|
80 ============ |
2228
3b18440cca74
debugstablerange: improve output spacing
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
2118
diff
changeset
|
81 rev node index size depth obshash |
3566
e6bea259c227
prune: include "operation" metadata in obsmarkers
Martin von Zweigbergk <martinvonz@google.com>
parents:
3559
diff
changeset
|
82 1 f5bc6836db60 0 2 2 26563406db05 |
2228
3b18440cca74
debugstablerange: improve output spacing
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
2118
diff
changeset
|
83 0 a9bdc8b26820 0 1 1 000000000000 |
3566
e6bea259c227
prune: include "operation" metadata in obsmarkers
Martin von Zweigbergk <martinvonz@google.com>
parents:
3559
diff
changeset
|
84 1 f5bc6836db60 1 1 2 26563406db05 |
837
64f75c5c4f7f
exchange: add test case for B.1
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
85 $ cd .. |
64f75c5c4f7f
exchange: add test case for B.1
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
86 $ cd .. |
64f75c5c4f7f
exchange: add test case for B.1
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
87 |
2268
f2ebe960998b
tests: update test to match upstreamable version
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
2230
diff
changeset
|
88 Actual Test |
f2ebe960998b
tests: update test to match upstreamable version
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
2230
diff
changeset
|
89 ----------- |
837
64f75c5c4f7f
exchange: add test case for B.1
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
90 |
2268
f2ebe960998b
tests: update test to match upstreamable version
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
2230
diff
changeset
|
91 $ dotest B.1 O |
f2ebe960998b
tests: update test to match upstreamable version
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
2230
diff
changeset
|
92 ## Running testcase B.1 |
f2ebe960998b
tests: update test to match upstreamable version
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
2230
diff
changeset
|
93 # testing echange of "O" (a9bdc8b26820) |
837
64f75c5c4f7f
exchange: add test case for B.1
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
94 ## initial state |
64f75c5c4f7f
exchange: add test case for B.1
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
95 # obstore: main |
3566
e6bea259c227
prune: include "operation" metadata in obsmarkers
Martin von Zweigbergk <martinvonz@google.com>
parents:
3559
diff
changeset
|
96 f6fbb35d8ac958bbe70035e4c789c18471cdc0af 0 {f5bc6836db60e308a17ba08bf050154ba9c4fad7} (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', 'operation': 'prune', 'user': 'test'} |
837
64f75c5c4f7f
exchange: add test case for B.1
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
97 # obstore: pushdest |
64f75c5c4f7f
exchange: add test case for B.1
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
98 # obstore: pulldest |
2268
f2ebe960998b
tests: update test to match upstreamable version
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
2230
diff
changeset
|
99 ## pushing "O" from main to pushdest |
837
64f75c5c4f7f
exchange: add test case for B.1
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
100 pushing to pushdest |
64f75c5c4f7f
exchange: add test case for B.1
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
101 searching for changes |
2268
f2ebe960998b
tests: update test to match upstreamable version
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
2230
diff
changeset
|
102 no changes found |
837
64f75c5c4f7f
exchange: add test case for B.1
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
103 ## post push state |
64f75c5c4f7f
exchange: add test case for B.1
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
104 # obstore: main |
3566
e6bea259c227
prune: include "operation" metadata in obsmarkers
Martin von Zweigbergk <martinvonz@google.com>
parents:
3559
diff
changeset
|
105 f6fbb35d8ac958bbe70035e4c789c18471cdc0af 0 {f5bc6836db60e308a17ba08bf050154ba9c4fad7} (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', 'operation': 'prune', 'user': 'test'} |
837
64f75c5c4f7f
exchange: add test case for B.1
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
106 # obstore: pushdest |
64f75c5c4f7f
exchange: add test case for B.1
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
107 # obstore: pulldest |
2268
f2ebe960998b
tests: update test to match upstreamable version
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
2230
diff
changeset
|
108 ## pulling "a9bdc8b26820" from main into pulldest |
837
64f75c5c4f7f
exchange: add test case for B.1
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
109 pulling from main |
2268
f2ebe960998b
tests: update test to match upstreamable version
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
2230
diff
changeset
|
110 no changes found |
837
64f75c5c4f7f
exchange: add test case for B.1
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
111 ## post pull state |
64f75c5c4f7f
exchange: add test case for B.1
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
112 # obstore: main |
3566
e6bea259c227
prune: include "operation" metadata in obsmarkers
Martin von Zweigbergk <martinvonz@google.com>
parents:
3559
diff
changeset
|
113 f6fbb35d8ac958bbe70035e4c789c18471cdc0af 0 {f5bc6836db60e308a17ba08bf050154ba9c4fad7} (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '0', 'operation': 'prune', 'user': 'test'} |
837
64f75c5c4f7f
exchange: add test case for B.1
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
114 # obstore: pushdest |
64f75c5c4f7f
exchange: add test case for B.1
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff
changeset
|
115 # obstore: pulldest |