##// END OF EJS Templates
context: add an assertion checking linerange consistency in blockdescendants()...
context: add an assertion checking linerange consistency in blockdescendants() If this assertion fails, this indicates a flaw in the algorithm. So fail fast instead of possibly producing wrong results. Also extend the target line range in test to catch a merge changeset with all its parents.

File last commit:

r31380:65d93d71 default
r31991:55987fc8 default
Show More
test-rebase-named-branches.t
409 lines | 7.7 KiB | text/troff | Tads3Lexer
/ tests / test-rebase-named-branches.t
Stefano Tortarolo
rebase: allow for rebasing descendants onto ancestors on different named branches...
r13733 $ cat >> $HGRCPATH <<EOF
> [extensions]
> rebase=
>
Pierre-Yves David
phases: prevent rebase to rebase immutable changeset.
r15742 > [phases]
> publish=False
>
Stefano Tortarolo
rebase: allow for rebasing descendants onto ancestors on different named branches...
r13733 > [alias]
> tglog = log -G --template "{rev}: '{desc}' {branches}\n"
> EOF
$ hg init a
$ cd a
Thomas Arendsen Hein
tests: make tests work if directory contains special characters...
r16350 $ hg unbundle "$TESTDIR/bundles/rebase.hg"
Nicolas Dumazet
tests: introduce a rebase bundle to use with rebase tests...
r14118 adding changesets
adding manifests
adding file changes
Nicolas Dumazet
tests: upgrade bundles/rebase.hg to support test-rebase-collapse...
r14119 added 8 changesets with 7 changes to 7 files (+2 heads)
Nicolas Dumazet
tests: introduce a rebase bundle to use with rebase tests...
r14118 (run 'hg heads' to see heads, 'hg merge' to merge)
$ hg up tip
3 files updated, 0 files merged, 0 files removed, 0 files unresolved
Stefano Tortarolo
rebase: allow for rebasing descendants onto ancestors on different named branches...
r13733 $ cd ..
$ hg clone -q -u . a a1
$ cd a1
Steven Brown
rebase: reinstate old-style rev spec support for the source and base (issue3181)...
r15800 $ hg update 3
3 files updated, 0 files merged, 2 files removed, 0 files unresolved
$ hg branch dev-one
marked working directory as branch dev-one
(branches are permanent and global, did you want a bookmark?)
$ hg ci -m 'dev-one named branch'
$ hg update 7
2 files updated, 0 files merged, 3 files removed, 0 files unresolved
$ hg branch dev-two
marked working directory as branch dev-two
Stefano Tortarolo
rebase: allow for rebasing descendants onto ancestors on different named branches...
r13733
$ echo x > x
$ hg add x
Steven Brown
rebase: reinstate old-style rev spec support for the source and base (issue3181)...
r15800 $ hg ci -m 'dev-two named branch'
$ hg tglog
@ 9: 'dev-two named branch' dev-two
|
| o 8: 'dev-one named branch' dev-one
| |
o | 7: 'H'
| |
+---o 6: 'G'
| | |
o | | 5: 'F'
| | |
+---o 4: 'E'
| |
| o 3: 'D'
| |
| o 2: 'C'
| |
| o 1: 'B'
|/
o 0: 'A'
Branch name containing a dash (issue3181)
$ hg rebase -b dev-two -d dev-one --keepbranches
Mads Kiilerich
rebase: show more useful status information while rebasing...
r23517 rebasing 5:24b6387c8c8c "F"
rebasing 6:eea13746799a "G"
rebasing 7:02de42196ebe "H"
rebasing 9:cb039b7cae8e "dev-two named branch" (tip)
Durham Goode
bundles: do not overwrite existing backup bundles (BC)...
r23835 saved backup bundle to $TESTTMP/a1/.hg/strip-backup/24b6387c8c8c-24cb8001-backup.hg (glob)
Steven Brown
rebase: reinstate old-style rev spec support for the source and base (issue3181)...
r15800
$ hg tglog
@ 9: 'dev-two named branch' dev-two
|
o 8: 'H'
|
| o 7: 'G'
|/|
o | 6: 'F'
| |
o | 5: 'dev-one named branch' dev-one
| |
| o 4: 'E'
| |
o | 3: 'D'
| |
o | 2: 'C'
| |
o | 1: 'B'
|/
o 0: 'A'
$ hg rebase -s dev-one -d 0 --keepbranches
Mads Kiilerich
rebase: show more useful status information while rebasing...
r23517 rebasing 5:643fc9128048 "dev-one named branch"
rebasing 6:24de4aff8e28 "F"
rebasing 7:4b988a958030 "G"
rebasing 8:31d0e4ba75e6 "H"
rebasing 9:9e70cd31750f "dev-two named branch" (tip)
Durham Goode
bundles: do not overwrite existing backup bundles (BC)...
r23835 saved backup bundle to $TESTTMP/a1/.hg/strip-backup/643fc9128048-c4ee9ef5-backup.hg (glob)
Stefano Tortarolo
rebase: allow for rebasing descendants onto ancestors on different named branches...
r13733
$ hg tglog
timeless@mozdev.org
rebase: avoid losing branch commits with --keepbranch (issue4835)
r26360 @ 9: 'dev-two named branch' dev-two
Steven Brown
rebase: reinstate old-style rev spec support for the source and base (issue3181)...
r15800 |
timeless@mozdev.org
rebase: avoid losing branch commits with --keepbranch (issue4835)
r26360 o 8: 'H'
Steven Brown
rebase: reinstate old-style rev spec support for the source and base (issue3181)...
r15800 |
timeless@mozdev.org
rebase: avoid losing branch commits with --keepbranch (issue4835)
r26360 | o 7: 'G'
Steven Brown
rebase: reinstate old-style rev spec support for the source and base (issue3181)...
r15800 |/|
timeless@mozdev.org
rebase: avoid losing branch commits with --keepbranch (issue4835)
r26360 o | 6: 'F'
| |
o | 5: 'dev-one named branch' dev-one
Steven Brown
rebase: reinstate old-style rev spec support for the source and base (issue3181)...
r15800 | |
| o 4: 'E'
|/
| o 3: 'D'
| |
| o 2: 'C'
| |
| o 1: 'B'
|/
o 0: 'A'
$ hg update 3
3 files updated, 0 files merged, 3 files removed, 0 files unresolved
timeless@mozdev.org
rebase: avoid losing branch commits with --keepbranch (issue4835)
r26360 $ hg branch -f dev-one
Steven Brown
rebase: reinstate old-style rev spec support for the source and base (issue3181)...
r15800 marked working directory as branch dev-one
$ hg ci -m 'dev-one named branch'
timeless@mozdev.org
rebase: avoid losing branch commits with --keepbranch (issue4835)
r26360 created new head
Steven Brown
rebase: reinstate old-style rev spec support for the source and base (issue3181)...
r15800
$ hg tglog
timeless@mozdev.org
rebase: avoid losing branch commits with --keepbranch (issue4835)
r26360 @ 10: 'dev-one named branch' dev-one
Steven Brown
rebase: reinstate old-style rev spec support for the source and base (issue3181)...
r15800 |
timeless@mozdev.org
rebase: avoid losing branch commits with --keepbranch (issue4835)
r26360 | o 9: 'dev-two named branch' dev-two
| |
| o 8: 'H'
Steven Brown
rebase: reinstate old-style rev spec support for the source and base (issue3181)...
r15800 | |
timeless@mozdev.org
rebase: avoid losing branch commits with --keepbranch (issue4835)
r26360 | | o 7: 'G'
Steven Brown
rebase: reinstate old-style rev spec support for the source and base (issue3181)...
r15800 | |/|
timeless@mozdev.org
rebase: avoid losing branch commits with --keepbranch (issue4835)
r26360 | o | 6: 'F'
| | |
| o | 5: 'dev-one named branch' dev-one
Steven Brown
rebase: reinstate old-style rev spec support for the source and base (issue3181)...
r15800 | | |
| | o 4: 'E'
| |/
o | 3: 'D'
| |
o | 2: 'C'
| |
o | 1: 'B'
|/
o 0: 'A'
$ hg rebase -b 'max(branch("dev-two"))' -d dev-one --keepbranches
timeless@mozdev.org
rebase: avoid losing branch commits with --keepbranch (issue4835)
r26360 rebasing 5:bc8139ee757c "dev-one named branch"
note: rebase of 5:bc8139ee757c created no changes to commit
rebasing 6:42aa3cf0fa7a "F"
rebasing 7:1a1e6f72ec38 "G"
rebasing 8:904590360559 "H"
rebasing 9:59c2e59309fe "dev-two named branch"
saved backup bundle to $TESTTMP/a1/.hg/strip-backup/bc8139ee757c-f11c1080-backup.hg (glob)
Steven Brown
rebase: reinstate old-style rev spec support for the source and base (issue3181)...
r15800
$ hg tglog
Pierre-Yves David
rebase: preserve working directory parent (BC)...
r19925 o 9: 'dev-two named branch' dev-two
Steven Brown
rebase: reinstate old-style rev spec support for the source and base (issue3181)...
r15800 |
o 8: 'H'
|
| o 7: 'G'
|/|
o | 6: 'F'
| |
Pierre-Yves David
rebase: preserve working directory parent (BC)...
r19925 @ | 5: 'dev-one named branch' dev-one
Steven Brown
rebase: reinstate old-style rev spec support for the source and base (issue3181)...
r15800 | |
| o 4: 'E'
| |
o | 3: 'D'
| |
o | 2: 'C'
| |
o | 1: 'B'
|/
o 0: 'A'
$ hg rebase -s 'max(branch("dev-one"))' -d 0 --keepbranches
Mads Kiilerich
rebase: show more useful status information while rebasing...
r23517 rebasing 5:643fc9128048 "dev-one named branch"
timeless@mozdev.org
rebase: avoid losing branch commits with --keepbranch (issue4835)
r26360 rebasing 6:679f28760620 "F"
rebasing 7:549f007a9f5f "G"
rebasing 8:12b2bc666e20 "H"
rebasing 9:71325f8bc082 "dev-two named branch" (tip)
saved backup bundle to $TESTTMP/a1/.hg/strip-backup/643fc9128048-6cdd1a52-backup.hg (glob)
Steven Brown
rebase: reinstate old-style rev spec support for the source and base (issue3181)...
r15800
$ hg tglog
timeless@mozdev.org
rebase: avoid losing branch commits with --keepbranch (issue4835)
r26360 o 9: 'dev-two named branch' dev-two
Stefano Tortarolo
rebase: allow for rebasing descendants onto ancestors on different named branches...
r13733 |
timeless@mozdev.org
rebase: avoid losing branch commits with --keepbranch (issue4835)
r26360 o 8: 'H'
Stefano Tortarolo
rebase: allow for rebasing descendants onto ancestors on different named branches...
r13733 |
timeless@mozdev.org
rebase: avoid losing branch commits with --keepbranch (issue4835)
r26360 | o 7: 'G'
Stefano Tortarolo
rebase: allow for rebasing descendants onto ancestors on different named branches...
r13733 |/|
timeless@mozdev.org
rebase: avoid losing branch commits with --keepbranch (issue4835)
r26360 o | 6: 'F'
| |
@ | 5: 'dev-one named branch' dev-one
Nicolas Dumazet
tests: upgrade bundles/rebase.hg to support test-rebase-collapse...
r14119 | |
| o 4: 'E'
|/
| o 3: 'D'
Stefano Tortarolo
rebase: allow for rebasing descendants onto ancestors on different named branches...
r13733 | |
| o 2: 'C'
Nicolas Dumazet
tests: upgrade bundles/rebase.hg to support test-rebase-collapse...
r14119 | |
Stefano Tortarolo
rebase: allow for rebasing descendants onto ancestors on different named branches...
r13733 | o 1: 'B'
|/
timeless@mozdev.org
rebase: avoid losing branch commits with --keepbranch (issue4835)
r26360 o 0: 'A'
Stefano Tortarolo
rebase: allow for rebasing descendants onto ancestors on different named branches...
r13733
timeless@mozdev.org
rebase: avoid losing branch commits with --keepbranch (issue4835)
r26360 $ hg up -r 0 > /dev/null
Nicolas Dumazet
tests: simplify test-rebase-named-branches...
r14120
Steven Brown
rebase: reinstate old-style rev spec support for the source and base (issue3181)...
r15800 Rebasing descendant onto ancestor across different named branches
Nicolas Dumazet
tests: simplify test-rebase-named-branches...
r14120
timeless@mozdev.org
rebase: avoid losing branch commits with --keepbranch (issue4835)
r26360 $ hg rebase -s 1 -d 9 --keepbranches
Mads Kiilerich
rebase: show more useful status information while rebasing...
r23517 rebasing 1:42ccdea3bb16 "B"
rebasing 2:5fddd98957c8 "C"
rebasing 3:32af7686d403 "D"
Durham Goode
bundles: do not overwrite existing backup bundles (BC)...
r23835 saved backup bundle to $TESTTMP/a1/.hg/strip-backup/42ccdea3bb16-3cb021d3-backup.hg (glob)
Stefano Tortarolo
rebase: allow for rebasing descendants onto ancestors on different named branches...
r13733
$ hg tglog
timeless@mozdev.org
rebase: avoid losing branch commits with --keepbranch (issue4835)
r26360 o 9: 'D'
|
o 8: 'C'
Stefano Tortarolo
rebase: allow for rebasing descendants onto ancestors on different named branches...
r13733 |
timeless@mozdev.org
rebase: avoid losing branch commits with --keepbranch (issue4835)
r26360 o 7: 'B'
Nicolas Dumazet
tests: move rebase-keep-branch into rebase-named-branches...
r14124 |
timeless@mozdev.org
rebase: avoid losing branch commits with --keepbranch (issue4835)
r26360 o 6: 'dev-two named branch' dev-two
Stefano Tortarolo
rebase: allow for rebasing descendants onto ancestors on different named branches...
r13733 |
timeless@mozdev.org
rebase: avoid losing branch commits with --keepbranch (issue4835)
r26360 o 5: 'H'
Nicolas Dumazet
tests: move rebase-keep-branch into rebase-named-branches...
r14124 |
timeless@mozdev.org
rebase: avoid losing branch commits with --keepbranch (issue4835)
r26360 | o 4: 'G'
Stefano Tortarolo
rebase: allow for rebasing descendants onto ancestors on different named branches...
r13733 |/|
timeless@mozdev.org
rebase: avoid losing branch commits with --keepbranch (issue4835)
r26360 o | 3: 'F'
| |
o | 2: 'dev-one named branch' dev-one
Nicolas Dumazet
tests: upgrade bundles/rebase.hg to support test-rebase-collapse...
r14119 | |
Nicolas Dumazet
tests: move rebase-keep-branch into rebase-named-branches...
r14124 | o 1: 'E'
Nicolas Dumazet
tests: upgrade bundles/rebase.hg to support test-rebase-collapse...
r14119 |/
Pierre-Yves David
rebase: preserve working directory parent (BC)...
r19925 @ 0: 'A'
Nicolas Dumazet
tests: move rebase-keep-branch into rebase-named-branches...
r14124
timeless@mozdev.org
rebase: avoid losing branch commits with --keepbranch (issue4835)
r26360 $ hg rebase -s 5 -d 6
Nicolas Dumazet
tests: move rebase-keep-branch into rebase-named-branches...
r14124 abort: source is ancestor of destination
[255]
timeless@mozdev.org
rebase: avoid losing branch commits with --keepbranch (issue4835)
r26360 $ hg rebase -s 6 -d 5
rebasing 6:3944801ae4ea "dev-two named branch"
rebasing 7:3bdb949809d9 "B"
rebasing 8:a0d543090fa4 "C"
rebasing 9:e9f862ce8bad "D" (tip)
saved backup bundle to $TESTTMP/a1/.hg/strip-backup/3944801ae4ea-fb46ed74-backup.hg (glob)
Nicolas Dumazet
tests: move rebase-keep-branch into rebase-named-branches...
r14124
$ hg tglog
timeless@mozdev.org
rebase: avoid losing branch commits with --keepbranch (issue4835)
r26360 o 9: 'D'
|
o 8: 'C'
Nicolas Dumazet
tests: move rebase-keep-branch into rebase-named-branches...
r14124 |
timeless@mozdev.org
rebase: avoid losing branch commits with --keepbranch (issue4835)
r26360 o 7: 'B'
Nicolas Dumazet
tests: move rebase-keep-branch into rebase-named-branches...
r14124 |
timeless@mozdev.org
rebase: avoid losing branch commits with --keepbranch (issue4835)
r26360 o 6: 'dev-two named branch'
Nicolas Dumazet
tests: move rebase-keep-branch into rebase-named-branches...
r14124 |
timeless@mozdev.org
rebase: avoid losing branch commits with --keepbranch (issue4835)
r26360 o 5: 'H'
Nicolas Dumazet
tests: move rebase-keep-branch into rebase-named-branches...
r14124 |
timeless@mozdev.org
rebase: avoid losing branch commits with --keepbranch (issue4835)
r26360 | o 4: 'G'
Nicolas Dumazet
tests: move rebase-keep-branch into rebase-named-branches...
r14124 |/|
timeless@mozdev.org
rebase: avoid losing branch commits with --keepbranch (issue4835)
r26360 o | 3: 'F'
| |
o | 2: 'dev-one named branch' dev-one
Stefano Tortarolo
rebase: allow for rebasing descendants onto ancestors on different named branches...
r13733 | |
Nicolas Dumazet
tests: move rebase-keep-branch into rebase-named-branches...
r14124 | o 1: 'E'
Stefano Tortarolo
rebase: allow for rebasing descendants onto ancestors on different named branches...
r13733 |/
Pierre-Yves David
rebase: preserve working directory parent (BC)...
r19925 @ 0: 'A'
Stefano Tortarolo
rebase: allow for rebasing descendants onto ancestors on different named branches...
r13733
Mads Kiilerich
rebase: tell when reopening a closed branch head...
r21027
Reopen branch by rebase
$ hg up -qr3
$ hg branch -q b
$ hg ci -m 'create b'
$ hg ci -m 'close b' --close
$ hg rebase -b 8 -d b
timeless@mozdev.org
rebase: avoid losing branch commits with --keepbranch (issue4835)
r26360 reopening closed branch head 2b586e70108d
rebasing 5:8e279d293175 "H"
rebasing 6:c57724c84928 "dev-two named branch"
rebasing 7:160b0930ccc6 "B"
rebasing 8:810110211f50 "C"
rebasing 9:e522577ccdbd "D"
saved backup bundle to $TESTTMP/a1/.hg/strip-backup/8e279d293175-b023e27c-backup.hg (glob)
Mads Kiilerich
rebase: tell when reopening a closed branch head...
r21027
Stefano Tortarolo
rebase: allow for rebasing descendants onto ancestors on different named branches...
r13733 $ cd ..
Mads Kiilerich
tests: introduce test for rebasing on named branches with closed heads
r20251
Rebase to other head on branch
Set up a case:
$ hg init case1
$ cd case1
$ touch f
$ hg ci -qAm0
$ hg branch -q b
$ echo >> f
$ hg ci -qAm 'b1'
$ hg up -qr -2
$ hg branch -qf b
$ hg ci -qm 'b2'
$ hg up -qr -3
$ hg branch -q c
$ hg ci -m 'c1'
$ hg tglog
@ 3: 'c1' c
|
| o 2: 'b2' b
|/
| o 1: 'b1' b
|/
o 0: '0'
$ hg clone -q . ../case2
rebase 'b2' to another lower branch head
$ hg up -qr 2
$ hg rebase
Pierre-Yves David
rebase: choose default destination the same way as 'hg merge' (BC)...
r28189 rebasing 2:792845bb77ee "b2"
note: rebase of 2:792845bb77ee created no changes to commit
saved backup bundle to $TESTTMP/case1/.hg/strip-backup/792845bb77ee-627120ee-backup.hg (glob)
Mads Kiilerich
tests: introduce test for rebasing on named branches with closed heads
r20251 $ hg tglog
Pierre-Yves David
rebase: choose default destination the same way as 'hg merge' (BC)...
r28189 o 2: 'c1' c
Mads Kiilerich
tests: introduce test for rebasing on named branches with closed heads
r20251 |
Pierre-Yves David
rebase: choose default destination the same way as 'hg merge' (BC)...
r28189 | @ 1: 'b1' b
Mads Kiilerich
tests: introduce test for rebasing on named branches with closed heads
r20251 |/
o 0: '0'
rebase 'b1' on top of the tip of the branch ('b2') - ignoring the tip branch ('c1')
$ cd ../case2
$ hg up -qr 1
$ hg rebase
Mads Kiilerich
rebase: show more useful status information while rebasing...
r23517 rebasing 1:40039acb7ca5 "b1"
Durham Goode
bundles: do not overwrite existing backup bundles (BC)...
r23835 saved backup bundle to $TESTTMP/case2/.hg/strip-backup/40039acb7ca5-342b72d1-backup.hg (glob)
Mads Kiilerich
tests: introduce test for rebasing on named branches with closed heads
r20251 $ hg tglog
@ 3: 'b1' b
|
| o 2: 'c1' c
| |
o | 1: 'b2' b
|/
o 0: '0'
rebase 'c1' to the branch head 'c2' that is closed
$ hg branch -qf c
$ hg ci -qm 'c2 closed' --close
$ hg up -qr 2
$ hg tglog
Jordi GutiƩrrez Hermoso
log: display closing-branch nodes as "_" (BC)...
r24216 _ 4: 'c2 closed' c
Mads Kiilerich
tests: introduce test for rebasing on named branches with closed heads
r20251 |
o 3: 'b1' b
|
| @ 2: 'c1' c
| |
o | 1: 'b2' b
|/
o 0: '0'
$ hg rebase
Pierre-Yves David
rebase: choose default destination the same way as 'hg merge' (BC)...
r28189 abort: branch 'c' has one head - please rebase to an explicit rev
(run 'hg heads' to see all heads)
[255]
Mads Kiilerich
tests: introduce test for rebasing on named branches with closed heads
r20251 $ hg tglog
Jordi GutiƩrrez Hermoso
log: display closing-branch nodes as "_" (BC)...
r24216 _ 4: 'c2 closed' c
Mads Kiilerich
tests: introduce test for rebasing on named branches with closed heads
r20251 |
o 3: 'b1' b
|
| @ 2: 'c1' c
| |
o | 1: 'b2' b
|/
o 0: '0'
Mads Kiilerich
rebase: allow rebasing children of wd to wd if a new branch has been set (BC)...
r31380 $ hg up -cr 1
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg branch x
marked working directory as branch x
$ hg rebase -r 3:: -d .
rebasing 3:76abc1c6f8c7 "b1"
rebasing 4:8427af5d86f2 "c2 closed" (tip)
note: rebase of 4:8427af5d86f2 created no changes to commit
saved backup bundle to $TESTTMP/case2/.hg/strip-backup/76abc1c6f8c7-cd698d13-backup.hg (glob)
$ hg tglog
o 3: 'b1' x
|
| o 2: 'c1' c
| |
@ | 1: 'b2' b
|/
o 0: '0'
Mads Kiilerich
tests: introduce test for rebasing on named branches with closed heads
r20251 $ cd ..