Show More
@@ -1,167 +1,169 b'' | |||||
1 | test that a commit clears the merge state. |
|
1 | test that a commit clears the merge state. | |
2 |
|
2 | |||
3 | $ hg init repo |
|
3 | $ hg init repo | |
4 | $ cd repo |
|
4 | $ cd repo | |
5 |
|
5 | |||
6 | $ echo foo > file1 |
|
6 | $ echo foo > file1 | |
7 | $ echo foo > file2 |
|
7 | $ echo foo > file2 | |
8 | $ hg commit -Am 'add files' |
|
8 | $ hg commit -Am 'add files' | |
9 | adding file1 |
|
9 | adding file1 | |
10 | adding file2 |
|
10 | adding file2 | |
11 |
|
11 | |||
12 | $ echo bar >> file1 |
|
12 | $ echo bar >> file1 | |
13 | $ echo bar >> file2 |
|
13 | $ echo bar >> file2 | |
14 | $ hg commit -Am 'append bar to files' |
|
14 | $ hg commit -Am 'append bar to files' | |
15 |
|
15 | |||
16 | create a second head with conflicting edits |
|
16 | create a second head with conflicting edits | |
17 |
|
17 | |||
18 | $ hg up -C 0 |
|
18 | $ hg up -C 0 | |
19 | 2 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
19 | 2 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
20 | $ echo baz >> file1 |
|
20 | $ echo baz >> file1 | |
21 | $ echo baz >> file2 |
|
21 | $ echo baz >> file2 | |
22 | $ hg commit -Am 'append baz to files' |
|
22 | $ hg commit -Am 'append baz to files' | |
23 | created new head |
|
23 | created new head | |
24 |
|
24 | |||
25 | create a third head with no conflicting edits |
|
25 | create a third head with no conflicting edits | |
26 | $ hg up -qC 0 |
|
26 | $ hg up -qC 0 | |
27 | $ echo foo > file3 |
|
27 | $ echo foo > file3 | |
28 | $ hg commit -Am 'add non-conflicting file' |
|
28 | $ hg commit -Am 'add non-conflicting file' | |
29 | adding file3 |
|
29 | adding file3 | |
30 | created new head |
|
30 | created new head | |
31 |
|
31 | |||
32 | failing merge |
|
32 | failing merge | |
33 |
|
33 | |||
34 | $ hg up -qC 2 |
|
34 | $ hg up -qC 2 | |
35 | $ hg merge --tool=internal:fail 1 |
|
35 | $ hg merge --tool=internal:fail 1 | |
36 | 0 files updated, 0 files merged, 0 files removed, 2 files unresolved |
|
36 | 0 files updated, 0 files merged, 0 files removed, 2 files unresolved | |
37 | use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon |
|
37 | use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon | |
38 | [1] |
|
38 | [1] | |
39 |
|
39 | |||
40 | resolve -l should contain unresolved entries |
|
40 | resolve -l should contain unresolved entries | |
41 |
|
41 | |||
42 | $ hg resolve -l |
|
42 | $ hg resolve -l | |
43 | U file1 |
|
43 | U file1 | |
44 | U file2 |
|
44 | U file2 | |
45 |
|
45 | |||
46 | $ hg resolve -l --no-status |
|
46 | $ hg resolve -l --no-status | |
47 | file1 |
|
47 | file1 | |
48 | file2 |
|
48 | file2 | |
49 |
|
49 | |||
50 | resolving an unknown path should emit a warning, but not for -l |
|
50 | resolving an unknown path should emit a warning, but not for -l | |
51 |
|
51 | |||
52 | $ hg resolve -m does-not-exist |
|
52 | $ hg resolve -m does-not-exist | |
53 | arguments do not match paths that need resolving |
|
53 | arguments do not match paths that need resolving | |
54 | $ hg resolve -l does-not-exist |
|
54 | $ hg resolve -l does-not-exist | |
55 |
|
55 | |||
56 | resolve the failure |
|
56 | resolve the failure | |
57 |
|
57 | |||
58 | $ echo resolved > file1 |
|
58 | $ echo resolved > file1 | |
59 | $ hg resolve -m file1 |
|
59 | $ hg resolve -m file1 | |
60 |
|
60 | |||
61 | resolve -l should show resolved file as resolved |
|
61 | resolve -l should show resolved file as resolved | |
62 |
|
62 | |||
63 | $ hg resolve -l |
|
63 | $ hg resolve -l | |
64 | R file1 |
|
64 | R file1 | |
65 | U file2 |
|
65 | U file2 | |
66 |
|
66 | |||
67 | $ hg resolve -l -Tjson |
|
67 | $ hg resolve -l -Tjson | |
68 | [ |
|
68 | [ | |
69 | { |
|
69 | { | |
70 | "path": "file1", |
|
70 | "path": "file1", | |
71 | "status": "R" |
|
71 | "status": "R" | |
72 | }, |
|
72 | }, | |
73 | { |
|
73 | { | |
74 | "path": "file2", |
|
74 | "path": "file2", | |
75 | "status": "U" |
|
75 | "status": "U" | |
76 | } |
|
76 | } | |
77 | ] |
|
77 | ] | |
78 |
|
78 | |||
79 | resolve -m without paths should mark all resolved |
|
79 | resolve -m without paths should mark all resolved | |
80 |
|
80 | |||
81 | $ hg resolve -m |
|
81 | $ hg resolve -m | |
82 | (no more unresolved files) |
|
82 | (no more unresolved files) | |
83 | $ hg commit -m 'resolved' |
|
83 | $ hg commit -m 'resolved' | |
84 |
|
84 | |||
85 | resolve -l should be empty after commit |
|
85 | resolve -l should be empty after commit | |
86 |
|
86 | |||
87 | $ hg resolve -l |
|
87 | $ hg resolve -l | |
88 |
|
88 | |||
89 | $ hg resolve -l -Tjson |
|
89 | $ hg resolve -l -Tjson | |
90 | [ |
|
90 | [ | |
91 | ] |
|
91 | ] | |
92 |
|
92 | |||
93 | resolve --all should abort when no merge in progress |
|
93 | resolve --all should abort when no merge in progress | |
94 |
|
94 | |||
95 | $ hg resolve --all |
|
95 | $ hg resolve --all | |
96 | abort: resolve command not applicable when not merging |
|
96 | abort: resolve command not applicable when not merging | |
97 | [255] |
|
97 | [255] | |
98 |
|
98 | |||
99 | resolve -m should abort when no merge in progress |
|
99 | resolve -m should abort when no merge in progress | |
100 |
|
100 | |||
101 | $ hg resolve -m |
|
101 | $ hg resolve -m | |
102 | abort: resolve command not applicable when not merging |
|
102 | abort: resolve command not applicable when not merging | |
103 | [255] |
|
103 | [255] | |
104 |
|
104 | |||
105 | set up conflict-free merge |
|
105 | set up conflict-free merge | |
106 |
|
106 | |||
107 | $ hg up -qC 3 |
|
107 | $ hg up -qC 3 | |
108 | $ hg merge 1 |
|
108 | $ hg merge 1 | |
109 | 2 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
109 | 2 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
110 | (branch merge, don't forget to commit) |
|
110 | (branch merge, don't forget to commit) | |
111 |
|
111 | |||
112 | resolve --all should do nothing in merge without conflicts |
|
112 | resolve --all should do nothing in merge without conflicts | |
113 | $ hg resolve --all |
|
113 | $ hg resolve --all | |
114 | (no more unresolved files) |
|
114 | (no more unresolved files) | |
115 |
|
115 | |||
116 | resolve -m should do nothing in merge without conflicts |
|
116 | resolve -m should do nothing in merge without conflicts | |
117 |
|
117 | |||
118 | $ hg resolve -m |
|
118 | $ hg resolve -m | |
119 | (no more unresolved files) |
|
119 | (no more unresolved files) | |
120 |
|
120 | |||
121 | get back to conflicting state |
|
121 | get back to conflicting state | |
122 |
|
122 | |||
123 | $ hg up -qC 2 |
|
123 | $ hg up -qC 2 | |
124 | $ hg merge --tool=internal:fail 1 |
|
124 | $ hg merge --tool=internal:fail 1 | |
125 | 0 files updated, 0 files merged, 0 files removed, 2 files unresolved |
|
125 | 0 files updated, 0 files merged, 0 files removed, 2 files unresolved | |
126 | use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon |
|
126 | use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon | |
127 | [1] |
|
127 | [1] | |
128 |
|
128 | |||
129 | resolve without arguments should suggest --all |
|
129 | resolve without arguments should suggest --all | |
130 | $ hg resolve |
|
130 | $ hg resolve | |
131 | abort: no files or directories specified |
|
131 | abort: no files or directories specified | |
132 | (use --all to re-merge all unresolved files) |
|
132 | (use --all to re-merge all unresolved files) | |
133 | [255] |
|
133 | [255] | |
134 |
|
134 | |||
135 | resolve --all should re-merge all unresolved files |
|
135 | resolve --all should re-merge all unresolved files | |
136 |
$ hg resolve - |
|
136 | $ hg resolve --all | |
|
137 | merging file1 | |||
137 | warning: conflicts while merging file1! (edit, then use 'hg resolve --mark') |
|
138 | warning: conflicts while merging file1! (edit, then use 'hg resolve --mark') | |
|
139 | merging file2 | |||
138 | warning: conflicts while merging file2! (edit, then use 'hg resolve --mark') |
|
140 | warning: conflicts while merging file2! (edit, then use 'hg resolve --mark') | |
139 | [1] |
|
141 | [1] | |
140 | $ grep '<<<' file1 > /dev/null |
|
142 | $ grep '<<<' file1 > /dev/null | |
141 | $ grep '<<<' file2 > /dev/null |
|
143 | $ grep '<<<' file2 > /dev/null | |
142 |
|
144 | |||
143 | resolve <file> should re-merge file |
|
145 | resolve <file> should re-merge file | |
144 | $ echo resolved > file1 |
|
146 | $ echo resolved > file1 | |
145 | $ hg resolve -q file1 |
|
147 | $ hg resolve -q file1 | |
146 | warning: conflicts while merging file1! (edit, then use 'hg resolve --mark') |
|
148 | warning: conflicts while merging file1! (edit, then use 'hg resolve --mark') | |
147 | [1] |
|
149 | [1] | |
148 | $ grep '<<<' file1 > /dev/null |
|
150 | $ grep '<<<' file1 > /dev/null | |
149 |
|
151 | |||
150 | resolve <file> should do nothing if 'file' was marked resolved |
|
152 | resolve <file> should do nothing if 'file' was marked resolved | |
151 | $ echo resolved > file1 |
|
153 | $ echo resolved > file1 | |
152 | $ hg resolve -m file1 |
|
154 | $ hg resolve -m file1 | |
153 | $ hg resolve -q file1 |
|
155 | $ hg resolve -q file1 | |
154 | $ cat file1 |
|
156 | $ cat file1 | |
155 | resolved |
|
157 | resolved | |
156 |
|
158 | |||
157 | test crashed merge with empty mergestate |
|
159 | test crashed merge with empty mergestate | |
158 |
|
160 | |||
159 | $ hg up -qC 1 |
|
161 | $ hg up -qC 1 | |
160 | $ mkdir .hg/merge |
|
162 | $ mkdir .hg/merge | |
161 | $ touch .hg/merge/state |
|
163 | $ touch .hg/merge/state | |
162 |
|
164 | |||
163 | resolve -l should be empty |
|
165 | resolve -l should be empty | |
164 |
|
166 | |||
165 | $ hg resolve -l |
|
167 | $ hg resolve -l | |
166 |
|
168 | |||
167 | $ cd .. |
|
169 | $ cd .. |
General Comments 0
You need to be logged in to leave comments.
Login now