Mercurial > evolve
annotate tests/test-userguide.t @ 2897:bd04a614b866
topic: move a status message in the right scope
The finally get runs on failure so we should not advertise rewrite topic in the
case. In addition the 'rewrote' variable can be undefined in the finally.
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Fri, 01 Sep 2017 17:37:47 +0200 |
parents | 66796d7b5415 |
children | 06844693bb21 |
rev | line source |
---|---|
978 | 1 ensure that all the scenarios in the user guide work as documented |
2 | |
3 basic repo | |
4 $ hg init t | |
5 $ cd t | |
6 $ touch file1.c file2.c | |
7 $ hg -q commit -A -m init | |
8 | |
9 example 1: commit creates a changeset in draft phase | |
10 (this is nothing to do with evolve, but it's mentioned in the user guide) | |
11 $ echo 'feature Y' >> file1.c | |
12 $ hg commit -u alice -d '0 0' -m 'implement feature X' | |
13 $ hg phase -r . | |
14 1: draft | |
15 $ hg identify -in | |
16 6e725fd2be6f 1 | |
17 | |
18 example 2: unsafe amend with plain vanilla Mercurial: the original | |
19 commit is stripped | |
20 $ hg commit --amend -u alice -d '1 0' -m 'implement feature Y' | |
2723
c8ba73642143
test: handle output change in 20f533a92eda
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
2290
diff
changeset
|
21 saved backup bundle to $TESTTMP/t/.hg/strip-backup/6e725fd2be6f-42cc74d4-amend.hg (glob) |
978 | 22 $ hg log -r 23fe4ac6d3f1 |
23 abort: unknown revision '23fe4ac6d3f1'! | |
24 [255] | |
25 $ hg identify -in | |
26 fe0ecd3bd2a4 1 | |
27 | |
28 enable evolve for safe history modification | |
29 $ cat >> $HGRCPATH <<EOF | |
30 > [alias] | |
31 > shortlog = log --template '{rev}:{node|short} {phase} {desc|firstline}\n' | |
32 > [extensions] | |
33 > rebase = | |
34 > EOF | |
1806
9f42f819267b
evolve: move the extensions to 'hgext3rd'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
1782
diff
changeset
|
35 $ echo "evolve=$(echo $(dirname $TESTDIR))/hgext3rd/evolve/" >> $HGRCPATH |
978 | 36 |
37 example 3: safe amend with "hg commit --amend" (figure 2) | |
38 $ echo 'tweak feature Y' >> file1.c | |
39 $ hg commit --amend -u alice -d '2 0' -m 'implement feature Y' | |
40 $ hg shortlog -q -r fe0ecd3bd2a4 | |
1133
8b3b0549a4b6
test: adapt to new hidden-changeset message
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
1110
diff
changeset
|
41 abort: hidden revision 'fe0ecd3bd2a4'! |
2290
a36a8c6a09ac
ui: change the hidden revision error message
Boris Feld <boris.feld@octobus.net>
parents:
1806
diff
changeset
|
42 (use --hidden to access hidden revisions; successor: 934359450037) |
978 | 43 [255] |
44 $ hg --hidden shortlog -G | |
45 @ 3:934359450037 draft implement feature Y | |
46 | | |
47 | x 2:6c5f78d5d467 draft temporary amend commit for fe0ecd3bd2a4 | |
48 | | | |
49 | x 1:fe0ecd3bd2a4 draft implement feature Y | |
50 |/ | |
51 o 0:08c4b6f4efc8 draft init | |
52 | |
53 example 3 redux: repeat safe amend, this time with "hg amend" | |
54 $ hg rollback -q | |
55 $ hg amend -u alice -d '2 0' -m 'implement feature Y' | |
56 $ hg --hidden shortlog -G | |
57 @ 3:934359450037 draft implement feature Y | |
58 | | |
59 | x 2:6c5f78d5d467 draft temporary amend commit for fe0ecd3bd2a4 | |
60 | | | |
61 | x 1:fe0ecd3bd2a4 draft implement feature Y | |
62 |/ | |
63 o 0:08c4b6f4efc8 draft init | |
64 | |
65 example 4: prune at head (figure 3) | |
66 $ echo 'debug hack' >> file1.c | |
67 $ hg commit -m 'debug hack' | |
68 $ hg prune . | |
69 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
70 working directory now at 934359450037 | |
1239
8a06b32061ce
evolve: apply prune update before creating obsolescence markers
Laurent Charignon <lcharignon@fb.com>
parents:
1195
diff
changeset
|
71 1 changesets pruned |
978 | 72 $ hg parents --template '{rev}:{node|short} {desc|firstline}\n' |
73 3:934359450037 implement feature Y | |
74 $ hg --hidden shortlog -G -r 3: | |
75 x 4:a3e0ef24aaf0 draft debug hack | |
76 | | |
77 @ 3:934359450037 draft implement feature Y | |
78 | | |
1641
27445da063b7
tests: adapt output to the new graphlog style
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
1422
diff
changeset
|
79 ~ |
978 | 80 |
81 example 5: uncommit files at head (figure 4) | |
82 $ echo 'relevant' >> file1.c | |
83 $ echo 'irrelevant' >> file2.c | |
84 $ hg commit -u dan -d '10 0' -m 'fix bug 234' | |
85 $ hg uncommit file2.c | |
86 $ hg status | |
87 M file2.c | |
88 $ hg --hidden shortlog -G -r 'descendants(3) - 4' | |
89 @ 6:c8defeecf7a4 draft fix bug 234 | |
90 | | |
91 | x 5:da4331967f5f draft fix bug 234 | |
92 |/ | |
93 o 3:934359450037 draft implement feature Y | |
94 | | |
1641
27445da063b7
tests: adapt output to the new graphlog style
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
1422
diff
changeset
|
95 ~ |
978 | 96 $ hg parents --template '{rev}:{node|short} {desc|firstline}\n{files}\n' |
97 6:c8defeecf7a4 fix bug 234 | |
98 file1.c | |
99 $ hg revert --no-backup file2.c | |
100 | |
101 example 6: fold multiple changesets together into one (figure 5) | |
102 $ echo step1 >> file1.c | |
103 $ hg commit -m 'step 1' | |
104 $ echo step2 >> file1.c | |
105 $ hg commit -m 'step 2' | |
106 $ echo step3 >> file2.c | |
107 $ hg commit -m 'step 3' | |
108 $ hg log --template '{rev}:{node|short} {desc|firstline}\n' -r 7:: | |
109 7:05e61aab8294 step 1 | |
110 8:be6d5bc8e4cc step 2 | |
111 9:35f432d9f7c1 step 3 | |
1782
a046e78c3290
fold: require --from flag for folding revisions to working copy
Martin von Zweigbergk <martinvonz@google.com>
parents:
1641
diff
changeset
|
112 $ hg fold -d '0 0' -m 'fix bug 64' --from -r 7:: |
978 | 113 3 changesets folded |
114 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
115 $ hg --hidden shortlog -G -r 6:: | |
116 @ 10:171c6a79a27b draft fix bug 64 | |
117 | | |
118 | x 9:35f432d9f7c1 draft step 3 | |
119 | | | |
120 | x 8:be6d5bc8e4cc draft step 2 | |
121 | | | |
122 | x 7:05e61aab8294 draft step 1 | |
123 |/ | |
124 o 6:c8defeecf7a4 draft fix bug 234 | |
125 | | |
1641
27445da063b7
tests: adapt output to the new graphlog style
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
1422
diff
changeset
|
126 ~ |
978 | 127 $ hg --hidden log -q -r 'successors(7) | successors(8) | successors(9)' |
128 10:171c6a79a27b | |
129 $ hg --hidden log -q -r 'precursors(10)' | |
130 7:05e61aab8294 | |
131 8:be6d5bc8e4cc | |
132 9:35f432d9f7c1 | |
133 $ hg diff -c 10 -U 0 | |
134 diff -r c8defeecf7a4 -r 171c6a79a27b file1.c | |
135 --- a/file1.c Thu Jan 01 00:00:10 1970 +0000 | |
136 +++ b/file1.c Thu Jan 01 00:00:00 1970 +0000 | |
137 @@ -3,0 +4,2 @@ | |
138 +step1 | |
139 +step2 | |
140 diff -r c8defeecf7a4 -r 171c6a79a27b file2.c | |
141 --- a/file2.c Thu Jan 01 00:00:10 1970 +0000 | |
142 +++ b/file2.c Thu Jan 01 00:00:00 1970 +0000 | |
143 @@ -0,0 +1,1 @@ | |
144 +step3 | |
145 | |
146 setup for example 7: amend an older changeset | |
147 $ echo 'fix fix oops fix' > file2.c | |
148 $ hg commit -u bob -d '3 0' -m 'fix bug 17' | |
149 $ echo 'cleanup' >> file1.c | |
150 $ hg commit -u bob -d '4 0' -m 'cleanup' | |
151 $ echo 'new feature' >> file1.c | |
152 $ hg commit -u bob -d '5 0' -m 'feature 23' | |
153 $ hg --hidden shortlog -G -r 10:: | |
154 @ 13:dadcbba2d606 draft feature 23 | |
155 | | |
156 o 12:debd46bb29dc draft cleanup | |
157 | | |
158 o 11:3e1cb8f70c02 draft fix bug 17 | |
159 | | |
160 o 10:171c6a79a27b draft fix bug 64 | |
161 | | |
1641
27445da063b7
tests: adapt output to the new graphlog style
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
1422
diff
changeset
|
162 ~ |
978 | 163 |
164 example 7: amend an older changeset (figures 6, 7) | |
165 $ hg update -q 11 | |
166 $ echo 'fix fix fix fix' > file2.c | |
167 $ hg amend -u bob -d '6 0' | |
2854
66796d7b5415
warning: rename unstable warning message
Boris Feld <boris.feld@octobus.net>
parents:
2842
diff
changeset
|
168 2 new orphan changesets |
978 | 169 $ hg shortlog -r 'obsolete()' |
170 11:3e1cb8f70c02 draft fix bug 17 | |
2842
2b8b960a04ee
revset: unstable() is deprecated
Boris Feld <boris.feld@octobus.net>
parents:
2723
diff
changeset
|
171 $ hg shortlog -r "orphan()" |
978 | 172 12:debd46bb29dc draft cleanup |
173 13:dadcbba2d606 draft feature 23 | |
174 $ hg --hidden shortlog -G -r 10:: | |
175 @ 15:395cbeda3a06 draft fix bug 17 | |
176 | | |
177 | x 14:f7fab707e247 draft temporary amend commit for 3e1cb8f70c02 | |
178 | | | |
179 | | o 13:dadcbba2d606 draft feature 23 | |
180 | | | | |
181 | | o 12:debd46bb29dc draft cleanup | |
182 | |/ | |
183 | x 11:3e1cb8f70c02 draft fix bug 17 | |
184 |/ | |
185 o 10:171c6a79a27b draft fix bug 64 | |
186 | | |
1641
27445da063b7
tests: adapt output to the new graphlog style
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
1422
diff
changeset
|
187 ~ |
978 | 188 $ hg evolve -q --all |
189 $ hg shortlog -G -r 10:: | |
190 @ 17:91b4b0f8b5c5 draft feature 23 | |
191 | | |
192 o 16:fe8858bd9bc2 draft cleanup | |
193 | | |
194 o 15:395cbeda3a06 draft fix bug 17 | |
195 | | |
196 o 10:171c6a79a27b draft fix bug 64 | |
197 | | |
1641
27445da063b7
tests: adapt output to the new graphlog style
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
1422
diff
changeset
|
198 ~ |
978 | 199 |
200 setup for example 8: prune an older changeset (figure 8) | |
201 $ echo 'useful' >> file1.c | |
202 $ hg commit -u carl -d '7 0' -m 'useful work' | |
203 $ echo 'debug' >> file2.c | |
204 $ hg commit -u carl -d '8 0' -m 'debug hack' | |
205 $ echo 'more useful' >> file1.c | |
206 $ hg commit -u carl -d '9 0' -m 'more work' | |
207 $ hg shortlog -G -r 17:: | |
208 @ 20:ea8fafca914b draft more work | |
209 | | |
210 o 19:b23d06b457a8 draft debug hack | |
211 | | |
212 o 18:1f33e68b18b9 draft useful work | |
213 | | |
214 o 17:91b4b0f8b5c5 draft feature 23 | |
215 | | |
1641
27445da063b7
tests: adapt output to the new graphlog style
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
1422
diff
changeset
|
216 ~ |
978 | 217 |
218 example 8: prune an older changeset (figures 8, 9) | |
219 $ hg prune 19 | |
220 1 changesets pruned | |
2854
66796d7b5415
warning: rename unstable warning message
Boris Feld <boris.feld@octobus.net>
parents:
2842
diff
changeset
|
221 1 new orphan changesets |
978 | 222 $ hg --hidden shortlog -G -r 18:: |
223 @ 20:ea8fafca914b draft more work | |
224 | | |
225 x 19:b23d06b457a8 draft debug hack | |
226 | | |
227 o 18:1f33e68b18b9 draft useful work | |
228 | | |
1641
27445da063b7
tests: adapt output to the new graphlog style
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
1422
diff
changeset
|
229 ~ |
1422
c868a69c29c5
evolve: distinct between '--all' and '--all --any'
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
1239
diff
changeset
|
230 $ hg evolve -q --all --any |
978 | 231 $ hg --hidden shortlog -G -r 18:: |
232 @ 21:4393e5877437 draft more work | |
233 | | |
234 | x 20:ea8fafca914b draft more work | |
235 | | | |
236 | x 19:b23d06b457a8 draft debug hack | |
237 |/ | |
238 o 18:1f33e68b18b9 draft useful work | |
239 | | |
1641
27445da063b7
tests: adapt output to the new graphlog style
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
1422
diff
changeset
|
240 ~ |
978 | 241 |
242 example 9: uncommit files from an older changeset (discard changes) | |
243 (figure 10) | |
244 $ echo 'this fixes bug 53' >> file1.c | |
245 $ echo 'debug hack' >> file2.c | |
246 $ hg commit -u dan -d '11 0' -m 'fix bug 53' | |
247 $ echo 'and this handles bug 67' >> file1.c | |
248 $ hg commit -u dan -d '12 0' -m 'fix bug 67' | |
249 $ hg update 22 | |
250 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
251 $ hg shortlog -G -r 21:: | |
252 o 23:4db2428c8ae3 draft fix bug 67 | |
253 | | |
254 @ 22:f84357446753 draft fix bug 53 | |
255 | | |
256 o 21:4393e5877437 draft more work | |
257 | | |
1641
27445da063b7
tests: adapt output to the new graphlog style
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
1422
diff
changeset
|
258 ~ |
978 | 259 $ hg uncommit file2.c |
2854
66796d7b5415
warning: rename unstable warning message
Boris Feld <boris.feld@octobus.net>
parents:
2842
diff
changeset
|
260 1 new orphan changesets |
978 | 261 $ hg status |
262 M file2.c | |
263 $ hg revert file2.c | |
1422
c868a69c29c5
evolve: distinct between '--all' and '--all --any'
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
1239
diff
changeset
|
264 $ hg evolve --all --any |
978 | 265 move:[23] fix bug 67 |
266 atop:[24] fix bug 53 | |
1099
bac4e0bc9f6a
evolve: write a status message when the working directory changes
David Soria Parra <davidsp@fb.com>
parents:
978
diff
changeset
|
267 working directory is now at 0d972d6888e6 |
978 | 268 $ hg --hidden shortlog -G -r 21:: |
269 @ 25:0d972d6888e6 draft fix bug 67 | |
270 | | |
271 o 24:71bb83d674c5 draft fix bug 53 | |
272 | | |
273 | x 23:4db2428c8ae3 draft fix bug 67 | |
274 | | | |
275 | x 22:f84357446753 draft fix bug 53 | |
276 |/ | |
277 o 21:4393e5877437 draft more work | |
278 | | |
1641
27445da063b7
tests: adapt output to the new graphlog style
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
1422
diff
changeset
|
279 ~ |
978 | 280 $ rm file2.c.orig |
281 | |
282 example 10: uncommit files from an older changeset (keep changes) | |
283 (figures 11, 12) | |
284 $ echo 'fix a bug' >> file1.c | |
285 $ echo 'useful but unrelated' >> file2.c | |
286 $ hg commit -u dan -d '11 0' -m 'fix a bug' | |
287 $ echo 'new feature' >> file1.c | |
288 $ hg commit -u dan -d '12 0' -m 'new feature' | |
289 $ hg update 26 | |
290 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
291 $ hg --hidden shortlog -G -r 25:: | |
292 o 27:fbb3c6d50427 draft new feature | |
293 | | |
294 @ 26:5b31a1239ab9 draft fix a bug | |
295 | | |
296 o 25:0d972d6888e6 draft fix bug 67 | |
297 | | |
1641
27445da063b7
tests: adapt output to the new graphlog style
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
1422
diff
changeset
|
298 ~ |
978 | 299 $ hg uncommit file2.c |
2854
66796d7b5415
warning: rename unstable warning message
Boris Feld <boris.feld@octobus.net>
parents:
2842
diff
changeset
|
300 1 new orphan changesets |
978 | 301 $ hg status |
302 M file2.c | |
303 $ hg commit -m 'useful tweak' | |
304 $ hg --hidden shortlog -G -r 25:: | |
305 @ 29:51e0d8c0a922 draft useful tweak | |
306 | | |
307 o 28:2594e98553a9 draft fix a bug | |
308 | | |
309 | o 27:fbb3c6d50427 draft new feature | |
310 | | | |
311 | x 26:5b31a1239ab9 draft fix a bug | |
312 |/ | |
313 o 25:0d972d6888e6 draft fix bug 67 | |
314 | | |
1641
27445da063b7
tests: adapt output to the new graphlog style
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
1422
diff
changeset
|
315 ~ |
1422
c868a69c29c5
evolve: distinct between '--all' and '--all --any'
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
1239
diff
changeset
|
316 $ hg evolve --all --any |
978 | 317 move:[27] new feature |
318 atop:[28] fix a bug | |
1099
bac4e0bc9f6a
evolve: write a status message when the working directory changes
David Soria Parra <davidsp@fb.com>
parents:
978
diff
changeset
|
319 working directory is now at 166c1c368ab6 |
978 | 320 $ hg --hidden shortlog -G -r 25:: |
321 @ 30:166c1c368ab6 draft new feature | |
322 | | |
323 | o 29:51e0d8c0a922 draft useful tweak | |
324 |/ | |
325 o 28:2594e98553a9 draft fix a bug | |
326 | | |
327 | x 27:fbb3c6d50427 draft new feature | |
328 | | | |
329 | x 26:5b31a1239ab9 draft fix a bug | |
330 |/ | |
331 o 25:0d972d6888e6 draft fix bug 67 | |
332 | | |
1641
27445da063b7
tests: adapt output to the new graphlog style
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
1422
diff
changeset
|
333 ~ |