##// END OF EJS Templates
debugbundle: add --part-type flag to emit only named part types...
debugbundle: add --part-type flag to emit only named part types This removes the need in the tests for grep -A, which is not supported on Solaris.

File last commit:

r32354:f432897a default
r32694:3ef319e9 default
Show More
test-histedit-obsolete.t
578 lines | 14.4 KiB | text/troff | Tads3Lexer
/ tests / test-histedit-obsolete.t
Pierre-Yves David
histedit: add obsolete support...
r17759 $ . "$TESTDIR/histedit-helpers.sh"
Enable obsolete
$ cat >> $HGRCPATH << EOF
> [ui]
> logtemplate= {rev}:{node|short} {desc|firstline}
> [phases]
> publish=False
Durham Goode
obsolete: update tests to use obsolete options...
r22955 > [experimental]
> evolution=createmarkers,allowunstable
David Soria Parra
tests: remove unnecessary apostrophe
r22392 > [extensions]
Pierre-Yves David
histedit: add obsolete support...
r17759 > histedit=
Pierre-Yves David
test-histedit: fix instability creation test...
r18438 > rebase=
Pierre-Yves David
histedit: add obsolete support...
r17759 > EOF
Kostia Balytskyi
histedit: make histedit aware of obsolescense not stored in state (issue4800)...
r28216 Test that histedit learns about obsolescence not stored in histedit state
$ hg init boo
$ cd boo
$ echo a > a
$ hg ci -Am a
adding a
$ echo a > b
$ echo a > c
$ echo a > c
$ hg ci -Am b
adding b
adding c
$ echo a > d
$ hg ci -Am c
adding d
$ echo "pick `hg log -r 0 -T '{node|short}'`" > plan
$ echo "pick `hg log -r 2 -T '{node|short}'`" >> plan
$ echo "edit `hg log -r 1 -T '{node|short}'`" >> plan
$ hg histedit -r 'all()' --commands plan
Editing (1b2d564fad96), you may commit or record as needed now.
(hg histedit --continue to resume)
[1]
$ hg st
A b
A c
? plan
$ hg commit --amend b
$ hg histedit --continue
$ hg log -G
@ 6:46abc7c4d873 b
|
o 5:49d44ab2be1b c
|
o 0:cb9a9f314b8b a
$ hg debugobsolete
obsmarker: add an experimental flag controlling "operation" recording...
r32354 e72d22b19f8ecf4150ab4f91d0973fd9955d3ddf 49d44ab2be1b67a79127568a67c9c99430633b48 0 (*) {'user': 'test'} (glob)
3e30a45cf2f719e96ab3922dfe039cfd047956ce 0 {e72d22b19f8ecf4150ab4f91d0973fd9955d3ddf} (*) {'user': 'test'} (glob)
1b2d564fad96311b45362f17c2aa855150efb35f 46abc7c4d8738e8563e577f7889e1b6db3da4199 0 (*) {'user': 'test'} (glob)
114f4176969ef342759a8a57e6bccefc4234829b 49d44ab2be1b67a79127568a67c9c99430633b48 0 (*) {'user': 'test'} (glob)
Pierre-Yves David
histedit: also handle locally missing nodes when reading obsolescence...
r28224
With some node gone missing during the edit.
$ echo "pick `hg log -r 0 -T '{node|short}'`" > plan
$ echo "pick `hg log -r 6 -T '{node|short}'`" >> plan
$ echo "edit `hg log -r 5 -T '{node|short}'`" >> plan
$ hg histedit -r 'all()' --commands plan
Editing (49d44ab2be1b), you may commit or record as needed now.
(hg histedit --continue to resume)
[1]
$ hg st
A b
A d
? plan
$ hg commit --amend -X . -m XXXXXX
$ hg commit --amend -X . -m b2
$ hg --hidden --config extensions.strip= strip 'desc(XXXXXX)' --no-backup
$ hg histedit --continue
$ hg log -G
@ 9:273c1f3b8626 c
|
o 8:aba7da937030 b2
|
o 0:cb9a9f314b8b a
$ hg debugobsolete
obsmarker: add an experimental flag controlling "operation" recording...
r32354 e72d22b19f8ecf4150ab4f91d0973fd9955d3ddf 49d44ab2be1b67a79127568a67c9c99430633b48 0 (*) {'user': 'test'} (glob)
3e30a45cf2f719e96ab3922dfe039cfd047956ce 0 {e72d22b19f8ecf4150ab4f91d0973fd9955d3ddf} (*) {'user': 'test'} (glob)
1b2d564fad96311b45362f17c2aa855150efb35f 46abc7c4d8738e8563e577f7889e1b6db3da4199 0 (*) {'user': 'test'} (glob)
114f4176969ef342759a8a57e6bccefc4234829b 49d44ab2be1b67a79127568a67c9c99430633b48 0 (*) {'user': 'test'} (glob)
76f72745eac0643d16530e56e2f86e36e40631f1 2ca853e48edbd6453a0674dc0fe28a0974c51b9c 0 (*) {'user': 'test'} (glob)
2ca853e48edbd6453a0674dc0fe28a0974c51b9c aba7da93703075eec9fb1dbaf143ff2bc1c49d46 0 (*) {'user': 'test'} (glob)
49d44ab2be1b67a79127568a67c9c99430633b48 273c1f3b86267ed3ec684bb13af1fa4d6ba56e02 0 (*) {'user': 'test'} (glob)
46abc7c4d8738e8563e577f7889e1b6db3da4199 aba7da93703075eec9fb1dbaf143ff2bc1c49d46 0 (*) {'user': 'test'} (glob)
Kostia Balytskyi
histedit: make histedit aware of obsolescense not stored in state (issue4800)...
r28216 $ cd ..
Base setup for the rest of the testing
======================================
Pierre-Yves David
histedit: add obsolete support...
r17759 $ hg init base
$ cd base
$ for x in a b c d e f ; do
> echo $x > $x
> hg add $x
> hg ci -m $x
> done
$ hg log --graph
@ 5:652413bf663e f
|
o 4:e860deea161a e
|
o 3:055a42cdd887 d
|
o 2:177f92b77385 c
|
o 1:d2ae7f538514 b
|
o 0:cb9a9f314b8b a
$ HGEDITOR=cat hg histedit 1
pick d2ae7f538514 1 b
pick 177f92b77385 2 c
pick 055a42cdd887 3 d
pick e860deea161a 4 e
pick 652413bf663e 5 f
# Edit history between d2ae7f538514 and 652413bf663e
#
Adrian Zgorzałek
histedit: clarify description of fold command...
r20503 # Commits are listed from least to most recent
#
liscju
histedit: adds hint how to reorder changesets at editor (issue3766)
r28396 # You can reorder changesets by reordering the lines
#
Pierre-Yves David
histedit: add obsolete support...
r17759 # Commands:
timeless
histedit: prefer edit commit, edit message, use commit...
r27674 #
# e, edit = use commit, but stop for amending
# m, mess = edit commit message without changing commit content
Pierre-Yves David
histedit: add obsolete support...
r17759 # p, pick = use commit
timeless
histedit: prefer edit commit, edit message, use commit...
r27674 # d, drop = remove commit from history
Matt Mackall
histedit: shorten new fold message...
r20511 # f, fold = use commit, but combine it with the one above
Ben Schmidt
histedit: modify rollup to discard date from the rollup commit (issue4820)...
r31056 # r, roll = like fold, but discard this commit's description and date
Pierre-Yves David
histedit: add obsolete support...
r17759 #
Pierre-Yves David
histedit-test: generalise --commands "-" usage...
r19019 $ hg histedit 1 --commands - --verbose <<EOF | grep histedit
Pierre-Yves David
histedit: add obsolete support...
r17759 > pick 177f92b77385 2 c
> drop d2ae7f538514 1 b
> pick 055a42cdd887 3 d
> fold e860deea161a 4 e
> pick 652413bf663e 5 f
> EOF
Durham Goode
histedit: make histedit prune when obsolete is enabled...
r26763 [1]
Pierre-Yves David
histedit: add obsolete support...
r17759 $ hg log --graph --hidden
Durham Goode
histedit: make histedit prune when obsolete is enabled...
r26763 @ 10:cacdfd884a93 f
|
o 9:59d9f330561f d
Laurent Charignon
histedit: mark temporary commits as obsolete when allowed to...
r25809 |
Durham Goode
histedit: make histedit prune when obsolete is enabled...
r26763 | x 8:b558abc46d09 fold-temp-revision e860deea161a
| |
| x 7:96e494a2d553 d
|/
Pierre-Yves David
histedit: record histedit source (issue3681)...
r18437 o 6:b346ab9a313d c
Pierre-Yves David
histedit: add obsolete support...
r17759 |
| x 5:652413bf663e f
| |
| x 4:e860deea161a e
| |
| x 3:055a42cdd887 d
| |
| x 2:177f92b77385 c
| |
| x 1:d2ae7f538514 b
|/
o 0:cb9a9f314b8b a
$ hg debugobsolete
obsmarker: add an experimental flag controlling "operation" recording...
r32354 96e494a2d553dd05902ba1cee1d94d4cb7b8faed 0 {b346ab9a313db8537ecf96fca3ca3ca984ef3bd7} (*) {'user': 'test'} (glob)
b558abc46d09c30f57ac31e85a8a3d64d2e906e4 0 {96e494a2d553dd05902ba1cee1d94d4cb7b8faed} (*) {'user': 'test'} (glob)
d2ae7f538514cd87c17547b0de4cea71fe1af9fb 0 {cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b} (*) {'user': 'test'} (glob)
177f92b773850b59254aa5e923436f921b55483b b346ab9a313db8537ecf96fca3ca3ca984ef3bd7 0 (*) {'user': 'test'} (glob)
055a42cdd88768532f9cf79daa407fc8d138de9b 59d9f330561fd6c88b1a6b32f0e45034d88db784 0 (*) {'user': 'test'} (glob)
e860deea161a2f77de56603b340ebbb4536308ae 59d9f330561fd6c88b1a6b32f0e45034d88db784 0 (*) {'user': 'test'} (glob)
652413bf663ef2a641cab26574e46d5f5a64a55a cacdfd884a9321ec4e1de275ef3949fa953a1f83 0 (*) {'user': 'test'} (glob)
Pierre-Yves David
histedit: create obsolescence markers in deterministic order...
r17771
Pierre-Yves David
histedit: ignores hidden revision when checking for orphaned nodes...
r17761
Ensure hidden revision does not prevent histedit
-------------------------------------------------
create an hidden revision
Pierre-Yves David
histedit-test: generalise --commands "-" usage...
r19019 $ hg histedit 6 --commands - << EOF
Pierre-Yves David
histedit: record histedit source (issue3681)...
r18437 > pick b346ab9a313d 6 c
> drop 59d9f330561f 7 d
> pick cacdfd884a93 8 f
Pierre-Yves David
histedit: ignores hidden revision when checking for orphaned nodes...
r17761 > EOF
$ hg log --graph
Durham Goode
histedit: make histedit prune when obsolete is enabled...
r26763 @ 11:c13eb81022ca f
Pierre-Yves David
histedit: ignores hidden revision when checking for orphaned nodes...
r17761 |
Pierre-Yves David
histedit: record histedit source (issue3681)...
r18437 o 6:b346ab9a313d c
Pierre-Yves David
histedit: ignores hidden revision when checking for orphaned nodes...
r17761 |
o 0:cb9a9f314b8b a
check hidden revision are ignored (6 have hidden children 7 and 8)
Pierre-Yves David
histedit-test: generalise --commands "-" usage...
r19019 $ hg histedit 6 --commands - << EOF
Pierre-Yves David
histedit: record histedit source (issue3681)...
r18437 > pick b346ab9a313d 6 c
> pick c13eb81022ca 8 f
Pierre-Yves David
histedit: ignores hidden revision when checking for orphaned nodes...
r17761 > EOF
Pierre-Yves David
histedit: refuse to edit public changeset...
r17762
Pierre-Yves David
histedit: allow operation from non-head if obsolete is enabled...
r18165
Pierre-Yves David
test: fix in-test comments related to obsolescence...
r18398 Test that rewriting leaving instability behind is allowed
---------------------------------------------------------------------
Pierre-Yves David
histedit: allow operation from non-head if obsolete is enabled...
r18165
$ hg up '.^'
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
$ hg log -r 'children(.)'
Durham Goode
histedit: make histedit prune when obsolete is enabled...
r26763 11:c13eb81022ca f (no-eol)
Pierre-Yves David
histedit-test: generalise --commands "-" usage...
r19019 $ hg histedit -r '.' --commands - <<EOF
Pierre-Yves David
test-histedit: fix instability creation test...
r18438 > edit b346ab9a313d 6 c
> EOF
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
adding c
timeless
histedit: list action when intervention is required
r27629 Editing (b346ab9a313d), you may commit or record as needed now.
(hg histedit --continue to resume)
Augie Fackler
dispatch: exit with status 1 for an InterventionRequired exception (bc)
r18935 [1]
Pierre-Yves David
test-histedit: fix instability creation test...
r18438 $ echo c >> c
$ hg histedit --continue
$ hg log -r 'unstable()'
Durham Goode
histedit: make histedit prune when obsolete is enabled...
r26763 11:c13eb81022ca f (no-eol)
Pierre-Yves David
test-histedit: fix instability creation test...
r18438
stabilise
$ hg rebase -r 'unstable()' -d .
Durham Goode
histedit: make histedit prune when obsolete is enabled...
r26763 rebasing 11:c13eb81022ca "f"
Pierre-Yves David
tests: prepare rebase test for wc parent preservation...
r19924 $ hg up tip -q
Pierre-Yves David
test-histedit: reorder phases test and prepare for more...
r18439
Pierre-Yves David
test-histedit: add tests for dropping head changeset...
r18509 Test dropping of changeset on the top of the stack
-------------------------------------------------------
Nothing is rewritten below, the working directory parent must be change for the
dropped changeset to be hidden.
$ cd ..
$ hg clone base droplast
updating to branch default
3 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cd droplast
Pierre-Yves David
histedit-test: generalise --commands "-" usage...
r19019 $ hg histedit -r '40db8afa467b' --commands - << EOF
Pierre-Yves David
test-histedit: add tests for dropping head changeset...
r18509 > pick 40db8afa467b 10 c
Siddharth Agarwal
rebase: don't preserve most extra fields...
r27977 > drop b449568bf7fc 11 f
Pierre-Yves David
test-histedit: add tests for dropping head changeset...
r18509 > EOF
$ hg log -G
Durham Goode
histedit: make histedit prune when obsolete is enabled...
r26763 @ 12:40db8afa467b c
Pierre-Yves David
test-histedit: add tests for dropping head changeset...
r18509 |
o 0:cb9a9f314b8b a
With rewritten ancestors
$ echo e > e
$ hg add e
$ hg commit -m g
$ echo f > f
$ hg add f
$ hg commit -m h
Pierre-Yves David
histedit-test: generalise --commands "-" usage...
r19019 $ hg histedit -r '40db8afa467b' --commands - << EOF
Pierre-Yves David
test-histedit: add tests for dropping head changeset...
r18509 > pick 47a8561c0449 12 g
> pick 40db8afa467b 10 c
> drop 1b3b05f35ff0 13 h
> EOF
$ hg log -G
Durham Goode
histedit: make histedit prune when obsolete is enabled...
r26763 @ 17:ee6544123ab8 c
Pierre-Yves David
test-histedit: add tests for dropping head changeset...
r18509 |
Durham Goode
histedit: make histedit prune when obsolete is enabled...
r26763 o 16:269e713e9eae g
Pierre-Yves David
test-histedit: add tests for dropping head changeset...
r18509 |
o 0:cb9a9f314b8b a
$ cd ../base
Pierre-Yves David
test-histedit: reorder phases test and prepare for more...
r18439
Pierre-Yves David
histedit: proper phase conservation (issue3724)...
r18440 Test phases support
===========================================
Check that histedit respect immutability
-------------------------------------------
Pierre-Yves David
test-histedit: reorder phases test and prepare for more...
r18439
$ cat >> $HGRCPATH << EOF
> [ui]
> logtemplate= {rev}:{node|short} ({phase}) {desc|firstline}\n
> EOF
$ hg ph -pv '.^'
phase changed for 2 changesets
$ hg log -G
Siddharth Agarwal
rebase: don't preserve most extra fields...
r27977 @ 13:b449568bf7fc (draft) f
Pierre-Yves David
test-histedit: reorder phases test and prepare for more...
r18439 |
Durham Goode
histedit: make histedit prune when obsolete is enabled...
r26763 o 12:40db8afa467b (public) c
Pierre-Yves David
test-histedit: reorder phases test and prepare for more...
r18439 |
o 0:cb9a9f314b8b (public) a
$ hg histedit -r '.~2'
Jordi Gutiérrez Hermoso
phases: rewrite "immutable changeset" to "public changeset"...
r25411 abort: cannot edit public changeset: cb9a9f314b8b
timeless
histedit: use single quotes in use warning
r29970 (see 'hg help phases' for details)
Pierre-Yves David
test-histedit: reorder phases test and prepare for more...
r18439 [255]
Pierre-Yves David
histedit: proper phase conservation (issue3724)...
r18440 Prepare further testing
-------------------------------------------
$ for x in g h i j k ; do
> echo $x > $x
> hg add $x
> hg ci -m $x
> done
$ hg phase --force --secret .~2
$ hg log -G
Siddharth Agarwal
rebase: don't preserve most extra fields...
r27977 @ 18:ee118ab9fa44 (secret) k
Pierre-Yves David
histedit: proper phase conservation (issue3724)...
r18440 |
Siddharth Agarwal
rebase: don't preserve most extra fields...
r27977 o 17:3a6c53ee7f3d (secret) j
Pierre-Yves David
histedit: proper phase conservation (issue3724)...
r18440 |
Siddharth Agarwal
rebase: don't preserve most extra fields...
r27977 o 16:b605fb7503f2 (secret) i
Pierre-Yves David
histedit: proper phase conservation (issue3724)...
r18440 |
Siddharth Agarwal
rebase: don't preserve most extra fields...
r27977 o 15:7395e1ff83bd (draft) h
Pierre-Yves David
histedit: proper phase conservation (issue3724)...
r18440 |
Siddharth Agarwal
rebase: don't preserve most extra fields...
r27977 o 14:6b70183d2492 (draft) g
Pierre-Yves David
histedit: proper phase conservation (issue3724)...
r18440 |
Siddharth Agarwal
rebase: don't preserve most extra fields...
r27977 o 13:b449568bf7fc (draft) f
Pierre-Yves David
histedit: proper phase conservation (issue3724)...
r18440 |
Durham Goode
histedit: make histedit prune when obsolete is enabled...
r26763 o 12:40db8afa467b (public) c
Pierre-Yves David
histedit: proper phase conservation (issue3724)...
r18440 |
o 0:cb9a9f314b8b (public) a
$ cd ..
simple phase conservation
-------------------------------------------
Resulting changeset should conserve the phase of the original one whatever the
phases.new-commit option is.
New-commit as draft (default)
Jun Wu
tests: replace "cp -r" with "cp -R"...
r30556 $ cp -R base simple-draft
Pierre-Yves David
histedit: proper phase conservation (issue3724)...
r18440 $ cd simple-draft
Siddharth Agarwal
rebase: don't preserve most extra fields...
r27977 $ hg histedit -r 'b449568bf7fc' --commands - << EOF
> edit b449568bf7fc 11 f
> pick 6b70183d2492 12 g
> pick 7395e1ff83bd 13 h
> pick b605fb7503f2 14 i
> pick 3a6c53ee7f3d 15 j
> pick ee118ab9fa44 16 k
Pierre-Yves David
histedit: proper phase conservation (issue3724)...
r18440 > EOF
0 files updated, 0 files merged, 6 files removed, 0 files unresolved
adding f
Siddharth Agarwal
rebase: don't preserve most extra fields...
r27977 Editing (b449568bf7fc), you may commit or record as needed now.
timeless
histedit: list action when intervention is required
r27629 (hg histedit --continue to resume)
Augie Fackler
dispatch: exit with status 1 for an InterventionRequired exception (bc)
r18935 [1]
Pierre-Yves David
histedit: proper phase conservation (issue3724)...
r18440 $ echo f >> f
$ hg histedit --continue
$ hg log -G
Siddharth Agarwal
rebase: don't preserve most extra fields...
r27977 @ 24:12e89af74238 (secret) k
Pierre-Yves David
histedit: proper phase conservation (issue3724)...
r18440 |
Siddharth Agarwal
rebase: don't preserve most extra fields...
r27977 o 23:636a8687b22e (secret) j
Pierre-Yves David
histedit: proper phase conservation (issue3724)...
r18440 |
Siddharth Agarwal
rebase: don't preserve most extra fields...
r27977 o 22:ccaf0a38653f (secret) i
Pierre-Yves David
histedit: proper phase conservation (issue3724)...
r18440 |
Siddharth Agarwal
rebase: don't preserve most extra fields...
r27977 o 21:11a89d1c2613 (draft) h
Pierre-Yves David
histedit: proper phase conservation (issue3724)...
r18440 |
Siddharth Agarwal
rebase: don't preserve most extra fields...
r27977 o 20:c1dec7ca82ea (draft) g
Pierre-Yves David
histedit: proper phase conservation (issue3724)...
r18440 |
Siddharth Agarwal
rebase: don't preserve most extra fields...
r27977 o 19:087281e68428 (draft) f
Pierre-Yves David
histedit: proper phase conservation (issue3724)...
r18440 |
Durham Goode
histedit: make histedit prune when obsolete is enabled...
r26763 o 12:40db8afa467b (public) c
Pierre-Yves David
histedit: proper phase conservation (issue3724)...
r18440 |
o 0:cb9a9f314b8b (public) a
$ cd ..
timeless
tests: fix section description...
r28309 New-commit as secret (config)
Pierre-Yves David
histedit: proper phase conservation (issue3724)...
r18440
Jun Wu
tests: replace "cp -r" with "cp -R"...
r30556 $ cp -R base simple-secret
Pierre-Yves David
histedit: proper phase conservation (issue3724)...
r18440 $ cd simple-secret
$ cat >> .hg/hgrc << EOF
> [phases]
> new-commit=secret
> EOF
Siddharth Agarwal
rebase: don't preserve most extra fields...
r27977 $ hg histedit -r 'b449568bf7fc' --commands - << EOF
> edit b449568bf7fc 11 f
> pick 6b70183d2492 12 g
> pick 7395e1ff83bd 13 h
> pick b605fb7503f2 14 i
> pick 3a6c53ee7f3d 15 j
> pick ee118ab9fa44 16 k
Pierre-Yves David
histedit: proper phase conservation (issue3724)...
r18440 > EOF
0 files updated, 0 files merged, 6 files removed, 0 files unresolved
adding f
Siddharth Agarwal
rebase: don't preserve most extra fields...
r27977 Editing (b449568bf7fc), you may commit or record as needed now.
timeless
histedit: list action when intervention is required
r27629 (hg histedit --continue to resume)
Augie Fackler
dispatch: exit with status 1 for an InterventionRequired exception (bc)
r18935 [1]
Pierre-Yves David
histedit: proper phase conservation (issue3724)...
r18440 $ echo f >> f
$ hg histedit --continue
$ hg log -G
Siddharth Agarwal
rebase: don't preserve most extra fields...
r27977 @ 24:12e89af74238 (secret) k
Pierre-Yves David
histedit: proper phase conservation (issue3724)...
r18440 |
Siddharth Agarwal
rebase: don't preserve most extra fields...
r27977 o 23:636a8687b22e (secret) j
Pierre-Yves David
histedit: proper phase conservation (issue3724)...
r18440 |
Siddharth Agarwal
rebase: don't preserve most extra fields...
r27977 o 22:ccaf0a38653f (secret) i
Pierre-Yves David
histedit: proper phase conservation (issue3724)...
r18440 |
Siddharth Agarwal
rebase: don't preserve most extra fields...
r27977 o 21:11a89d1c2613 (draft) h
Pierre-Yves David
histedit: proper phase conservation (issue3724)...
r18440 |
Siddharth Agarwal
rebase: don't preserve most extra fields...
r27977 o 20:c1dec7ca82ea (draft) g
Pierre-Yves David
histedit: proper phase conservation (issue3724)...
r18440 |
Siddharth Agarwal
rebase: don't preserve most extra fields...
r27977 o 19:087281e68428 (draft) f
Pierre-Yves David
histedit: proper phase conservation (issue3724)...
r18440 |
Durham Goode
histedit: make histedit prune when obsolete is enabled...
r26763 o 12:40db8afa467b (public) c
Pierre-Yves David
histedit: proper phase conservation (issue3724)...
r18440 |
o 0:cb9a9f314b8b (public) a
$ cd ..
Changeset reordering
-------------------------------------------
If a secret changeset is put before a draft one, all descendant should be secret.
It seems more important to present the secret phase.
Jun Wu
tests: replace "cp -r" with "cp -R"...
r30556 $ cp -R base reorder
Pierre-Yves David
histedit: proper phase conservation (issue3724)...
r18440 $ cd reorder
Siddharth Agarwal
rebase: don't preserve most extra fields...
r27977 $ hg histedit -r 'b449568bf7fc' --commands - << EOF
> pick b449568bf7fc 11 f
> pick 3a6c53ee7f3d 15 j
> pick 6b70183d2492 12 g
> pick b605fb7503f2 14 i
> pick 7395e1ff83bd 13 h
> pick ee118ab9fa44 16 k
Pierre-Yves David
histedit: proper phase conservation (issue3724)...
r18440 > EOF
$ hg log -G
Siddharth Agarwal
rebase: don't preserve most extra fields...
r27977 @ 23:558246857888 (secret) k
Pierre-Yves David
histedit: proper phase conservation (issue3724)...
r18440 |
Siddharth Agarwal
rebase: don't preserve most extra fields...
r27977 o 22:28bd44768535 (secret) h
Pierre-Yves David
histedit: proper phase conservation (issue3724)...
r18440 |
Siddharth Agarwal
rebase: don't preserve most extra fields...
r27977 o 21:d5395202aeb9 (secret) i
Pierre-Yves David
histedit: proper phase conservation (issue3724)...
r18440 |
Siddharth Agarwal
rebase: don't preserve most extra fields...
r27977 o 20:21edda8e341b (secret) g
Pierre-Yves David
histedit: proper phase conservation (issue3724)...
r18440 |
Siddharth Agarwal
rebase: don't preserve most extra fields...
r27977 o 19:5ab64f3a4832 (secret) j
Pierre-Yves David
histedit: proper phase conservation (issue3724)...
r18440 |
Siddharth Agarwal
rebase: don't preserve most extra fields...
r27977 o 13:b449568bf7fc (draft) f
Pierre-Yves David
histedit: proper phase conservation (issue3724)...
r18440 |
Durham Goode
histedit: make histedit prune when obsolete is enabled...
r26763 o 12:40db8afa467b (public) c
Pierre-Yves David
histedit: proper phase conservation (issue3724)...
r18440 |
o 0:cb9a9f314b8b (public) a
$ cd ..
Changeset folding
-------------------------------------------
Folding a secret changeset with a draft one turn the result secret (again,
better safe than sorry). Folding between same phase changeset still works
Note that there is a few reordering in this series for more extensive test
Jun Wu
tests: replace "cp -r" with "cp -R"...
r30556 $ cp -R base folding
Pierre-Yves David
histedit: proper phase conservation (issue3724)...
r18440 $ cd folding
$ cat >> .hg/hgrc << EOF
> [phases]
> new-commit=secret
> EOF
Siddharth Agarwal
rebase: don't preserve most extra fields...
r27977 $ hg histedit -r 'b449568bf7fc' --commands - << EOF
> pick 7395e1ff83bd 13 h
> fold b449568bf7fc 11 f
> pick 6b70183d2492 12 g
> fold 3a6c53ee7f3d 15 j
> pick b605fb7503f2 14 i
> fold ee118ab9fa44 16 k
Pierre-Yves David
histedit: proper phase conservation (issue3724)...
r18440 > EOF
$ hg log -G
Siddharth Agarwal
rebase: don't preserve most extra fields...
r27977 @ 27:f9daec13fb98 (secret) i
Pierre-Yves David
histedit: proper phase conservation (issue3724)...
r18440 |
Siddharth Agarwal
rebase: don't preserve most extra fields...
r27977 o 24:49807617f46a (secret) g
Pierre-Yves David
histedit: proper phase conservation (issue3724)...
r18440 |
Siddharth Agarwal
rebase: don't preserve most extra fields...
r27977 o 21:050280826e04 (draft) h
Pierre-Yves David
histedit: proper phase conservation (issue3724)...
r18440 |
Durham Goode
histedit: make histedit prune when obsolete is enabled...
r26763 o 12:40db8afa467b (public) c
Pierre-Yves David
histedit: proper phase conservation (issue3724)...
r18440 |
o 0:cb9a9f314b8b (public) a
Siddharth Agarwal
rebase: don't preserve most extra fields...
r27977 $ hg co 49807617f46a
Augie Fackler
histedit: refuse to edit history that contains merges (issue3962)
r19473 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
$ echo wat >> wat
$ hg add wat
$ hg ci -m 'add wat'
created new head
Siddharth Agarwal
rebase: don't preserve most extra fields...
r27977 $ hg merge f9daec13fb98
Augie Fackler
histedit: refuse to edit history that contains merges (issue3962)
r19473 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
$ hg ci -m 'merge'
$ echo not wat > wat
$ hg ci -m 'modify wat'
Siddharth Agarwal
rebase: don't preserve most extra fields...
r27977 $ hg histedit 050280826e04
Augie Fackler
histedit: refuse to edit history that contains merges (issue3962)
r19473 abort: cannot edit history that contains merges
[255]
Pierre-Yves David
histedit: proper phase conservation (issue3724)...
r18440 $ cd ..
Pierre-Yves David
histedit: test that an aborted histedit can be rerun (with obsolete)...
r31639
Check abort behavior
-------------------------------------------
We checks that abort properly clean the repository so the same histedit can be
attempted later.
$ cp -R base abort
$ cd abort
$ hg histedit -r 'b449568bf7fc' --commands - << EOF
> pick b449568bf7fc 13 f
> pick 7395e1ff83bd 15 h
> pick 6b70183d2492 14 g
> pick b605fb7503f2 16 i
> roll 3a6c53ee7f3d 17 j
> edit ee118ab9fa44 18 k
> EOF
Editing (ee118ab9fa44), you may commit or record as needed now.
(hg histedit --continue to resume)
[1]
$ hg histedit --abort
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
saved backup bundle to $TESTTMP/abort/.hg/strip-backup/4dc06258baa6-dff4ef05-backup.hg (glob)
$ hg log -G
@ 18:ee118ab9fa44 (secret) k
|
o 17:3a6c53ee7f3d (secret) j
|
o 16:b605fb7503f2 (secret) i
|
o 15:7395e1ff83bd (draft) h
|
o 14:6b70183d2492 (draft) g
|
o 13:b449568bf7fc (draft) f
|
o 12:40db8afa467b (public) c
|
o 0:cb9a9f314b8b (public) a
obsmarker: add an experimental flag controlling "operation" recording...
r32354 $ hg histedit -r 'b449568bf7fc' --commands - << EOF --config experimental.evolution.track-operation=1
Pierre-Yves David
histedit: test that an aborted histedit can be rerun (with obsolete)...
r31639 > pick b449568bf7fc 13 f
> pick 7395e1ff83bd 15 h
> pick 6b70183d2492 14 g
> pick b605fb7503f2 16 i
> pick 3a6c53ee7f3d 17 j
> edit ee118ab9fa44 18 k
> EOF
Editing (ee118ab9fa44), you may commit or record as needed now.
(hg histedit --continue to resume)
[1]
obsmarker: add an experimental flag controlling "operation" recording...
r32354 $ hg histedit --continue --config experimental.evolution.track-operation=1
Pierre-Yves David
histedit: test that an aborted histedit can be rerun (with obsolete)...
r31639 $ hg log -G
@ 23:175d6b286a22 (secret) k
|
o 22:44ca09d59ae4 (secret) j
|
o 21:31747692a644 (secret) i
|
o 20:9985cd4f21fa (draft) g
|
o 19:4dc06258baa6 (draft) h
|
o 13:b449568bf7fc (draft) f
|
o 12:40db8afa467b (public) c
|
o 0:cb9a9f314b8b (public) a
obsmarker: add an experimental flag controlling "operation" recording...
r32354 $ hg debugobsolete --rev .
ee118ab9fa44ebb86be85996548b5517a39e5093 175d6b286a224c23f192e79a581ce83131a53fa2 0 (*) {'operation': 'histedit', 'user': 'test'} (glob)