comparison tests/test-evolve-issue5966.t @ 4311:8aa28e68ac44 stable

evolve: detect unresolved conflict during evolve --continue (issue5966) Evolve --continue was ignoring unresolved conflict, proceeding with its operation without any check. This is now fixed. This test case was built and formalized by Matt Harbison and Anton Shestakov.
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Fri, 21 Dec 2018 13:14:59 +0800
parents
children 55ca0b6276e7 bcd52ce0916d
comparison
equal deleted inserted replaced
4304:604732387e33 4311:8aa28e68ac44
1 Testing evolve --continue with unresolved conflicts (issue5966)
2 https://bz.mercurial-scm.org/show_bug.cgi?id=5966
3
4 $ . $TESTDIR/testlib/common.sh
5
6 $ hg init issue5966
7 $ cd issue5966
8 $ cat > .hg/hgrc << EOF
9 > [phases]
10 > publish = false
11 > [alias]
12 > glog = log -GT "{rev}: {desc}"
13 > [extensions]
14 > evolve=
15 > EOF
16
17 $ touch a
18 $ hg ci -Aqm 'empty'
19
20 $ echo apple > a
21 $ hg ci -m 'apple'
22 $ echo banana > a
23 $ hg ci -m 'banana'
24 $ echo coconut > a
25 $ hg ci -m 'coconut'
26
27 $ hg glog
28 @ 3: coconut
29 |
30 o 2: banana
31 |
32 o 1: apple
33 |
34 o 0: empty
35
36
37 $ hg up -q 1
38
39 Amending revision 1 in a way that causes conflicts
40
41 $ echo apricot > a
42 $ hg amend -m 'apricot'
43 2 new orphan changesets
44
45 $ hg glog --hidden
46 @ 4: apricot
47 |
48 | * 3: coconut
49 | |
50 | * 2: banana
51 | |
52 | x 1: apple
53 |/
54 o 0: empty
55
56
57 $ hg evolve -t :fail
58 move:[2] banana
59 atop:[4] apricot
60 fix conflicts and see `hg help evolve.interrupted`
61 [1]
62 $ hg evolve --list
63 34a690fcf6ab: banana
64 orphan: 7f59f18ca4a9 (obsolete parent)
65
66 feb8c0bffa1f: coconut
67 orphan: 34a690fcf6ab (orphan parent)
68
69 Evolve should detect unresolved conflict.
70
71 $ hg resolve --list
72 U a
73 $ hg evolve --continue
74 abort: unresolved merge conflicts (see 'hg help resolve')
75 [255]
76
77 (even when ran twice)
78
79 $ hg evolve --continue
80 abort: unresolved merge conflicts (see 'hg help resolve')
81 [255]
82
83 $ cat a
84 apricot
85 $ hg resolve --list
86 U a
87 $ hg resolve a -t :other
88 (no more unresolved files)
89 continue: hg evolve --continue
90 $ hg resolve --list
91 R a
92 $ hg evolve --continue
93 evolving 2:34a690fcf6ab "banana"
94 working directory is now at e4207a610ed0
95 $ hg resolve --list
96
97 evolve the rest of the stack
98
99 $ hg evolve
100 move:[3] coconut
101 atop:[5] banana
102 merging a
103 working directory is now at d77b4639fe26
104
105 All commit evolved
106
107 $ hg glog
108 @ 6: coconut
109 |
110 o 5: banana
111 |
112 o 4: apricot
113 |
114 o 0: empty
115