|
1 Test for command `hg unamend` which lives in uncommit extension |
|
2 =============================================================== |
|
3 |
|
4 $ cat >> $HGRCPATH << EOF |
|
5 > [alias] |
|
6 > glog = log -G -T '{rev}:{node|short} {desc}' |
|
7 > [experimental] |
|
8 > evolution = createmarkers, allowunstable |
|
9 > [extensions] |
|
10 > rebase = |
|
11 > amend = |
|
12 > uncommit = |
|
13 > EOF |
|
14 |
|
15 Repo Setup |
|
16 |
|
17 $ hg init repo |
|
18 $ cd repo |
|
19 $ for ch in {a..h}; do touch $ch; echo "foo" >> $ch; hg ci -Aqm "Added "$ch; done |
|
20 |
|
21 $ hg glog |
|
22 @ 7:ec2426147f0e Added h |
|
23 | |
|
24 o 6:87d6d6676308 Added g |
|
25 | |
|
26 o 5:825660c69f0c Added f |
|
27 | |
|
28 o 4:aa98ab95a928 Added e |
|
29 | |
|
30 o 3:62615734edd5 Added d |
|
31 | |
|
32 o 2:28ad74487de9 Added c |
|
33 | |
|
34 o 1:29becc82797a Added b |
|
35 | |
|
36 o 0:18d04c59bb5d Added a |
|
37 |
|
38 Trying to unamend when there was no amend done |
|
39 |
|
40 $ hg unamend |
|
41 abort: changeset must have one predecessor, found 0 predecessors |
|
42 [255] |
|
43 |
|
44 Unamend on clean wdir and tip |
|
45 |
|
46 $ echo "bar" >> h |
|
47 $ hg amend |
|
48 |
|
49 $ hg exp |
|
50 # HG changeset patch |
|
51 # User test |
|
52 # Date 0 0 |
|
53 # Thu Jan 01 00:00:00 1970 +0000 |
|
54 # Node ID c9fa1a715c1b7661c0fafb362a9f30bd75878d7d |
|
55 # Parent 87d6d66763085b629e6d7ed56778c79827273022 |
|
56 Added h |
|
57 |
|
58 diff -r 87d6d6676308 -r c9fa1a715c1b h |
|
59 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 |
|
60 +++ b/h Thu Jan 01 00:00:00 1970 +0000 |
|
61 @@ -0,0 +1,2 @@ |
|
62 +foo |
|
63 +bar |
|
64 |
|
65 $ hg glog --hidden |
|
66 @ 8:c9fa1a715c1b Added h |
|
67 | |
|
68 | x 7:ec2426147f0e Added h |
|
69 |/ |
|
70 o 6:87d6d6676308 Added g |
|
71 | |
|
72 o 5:825660c69f0c Added f |
|
73 | |
|
74 o 4:aa98ab95a928 Added e |
|
75 | |
|
76 o 3:62615734edd5 Added d |
|
77 | |
|
78 o 2:28ad74487de9 Added c |
|
79 | |
|
80 o 1:29becc82797a Added b |
|
81 | |
|
82 o 0:18d04c59bb5d Added a |
|
83 |
|
84 $ hg unamend |
|
85 $ hg glog --hidden |
|
86 @ 9:8da14a1fd653 Added h |
|
87 | |
|
88 | x 8:c9fa1a715c1b Added h |
|
89 |/ |
|
90 | x 7:ec2426147f0e Added h |
|
91 |/ |
|
92 o 6:87d6d6676308 Added g |
|
93 | |
|
94 o 5:825660c69f0c Added f |
|
95 | |
|
96 o 4:aa98ab95a928 Added e |
|
97 | |
|
98 o 3:62615734edd5 Added d |
|
99 | |
|
100 o 2:28ad74487de9 Added c |
|
101 | |
|
102 o 1:29becc82797a Added b |
|
103 | |
|
104 o 0:18d04c59bb5d Added a |
|
105 |
|
106 $ hg diff |
|
107 diff -r 8da14a1fd653 h |
|
108 --- a/h Thu Jan 01 00:00:00 1970 +0000 |
|
109 +++ b/h Thu Jan 01 00:00:00 1970 +0000 |
|
110 @@ -1,1 +1,2 @@ |
|
111 foo |
|
112 +bar |
|
113 |
|
114 $ hg exp |
|
115 # HG changeset patch |
|
116 # User test |
|
117 # Date 0 0 |
|
118 # Thu Jan 01 00:00:00 1970 +0000 |
|
119 # Node ID 8da14a1fd653c3f07fdad5760511c9e12652a306 |
|
120 # Parent 87d6d66763085b629e6d7ed56778c79827273022 |
|
121 Added h |
|
122 |
|
123 diff -r 87d6d6676308 -r 8da14a1fd653 h |
|
124 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 |
|
125 +++ b/h Thu Jan 01 00:00:00 1970 +0000 |
|
126 @@ -0,0 +1,1 @@ |
|
127 +foo |
|
128 |
|
129 $ hg status |
|
130 M h |
|
131 |
|
132 $ hg log -r . -T '{extras % "{extra}\n"}' --config alias.log=log |
|
133 branch=default |
|
134 unamend_source=\xc9\xfa\x1aq\\\x1bva\xc0\xfa\xfb6*\x9f0\xbdu\x87\x8d} |
|
135 |
|
136 Using unamend to undo an unamed (intentional) |
|
137 |
|
138 $ hg unamend |
|
139 $ hg exp |
|
140 # HG changeset patch |
|
141 # User test |
|
142 # Date 0 0 |
|
143 # Thu Jan 01 00:00:00 1970 +0000 |
|
144 # Node ID 1c09887216571a9755fc9d2e7f0e41c2b49e341b |
|
145 # Parent 87d6d66763085b629e6d7ed56778c79827273022 |
|
146 Added h |
|
147 |
|
148 diff -r 87d6d6676308 -r 1c0988721657 h |
|
149 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 |
|
150 +++ b/h Thu Jan 01 00:00:00 1970 +0000 |
|
151 @@ -0,0 +1,2 @@ |
|
152 +foo |
|
153 +bar |
|
154 $ hg diff |
|
155 |
|
156 Unamend on a dirty working directory |
|
157 |
|
158 $ echo "bar" >> a |
|
159 $ hg amend |
|
160 $ echo "foobar" >> a |
|
161 $ echo "bar" >> b |
|
162 $ hg status |
|
163 M a |
|
164 M b |
|
165 |
|
166 $ hg unamend |
|
167 |
|
168 $ hg status |
|
169 M a |
|
170 M b |
|
171 |
|
172 $ hg diff |
|
173 diff -r 956548224719 a |
|
174 --- a/a Thu Jan 01 00:00:00 1970 +0000 |
|
175 +++ b/a Thu Jan 01 00:00:00 1970 +0000 |
|
176 @@ -1,1 +1,3 @@ |
|
177 foo |
|
178 +bar |
|
179 +foobar |
|
180 diff -r 956548224719 b |
|
181 --- a/b Thu Jan 01 00:00:00 1970 +0000 |
|
182 +++ b/b Thu Jan 01 00:00:00 1970 +0000 |
|
183 @@ -1,1 +1,2 @@ |
|
184 foo |
|
185 +bar |
|
186 |
|
187 Unamending an added file |
|
188 |
|
189 $ hg ci -m "Added things to a and b" |
|
190 $ echo foo > bar |
|
191 $ hg add bar |
|
192 $ hg amend |
|
193 |
|
194 $ hg unamend |
|
195 $ hg status |
|
196 A bar |
|
197 |
|
198 $ hg revert --all |
|
199 forgetting bar |
|
200 |
|
201 Unamending a removed file |
|
202 |
|
203 $ hg remove a |
|
204 $ hg amend |
|
205 |
|
206 $ hg unamend |
|
207 $ hg status |
|
208 R a |
|
209 ? bar |
|
210 |
|
211 $ hg revert --all |
|
212 undeleting a |
|
213 |
|
214 Unamending an added file with dirty wdir status |
|
215 |
|
216 $ hg add bar |
|
217 $ hg amend |
|
218 $ echo bar >> bar |
|
219 $ hg status |
|
220 M bar |
|
221 |
|
222 $ hg unamend |
|
223 $ hg status |
|
224 A bar |
|
225 $ hg diff |
|
226 diff -r ff917aa01c86 bar |
|
227 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 |
|
228 +++ b/bar Thu Jan 01 00:00:00 1970 +0000 |
|
229 @@ -0,0 +1,2 @@ |
|
230 +foo |
|
231 +bar |
|
232 |
|
233 $ hg revert --all |
|
234 forgetting bar |
|
235 |
|
236 Unamending in middle of a stack |
|
237 |
|
238 $ hg glog |
|
239 @ 19:ff917aa01c86 Added things to a and b |
|
240 | |
|
241 o 12:956548224719 Added h |
|
242 | |
|
243 o 6:87d6d6676308 Added g |
|
244 | |
|
245 o 5:825660c69f0c Added f |
|
246 | |
|
247 o 4:aa98ab95a928 Added e |
|
248 | |
|
249 o 3:62615734edd5 Added d |
|
250 | |
|
251 o 2:28ad74487de9 Added c |
|
252 | |
|
253 o 1:29becc82797a Added b |
|
254 | |
|
255 o 0:18d04c59bb5d Added a |
|
256 |
|
257 $ hg up 5 |
|
258 2 files updated, 0 files merged, 2 files removed, 0 files unresolved |
|
259 $ echo bar >> f |
|
260 $ hg amend |
|
261 $ hg rebase -s 6 -d . -q |
|
262 |
|
263 $ hg glog |
|
264 o 23:2b41b42e192a Added things to a and b |
|
265 | |
|
266 o 22:1860df151f01 Added h |
|
267 | |
|
268 o 21:49635b68477e Added g |
|
269 | |
|
270 @ 20:93f0e8ffab32 Added f |
|
271 | |
|
272 o 4:aa98ab95a928 Added e |
|
273 | |
|
274 o 3:62615734edd5 Added d |
|
275 | |
|
276 o 2:28ad74487de9 Added c |
|
277 | |
|
278 o 1:29becc82797a Added b |
|
279 | |
|
280 o 0:18d04c59bb5d Added a |
|
281 |
|
282 |
|
283 $ hg unamend |
|
284 abort: cannot unamend a changeset with children |
|
285 [255] |
|
286 |
|
287 Trying to unamend a public changeset |
|
288 |
|
289 $ hg up |
|
290 4 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
291 $ hg phase -r . -p |
|
292 $ hg unamend |
|
293 abort: cannot unamend public changesets |
|
294 [255] |
|
295 |
|
296 Testing whether unamend retains copies or not |
|
297 |
|
298 $ hg status |
|
299 ? bar |
|
300 |
|
301 $ hg mv a foo |
|
302 |
|
303 $ hg ci -m "Moved a to foo" |
|
304 $ hg exp --git |
|
305 # HG changeset patch |
|
306 # User test |
|
307 # Date 0 0 |
|
308 # Thu Jan 01 00:00:00 1970 +0000 |
|
309 # Node ID b087c66cada118d6c5487d3d7cb29cac239bd98a |
|
310 # Parent 2b41b42e192adc425b106643c3fc89170d6b8add |
|
311 Moved a to foo |
|
312 |
|
313 diff --git a/a b/foo |
|
314 rename from a |
|
315 rename to foo |
|
316 |
|
317 $ hg mv b foobar |
|
318 $ hg diff --git |
|
319 diff --git a/b b/foobar |
|
320 rename from b |
|
321 rename to foobar |
|
322 $ hg amend |
|
323 |
|
324 $ hg exp --git |
|
325 # HG changeset patch |
|
326 # User test |
|
327 # Date 0 0 |
|
328 # Thu Jan 01 00:00:00 1970 +0000 |
|
329 # Node ID 9fa06fb09a83a86ec7368d15004dbc52ac1a5d2e |
|
330 # Parent 2b41b42e192adc425b106643c3fc89170d6b8add |
|
331 Moved a to foo |
|
332 |
|
333 diff --git a/a b/foo |
|
334 rename from a |
|
335 rename to foo |
|
336 diff --git a/b b/foobar |
|
337 rename from b |
|
338 rename to foobar |
|
339 |
|
340 $ hg mv c wat |
|
341 $ hg unamend |
|
342 |
|
343 Retained copies in new prdecessor commit |
|
344 |
|
345 $ hg exp --git |
|
346 # HG changeset patch |
|
347 # User test |
|
348 # Date 0 0 |
|
349 # Thu Jan 01 00:00:00 1970 +0000 |
|
350 # Node ID 4cf9987c9b941f615930e7c46307b4dbf35697cf |
|
351 # Parent 2b41b42e192adc425b106643c3fc89170d6b8add |
|
352 Moved a to foo |
|
353 |
|
354 diff --git a/a b/foo |
|
355 rename from a |
|
356 rename to foo |
|
357 |
|
358 Retained copies in working directoy |
|
359 |
|
360 $ hg diff --git |
|
361 diff --git a/b b/foobar |
|
362 rename from b |
|
363 rename to foobar |
|
364 diff --git a/c b/wat |
|
365 rename from c |
|
366 rename to wat |