57 # f, fold = use commit, but fold into previous commit (combines N and N-1) |
57 # f, fold = use commit, but fold into previous commit (combines N and N-1) |
58 # d, drop = remove commit from history |
58 # d, drop = remove commit from history |
59 # m, mess = edit message without changing commit content |
59 # m, mess = edit message without changing commit content |
60 # |
60 # |
61 0 files updated, 0 files merged, 0 files removed, 0 files unresolved |
61 0 files updated, 0 files merged, 0 files removed, 0 files unresolved |
62 $ cat > commands.txt <<EOF |
62 $ hg histedit 1 --commands - --verbose <<EOF | grep histedit |
63 > pick 177f92b77385 2 c |
63 > pick 177f92b77385 2 c |
64 > drop d2ae7f538514 1 b |
64 > drop d2ae7f538514 1 b |
65 > pick 055a42cdd887 3 d |
65 > pick 055a42cdd887 3 d |
66 > fold e860deea161a 4 e |
66 > fold e860deea161a 4 e |
67 > pick 652413bf663e 5 f |
67 > pick 652413bf663e 5 f |
68 > EOF |
68 > EOF |
69 $ hg histedit 1 --commands commands.txt --verbose | grep histedit |
|
70 saved backup bundle to $TESTTMP/base/.hg/strip-backup/96e494a2d553-backup.hg (glob) |
69 saved backup bundle to $TESTTMP/base/.hg/strip-backup/96e494a2d553-backup.hg (glob) |
71 $ hg log --graph --hidden |
70 $ hg log --graph --hidden |
72 @ 8:cacdfd884a93 f |
71 @ 8:cacdfd884a93 f |
73 | |
72 | |
74 o 7:59d9f330561f d |
73 o 7:59d9f330561f d |
98 Ensure hidden revision does not prevent histedit |
97 Ensure hidden revision does not prevent histedit |
99 ------------------------------------------------- |
98 ------------------------------------------------- |
100 |
99 |
101 create an hidden revision |
100 create an hidden revision |
102 |
101 |
103 $ cat > commands.txt <<EOF |
102 $ hg histedit 6 --commands - << EOF |
104 > pick b346ab9a313d 6 c |
103 > pick b346ab9a313d 6 c |
105 > drop 59d9f330561f 7 d |
104 > drop 59d9f330561f 7 d |
106 > pick cacdfd884a93 8 f |
105 > pick cacdfd884a93 8 f |
107 > EOF |
106 > EOF |
108 $ hg histedit 6 --commands commands.txt |
|
109 0 files updated, 0 files merged, 3 files removed, 0 files unresolved |
107 0 files updated, 0 files merged, 3 files removed, 0 files unresolved |
110 0 files updated, 0 files merged, 0 files removed, 0 files unresolved |
108 0 files updated, 0 files merged, 0 files removed, 0 files unresolved |
111 $ hg log --graph |
109 $ hg log --graph |
112 @ 9:c13eb81022ca f |
110 @ 9:c13eb81022ca f |
113 | |
111 | |
115 | |
113 | |
116 o 0:cb9a9f314b8b a |
114 o 0:cb9a9f314b8b a |
117 |
115 |
118 check hidden revision are ignored (6 have hidden children 7 and 8) |
116 check hidden revision are ignored (6 have hidden children 7 and 8) |
119 |
117 |
120 $ cat > commands.txt <<EOF |
118 $ hg histedit 6 --commands - << EOF |
121 > pick b346ab9a313d 6 c |
119 > pick b346ab9a313d 6 c |
122 > pick c13eb81022ca 8 f |
120 > pick c13eb81022ca 8 f |
123 > EOF |
121 > EOF |
124 $ hg histedit 6 --commands commands.txt |
|
125 0 files updated, 0 files merged, 0 files removed, 0 files unresolved |
122 0 files updated, 0 files merged, 0 files removed, 0 files unresolved |
126 |
123 |
127 |
124 |
128 |
125 |
129 Test that rewriting leaving instability behind is allowed |
126 Test that rewriting leaving instability behind is allowed |
131 |
128 |
132 $ hg up '.^' |
129 $ hg up '.^' |
133 0 files updated, 0 files merged, 1 files removed, 0 files unresolved |
130 0 files updated, 0 files merged, 1 files removed, 0 files unresolved |
134 $ hg log -r 'children(.)' |
131 $ hg log -r 'children(.)' |
135 9:c13eb81022ca f (no-eol) |
132 9:c13eb81022ca f (no-eol) |
136 $ cat > commands.txt <<EOF |
133 $ hg histedit -r '.' --commands - <<EOF |
137 > edit b346ab9a313d 6 c |
134 > edit b346ab9a313d 6 c |
138 > EOF |
135 > EOF |
139 $ hg histedit -r '.' --commands commands.txt |
|
140 0 files updated, 0 files merged, 1 files removed, 0 files unresolved |
136 0 files updated, 0 files merged, 1 files removed, 0 files unresolved |
141 adding c |
137 adding c |
142 abort: Make changes as needed, you may commit or record as needed now. |
138 Make changes as needed, you may commit or record as needed now. |
143 When you are finished, run hg histedit --continue to resume. |
139 When you are finished, run hg histedit --continue to resume. |
144 [255] |
140 [1] |
145 $ echo c >> c |
141 $ echo c >> c |
146 $ hg histedit --continue |
142 $ hg histedit --continue |
147 0 files updated, 0 files merged, 0 files removed, 0 files unresolved |
143 0 files updated, 0 files merged, 0 files removed, 0 files unresolved |
148 |
144 |
149 $ hg log -r 'unstable()' |
145 $ hg log -r 'unstable()' |
150 9:c13eb81022ca f (no-eol) |
146 9:c13eb81022ca f (no-eol) |
151 |
147 |
152 stabilise |
148 stabilise |
153 |
149 |
154 $ hg rebase -r 'unstable()' -d . |
150 $ hg rebase -r 'unstable()' -d . |
|
151 |
|
152 Test dropping of changeset on the top of the stack |
|
153 ------------------------------------------------------- |
|
154 |
|
155 Nothing is rewritten below, the working directory parent must be change for the |
|
156 dropped changeset to be hidden. |
|
157 |
|
158 $ cd .. |
|
159 $ hg clone base droplast |
|
160 updating to branch default |
|
161 3 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
162 $ cd droplast |
|
163 $ hg histedit -r '40db8afa467b' --commands - << EOF |
|
164 > pick 40db8afa467b 10 c |
|
165 > drop b449568bf7fc 11 f |
|
166 > EOF |
|
167 0 files updated, 0 files merged, 1 files removed, 0 files unresolved |
|
168 $ hg log -G |
|
169 @ 10:40db8afa467b c |
|
170 | |
|
171 o 0:cb9a9f314b8b a |
|
172 |
|
173 |
|
174 With rewritten ancestors |
|
175 |
|
176 $ echo e > e |
|
177 $ hg add e |
|
178 $ hg commit -m g |
|
179 $ echo f > f |
|
180 $ hg add f |
|
181 $ hg commit -m h |
|
182 $ hg histedit -r '40db8afa467b' --commands - << EOF |
|
183 > pick 47a8561c0449 12 g |
|
184 > pick 40db8afa467b 10 c |
|
185 > drop 1b3b05f35ff0 13 h |
|
186 > EOF |
|
187 0 files updated, 0 files merged, 3 files removed, 0 files unresolved |
|
188 0 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
189 0 files updated, 0 files merged, 0 files removed, 0 files unresolved |
|
190 $ hg log -G |
|
191 @ 15:ee6544123ab8 c |
|
192 | |
|
193 o 14:269e713e9eae g |
|
194 | |
|
195 o 0:cb9a9f314b8b a |
|
196 |
|
197 $ cd ../base |
|
198 |
155 |
199 |
156 |
200 |
157 Test phases support |
201 Test phases support |
158 =========================================== |
202 =========================================== |
159 |
203 |
215 |
259 |
216 New-commit as draft (default) |
260 New-commit as draft (default) |
217 |
261 |
218 $ cp -r base simple-draft |
262 $ cp -r base simple-draft |
219 $ cd simple-draft |
263 $ cd simple-draft |
220 $ cat > commands.txt <<EOF |
264 $ hg histedit -r 'b449568bf7fc' --commands - << EOF |
221 > edit b449568bf7fc 11 f |
265 > edit b449568bf7fc 11 f |
222 > pick 6b70183d2492 12 g |
266 > pick 6b70183d2492 12 g |
223 > pick 7395e1ff83bd 13 h |
267 > pick 7395e1ff83bd 13 h |
224 > pick b605fb7503f2 14 i |
268 > pick b605fb7503f2 14 i |
225 > pick 3a6c53ee7f3d 15 j |
269 > pick 3a6c53ee7f3d 15 j |
226 > pick ee118ab9fa44 16 k |
270 > pick ee118ab9fa44 16 k |
227 > EOF |
271 > EOF |
228 $ hg histedit -r 'b449568bf7fc' --commands commands.txt |
|
229 0 files updated, 0 files merged, 6 files removed, 0 files unresolved |
272 0 files updated, 0 files merged, 6 files removed, 0 files unresolved |
230 adding f |
273 adding f |
231 abort: Make changes as needed, you may commit or record as needed now. |
274 Make changes as needed, you may commit or record as needed now. |
232 When you are finished, run hg histedit --continue to resume. |
275 When you are finished, run hg histedit --continue to resume. |
233 [255] |
276 [1] |
234 $ echo f >> f |
277 $ echo f >> f |
235 $ hg histedit --continue |
278 $ hg histedit --continue |
236 0 files updated, 0 files merged, 0 files removed, 0 files unresolved |
279 0 files updated, 0 files merged, 0 files removed, 0 files unresolved |
237 0 files updated, 0 files merged, 0 files removed, 0 files unresolved |
280 0 files updated, 0 files merged, 0 files removed, 0 files unresolved |
238 0 files updated, 0 files merged, 0 files removed, 0 files unresolved |
281 0 files updated, 0 files merged, 0 files removed, 0 files unresolved |
265 $ cd simple-secret |
308 $ cd simple-secret |
266 $ cat >> .hg/hgrc << EOF |
309 $ cat >> .hg/hgrc << EOF |
267 > [phases] |
310 > [phases] |
268 > new-commit=secret |
311 > new-commit=secret |
269 > EOF |
312 > EOF |
270 $ cat > commands.txt <<EOF |
313 $ hg histedit -r 'b449568bf7fc' --commands - << EOF |
271 > edit b449568bf7fc 11 f |
314 > edit b449568bf7fc 11 f |
272 > pick 6b70183d2492 12 g |
315 > pick 6b70183d2492 12 g |
273 > pick 7395e1ff83bd 13 h |
316 > pick 7395e1ff83bd 13 h |
274 > pick b605fb7503f2 14 i |
317 > pick b605fb7503f2 14 i |
275 > pick 3a6c53ee7f3d 15 j |
318 > pick 3a6c53ee7f3d 15 j |
276 > pick ee118ab9fa44 16 k |
319 > pick ee118ab9fa44 16 k |
277 > EOF |
320 > EOF |
278 $ hg histedit -r 'b449568bf7fc' --commands commands.txt |
|
279 0 files updated, 0 files merged, 6 files removed, 0 files unresolved |
321 0 files updated, 0 files merged, 6 files removed, 0 files unresolved |
280 adding f |
322 adding f |
281 abort: Make changes as needed, you may commit or record as needed now. |
323 Make changes as needed, you may commit or record as needed now. |
282 When you are finished, run hg histedit --continue to resume. |
324 When you are finished, run hg histedit --continue to resume. |
283 [255] |
325 [1] |
284 $ echo f >> f |
326 $ echo f >> f |
285 $ hg histedit --continue |
327 $ hg histedit --continue |
286 0 files updated, 0 files merged, 0 files removed, 0 files unresolved |
328 0 files updated, 0 files merged, 0 files removed, 0 files unresolved |
287 0 files updated, 0 files merged, 0 files removed, 0 files unresolved |
329 0 files updated, 0 files merged, 0 files removed, 0 files unresolved |
288 0 files updated, 0 files merged, 0 files removed, 0 files unresolved |
330 0 files updated, 0 files merged, 0 files removed, 0 files unresolved |
315 If a secret changeset is put before a draft one, all descendant should be secret. |
357 If a secret changeset is put before a draft one, all descendant should be secret. |
316 It seems more important to present the secret phase. |
358 It seems more important to present the secret phase. |
317 |
359 |
318 $ cp -r base reorder |
360 $ cp -r base reorder |
319 $ cd reorder |
361 $ cd reorder |
320 $ cat > commands.txt <<EOF |
362 $ hg histedit -r 'b449568bf7fc' --commands - << EOF |
321 > pick b449568bf7fc 11 f |
363 > pick b449568bf7fc 11 f |
322 > pick 3a6c53ee7f3d 15 j |
364 > pick 3a6c53ee7f3d 15 j |
323 > pick 6b70183d2492 12 g |
365 > pick 6b70183d2492 12 g |
324 > pick b605fb7503f2 14 i |
366 > pick b605fb7503f2 14 i |
325 > pick 7395e1ff83bd 13 h |
367 > pick 7395e1ff83bd 13 h |
326 > pick ee118ab9fa44 16 k |
368 > pick ee118ab9fa44 16 k |
327 > EOF |
369 > EOF |
328 $ hg histedit -r 'b449568bf7fc' --commands commands.txt |
|
329 0 files updated, 0 files merged, 5 files removed, 0 files unresolved |
370 0 files updated, 0 files merged, 5 files removed, 0 files unresolved |
330 0 files updated, 0 files merged, 0 files removed, 0 files unresolved |
371 0 files updated, 0 files merged, 0 files removed, 0 files unresolved |
331 0 files updated, 0 files merged, 0 files removed, 0 files unresolved |
372 0 files updated, 0 files merged, 0 files removed, 0 files unresolved |
332 0 files updated, 0 files merged, 0 files removed, 0 files unresolved |
373 0 files updated, 0 files merged, 0 files removed, 0 files unresolved |
333 0 files updated, 0 files merged, 0 files removed, 0 files unresolved |
374 0 files updated, 0 files merged, 0 files removed, 0 files unresolved |
363 $ cd folding |
404 $ cd folding |
364 $ cat >> .hg/hgrc << EOF |
405 $ cat >> .hg/hgrc << EOF |
365 > [phases] |
406 > [phases] |
366 > new-commit=secret |
407 > new-commit=secret |
367 > EOF |
408 > EOF |
368 $ cat > commands.txt <<EOF |
409 $ hg histedit -r 'b449568bf7fc' --commands - << EOF |
369 > pick 7395e1ff83bd 13 h |
410 > pick 7395e1ff83bd 13 h |
370 > fold b449568bf7fc 11 f |
411 > fold b449568bf7fc 11 f |
371 > pick 6b70183d2492 12 g |
412 > pick 6b70183d2492 12 g |
372 > fold 3a6c53ee7f3d 15 j |
413 > fold 3a6c53ee7f3d 15 j |
373 > pick b605fb7503f2 14 i |
414 > pick b605fb7503f2 14 i |
374 > fold ee118ab9fa44 16 k |
415 > fold ee118ab9fa44 16 k |
375 > EOF |
416 > EOF |
376 $ hg histedit -r 'b449568bf7fc' --commands commands.txt |
|
377 0 files updated, 0 files merged, 6 files removed, 0 files unresolved |
417 0 files updated, 0 files merged, 6 files removed, 0 files unresolved |
378 0 files updated, 0 files merged, 0 files removed, 0 files unresolved |
418 0 files updated, 0 files merged, 0 files removed, 0 files unresolved |
379 0 files updated, 0 files merged, 2 files removed, 0 files unresolved |
419 0 files updated, 0 files merged, 2 files removed, 0 files unresolved |
380 2 files updated, 0 files merged, 0 files removed, 0 files unresolved |
420 2 files updated, 0 files merged, 0 files removed, 0 files unresolved |
381 0 files updated, 0 files merged, 0 files removed, 0 files unresolved |
421 0 files updated, 0 files merged, 0 files removed, 0 files unresolved |