sapling/tests/test-amend-fold.t
Saurabh Singh 6317ba0ca2 amend: replace with the fbamend extension
Summary:
The functionality we care about is provided by the `fbamend`
extension. Therefore, lets replace the `amend` extension with the `fbamend`
extension.

Reviewed By: farnz

Differential Revision: D10320739

fbshipit-source-id: 5700d39f488777fcc4033f60ce0a51cda15ef2ad
2018-10-11 06:59:23 -07:00

272 lines
6.0 KiB
Raku

Set up test environment.
$ cat >> $HGRCPATH << EOF
> [extensions]
> amend=
> rebase=
> [experimental]
> evolution = createmarkers, allowunstable
> EOF
$ reset() {
> cd ..
> rm -rf repo
> hg init repo
> cd repo
> }
Set up repo.
$ hg init repo && cd repo
$ hg debugbuilddag -m "+5 *4 +2"
$ showgraph
o 7 9c9414e0356c r7
|
o 6 ec6d8e65acbe r6
|
o 5 77d787dfa5b6 r5
|
| o 4 b762560d23fd r4
| |
| o 3 a422badec216 r3
| |
| o 2 37d4c1cec295 r2
|/
o 1 f177fbb9e8d1 r1
|
o 0 93cbaf5e6529 r0
Test that a fold works correctly on error.
$ hg fold --exact 7 7
single revision specified, nothing to fold
[1]
Test simple case of folding a head. Should work normally.
$ hg up 7
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg fold --from '.^'
2 changesets folded
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ showgraph
@ 8 dd0541003d21 r6
|
o 5 77d787dfa5b6 r5
|
| o 4 b762560d23fd r4
| |
| o 3 a422badec216 r3
| |
| o 2 37d4c1cec295 r2
|/
o 1 f177fbb9e8d1 r1
|
o 0 93cbaf5e6529 r0
Test rebasing of stack after fold.
$ hg up 3
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg fold --from '.^'
2 changesets folded
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
rebasing 4:b762560d23fd "r4"
merging mf
$ showgraph
o 10 c480ccdc36c0 r4
|
@ 9 fac8d040c80b r2
|
| o 8 dd0541003d21 r6
| |
| o 5 77d787dfa5b6 r5
|/
o 1 f177fbb9e8d1 r1
|
o 0 93cbaf5e6529 r0
Test rebasing of multiple children
$ hg up 1
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg fold --from '.^'
2 changesets folded
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
rebasing 5:* "r5" (glob)
merging mf
rebasing 8:* "r6" (glob)
merging mf
rebasing 9:* "r2" (glob)
merging mf
rebasing 10:* "r4" (glob)
merging mf
$ showgraph
o 15 6b8dd87db039 r4
|
o 14 7fd219543f4f r2
|
| o 13 31892267fa07 r6
| |
| o 12 c74bb9c4eec9 r5
|/
@ 11 bfc9ee54b8f4 r0
Test folding multiple changesets, using default behavior of folding
up to working copy parent. Also tests situation where the branch to
rebase is not on the topmost folded commit.
$ reset
$ hg debugbuilddag -m "+5 *4 +2"
$ showgraph
o 7 9c9414e0356c r7
|
o 6 ec6d8e65acbe r6
|
o 5 77d787dfa5b6 r5
|
| o 4 b762560d23fd r4
| |
| o 3 a422badec216 r3
| |
| o 2 37d4c1cec295 r2
|/
o 1 f177fbb9e8d1 r1
|
o 0 93cbaf5e6529 r0
$ hg up 0
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg fold --from 2
3 changesets folded
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
rebasing 3:a422badec216 "r3"
merging mf
rebasing 4:b762560d23fd "r4"
merging mf
rebasing 5:77d787dfa5b6 "r5"
merging mf
rebasing 6:ec6d8e65acbe "r6"
merging mf
rebasing 7:9c9414e0356c "r7"
merging mf
$ showgraph
o 13 69b8281910bd r7
|
o 12 b494e86b0fcd r6
|
o 11 3b418b2dcaeb r5
|
| o 10 a78a744630c5 r4
| |
| o 9 6032a3d5c310 r3
|/
@ 8 001b0872b432 r0
Test folding changesets unrelated to working copy parent using --exact.
Also test that using node hashes instead of rev numbers works.
$ reset
$ hg debugbuilddag -m +6
$ showgraph
o 5 f2987ebe5838 r5
|
o 4 aa70f0fe546a r4
|
o 3 cb14eba0ad9c r3
|
o 2 f07e66f449d0 r2
|
o 1 09bb8c08de89 r1
|
o 0 fdaccbb26270 r0
$ hg fold --exact 09bb8c f07e66 cb14eb
3 changesets folded
rebasing 4:aa70f0fe546a "r4"
merging mf
rebasing 5:f2987ebe5838 "r5"
merging mf
$ showgraph
o 8 064f4cd2992f r5
|
o 7 e39a86ad4ff1 r4
|
o 6 b36e18e69785 r1
|
o 0 fdaccbb26270 r0
Test --no-rebase flag.
$ hg fold --no-rebase --exact 6 7
2 changesets folded
$ showgraph
o 9 b431410f50a9 r1
|
| o 8 064f4cd2992f r5
| |
| x 7 e39a86ad4ff1 r4
| |
| x 6 b36e18e69785 r1
|/
o 0 fdaccbb26270 r0
Test that bookmarks are correctly moved.
$ reset
$ hg debugbuilddag +3
$ hg bookmarks -r 1 test1
$ hg bookmarks -r 2 test2_1
$ hg bookmarks -r 2 test2_2
$ hg bookmarks
test1 1:* (glob)
test2_1 2:* (glob)
test2_2 2:* (glob)
$ hg fold --exact 1 2
2 changesets folded
$ hg bookmarks
test1 3:* (glob)
test2_1 3:* (glob)
test2_2 3:* (glob)
Test JSON output
$ reset
$ hg debugbuilddag -m +6
$ hg up 5
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ showgraph
@ 5 f2987ebe5838 r5
|
o 4 aa70f0fe546a r4
|
o 3 cb14eba0ad9c r3
|
o 2 f07e66f449d0 r2
|
o 1 09bb8c08de89 r1
|
o 0 fdaccbb26270 r0
When rebase is not involved
$ hg fold --from -r '.^' -Tjson -q
[
{
"count": 2,
"nodechanges": {"aa70f0fe546a3536a4b9d49297099d140203494f": ["329a7569e12e1828787ecfebc262b012abcf7077"], "f2987ebe583896be81f8361000878a6f4b30e53a": ["329a7569e12e1828787ecfebc262b012abcf7077"]}
}
]
$ hg fold --from -r '.^' -T '{nodechanges|json}' -q
{"329a7569e12e1828787ecfebc262b012abcf7077": ["befa2830d024c4b14c1d5331052d7a13ec2df124"], "cb14eba0ad9cc49472e54fe97c261f5f78a79dab": ["befa2830d024c4b14c1d5331052d7a13ec2df124"]} (no-eol)
$ showgraph
@ 7 befa2830d024 r3
|
o 2 f07e66f449d0 r2
|
o 1 09bb8c08de89 r1
|
o 0 fdaccbb26270 r0
XXX: maybe we also want the rebase nodechanges here.
When rebase is involved
$ hg fold --exact 1 2 -Tjson -q
[
{
"count": 2,
"nodechanges": {"09bb8c08de89bca9fffcd6ed3530d6178f07d9e2": ["d65bf110c68ee2cf0a0ba076da90df3fcf76229b"], "f07e66f449d06b214d0a8a9b1a6fa8af2f5f79a5": ["d65bf110c68ee2cf0a0ba076da90df3fcf76229b"]}
}
]
$ hg fold --exact 0 8 -T '{nodechanges|json}' -q
{"d65bf110c68ee2cf0a0ba076da90df3fcf76229b": ["785c10c9aad58fba814a235f074a79bdc5535083"], "fdaccbb26270c9a42503babe11fd846d7300df0b": ["785c10c9aad58fba814a235f074a79bdc5535083"]} (no-eol)