Mercurial > evolve
annotate tests/test-userguide.t @ 2857:0c286d054bcd
warning: use 'divergent', not 'contentdivergent' on old Mercurial
This was just an oversight in f6517779a7c4 (warning: rename warning
message, 2017-08-24).
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Thu, 24 Aug 2017 10:48:38 -0700 |
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 ~ |