##// END OF EJS Templates
cat: don't prefetch files unless the output requires it...
cat: don't prefetch files unless the output requires it It's a waste to cache lfs blobs when cat'ing the raw data at best, but a hassle debugging when the blob is missing. I'm not sure if there are other commands that have '{data}' for output, and if there's a general way to prefetch on that keyword. It's interesting that the verbose output seems to leak into the JSON output, but that seems like an existing bug.

File last commit:

r40900:4edd427f default
r42678:561cd02c default
Show More
test-rebase-newancestor.t
426 lines | 10.6 KiB | text/troff | Tads3Lexer
/ tests / test-rebase-newancestor.t
Adrian Buehlmann
tests: unify test-rebase*
r12608 $ cat >> $HGRCPATH <<EOF
> [extensions]
> rebase=
Jun Wu
rebase: rewrite core algorithm (issue5578) (issue5630)...
r33783 > drawdag=$TESTDIR/drawdag.py
Adrian Buehlmann
tests: unify test-rebase*
r12608 > [alias]
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 > tglog = log -G --template "{rev}: {node|short} '{desc}' {branches}\n"
Adrian Buehlmann
tests: unify test-rebase*
r12608 > EOF
$ hg init repo
$ cd repo
$ echo A > a
$ echo >> a
$ hg ci -Am A
adding a
$ echo B > a
$ echo >> a
$ hg ci -m B
$ echo C > a
$ echo >> a
$ hg ci -m C
$ hg up -q -C 0
$ echo D >> a
$ hg ci -Am AD
created new head
$ hg tglog
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 @ 3: 3878212183bd 'AD'
Adrian Buehlmann
tests: unify test-rebase*
r12608 |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 | o 2: 30ae917c0e4f 'C'
Adrian Buehlmann
tests: unify test-rebase*
r12608 | |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 | o 1: 0f4f7cb4f549 'B'
Adrian Buehlmann
tests: unify test-rebase*
r12608 |/
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o 0: 1e635d440a73 'A'
Adrian Buehlmann
tests: unify test-rebase*
r12608
$ hg rebase -s 1 -d 3
Mads Kiilerich
rebase: show more useful status information while rebasing...
r23517 rebasing 1:0f4f7cb4f549 "B"
Adrian Buehlmann
tests: unify test-rebase*
r12608 merging a
Mads Kiilerich
rebase: show more useful status information while rebasing...
r23517 rebasing 2:30ae917c0e4f "C"
Adrian Buehlmann
tests: unify test-rebase*
r12608 merging a
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 saved backup bundle to $TESTTMP/repo/.hg/strip-backup/0f4f7cb4f549-82b3b163-rebase.hg
Adrian Buehlmann
tests: unify test-rebase*
r12608
$ hg tglog
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o 3: 25773bc4b4b0 'C'
Adrian Buehlmann
tests: unify test-rebase*
r12608 |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o 2: c09015405f75 'B'
Adrian Buehlmann
tests: unify test-rebase*
r12608 |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 @ 1: 3878212183bd 'AD'
Adrian Buehlmann
tests: unify test-rebase*
r12608 |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o 0: 1e635d440a73 'A'
Adrian Buehlmann
tests: unify test-rebase*
r12608
Mads Kiilerich
tests: add missing trailing 'cd ..'...
r16913
$ cd ..
Mads Kiilerich
tests: add test for rebasing merges with ancestors of the rebase destination...
r23406
Test rebasing of merges with ancestors of the rebase destination - a situation
that often happens when trying to recover from repeated merging with a mainline
branch.
The test case creates a dev branch that contains a couple of merges from the
default branch. When rebasing to the default branch, these merges would be
merges with ancestors on the same branch. The merges _could_ contain some
interesting conflict resolutions or additional changes in the merge commit, but
that is mixed up with the actual merge stuff and there is in general no way to
separate them.
Note: The dev branch contains _no_ changes to f-default. It might be unclear
how rebasing of ancestor merges should be handled, but the current behavior
with spurious prompts for conflicts in files that didn't change seems very
wrong.
$ hg init ancestor-merge
$ cd ancestor-merge
$ touch f-default
$ hg ci -Aqm 'default: create f-default'
$ hg branch -q dev
$ hg ci -qm 'dev: create branch'
$ echo stuff > f-dev
$ hg ci -Aqm 'dev: f-dev stuff'
$ hg up -q default
$ echo stuff > f-default
$ hg ci -m 'default: f-default stuff'
$ hg up -q dev
$ hg merge -q default
$ hg ci -m 'dev: merge default'
$ hg up -q default
$ hg rm f-default
$ hg ci -m 'default: remove f-default'
$ hg up -q dev
$ hg merge -q default
$ hg ci -m 'dev: merge default'
$ hg up -q default
$ echo stuff > f-other
$ hg ci -Aqm 'default: f-other stuff'
$ hg tglog
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 @ 7: e08089805d82 'default: f-other stuff'
Mads Kiilerich
tests: add test for rebasing merges with ancestors of the rebase destination...
r23406 |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 | o 6: 9455ee510502 'dev: merge default' dev
Mads Kiilerich
tests: add test for rebasing merges with ancestors of the rebase destination...
r23406 |/|
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o | 5: 462860db70a1 'default: remove f-default'
Mads Kiilerich
tests: add test for rebasing merges with ancestors of the rebase destination...
r23406 | |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 | o 4: 4b019212aaf6 'dev: merge default' dev
Mads Kiilerich
tests: add test for rebasing merges with ancestors of the rebase destination...
r23406 |/|
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o | 3: f157ecfd2b6b 'default: f-default stuff'
Mads Kiilerich
tests: add test for rebasing merges with ancestors of the rebase destination...
r23406 | |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 | o 2: ec2c14fb2984 'dev: f-dev stuff' dev
Mads Kiilerich
tests: add test for rebasing merges with ancestors of the rebase destination...
r23406 | |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 | o 1: 1d1a643d390e 'dev: create branch' dev
Mads Kiilerich
tests: add test for rebasing merges with ancestors of the rebase destination...
r23406 |/
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o 0: e90e8eb90b6f 'default: create f-default'
Mads Kiilerich
tests: add test for rebasing merges with ancestors of the rebase destination...
r23406
$ hg clone -qU . ../ancestor-merge-2
Full rebase all the way back from branching point:
Siddharth Agarwal
tests: explicitly request changed version in test-rebase-newancestor.t...
r27598 $ hg rebase -r 'only(dev,default)' -d default --config ui.interactive=True << EOF
> c
> EOF
Mads Kiilerich
rebase: show more useful status information while rebasing...
r23517 rebasing 1:1d1a643d390e "dev: create branch"
Martin von Zweigbergk
rebase: clarify that commits that become empty are skipped...
r40900 note: not rebasing 1:1d1a643d390e "dev: create branch", its destination already has all its changes
Mads Kiilerich
rebase: show more useful status information while rebasing...
r23517 rebasing 2:ec2c14fb2984 "dev: f-dev stuff"
rebasing 4:4b019212aaf6 "dev: merge default"
Pulkit Goyal
filemerge: fix the wrong placements of messages in prompt...
r39321 file 'f-default' was deleted in local [dest] but was modified in other [source].
Augie Fackler
merge: improve interactive one-changed one-deleted message (issue5550)...
r39313 What do you want to do?
Siddharth Agarwal
filemerge: add a 'leave unresolved' option to change/delete prompts...
r27163 use (c)hanged version, leave (d)eleted, or leave (u)nresolved? c
Mads Kiilerich
rebase: show more useful status information while rebasing...
r23517 rebasing 6:9455ee510502 "dev: merge default"
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 saved backup bundle to $TESTTMP/ancestor-merge/.hg/strip-backup/1d1a643d390e-43e9e04b-rebase.hg
Mads Kiilerich
tests: add test for rebasing merges with ancestors of the rebase destination...
r23406 $ hg tglog
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o 6: fbc098e72227 'dev: merge default'
Matt Mackall
merge with stable
r23426 |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o 5: eda7b7f46f5d 'dev: merge default'
Mads Kiilerich
tests: add test for rebasing merges with ancestors of the rebase destination...
r23406 |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o 4: 3e075b1c0a40 'dev: f-dev stuff'
Mads Kiilerich
tests: add test for rebasing merges with ancestors of the rebase destination...
r23406 |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 @ 3: e08089805d82 'default: f-other stuff'
Mads Kiilerich
tests: add test for rebasing merges with ancestors of the rebase destination...
r23406 |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o 2: 462860db70a1 'default: remove f-default'
Mads Kiilerich
tests: add test for rebasing merges with ancestors of the rebase destination...
r23406 |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o 1: f157ecfd2b6b 'default: f-default stuff'
Mads Kiilerich
tests: add test for rebasing merges with ancestors of the rebase destination...
r23406 |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o 0: e90e8eb90b6f 'default: create f-default'
Mads Kiilerich
tests: add test for rebasing merges with ancestors of the rebase destination...
r23406
Grafty cherry picking rebasing:
$ cd ../ancestor-merge-2
$ hg phase -fdr0:
Siddharth Agarwal
tests: explicitly request changed version in test-rebase-newancestor.t...
r27598 $ hg rebase -r 'children(only(dev,default))' -d default --config ui.interactive=True << EOF
> c
> EOF
Mads Kiilerich
rebase: show more useful status information while rebasing...
r23517 rebasing 2:ec2c14fb2984 "dev: f-dev stuff"
rebasing 4:4b019212aaf6 "dev: merge default"
Pulkit Goyal
filemerge: fix the wrong placements of messages in prompt...
r39321 file 'f-default' was deleted in local [dest] but was modified in other [source].
Augie Fackler
merge: improve interactive one-changed one-deleted message (issue5550)...
r39313 What do you want to do?
Siddharth Agarwal
filemerge: add a 'leave unresolved' option to change/delete prompts...
r27163 use (c)hanged version, leave (d)eleted, or leave (u)nresolved? c
Mads Kiilerich
rebase: show more useful status information while rebasing...
r23517 rebasing 6:9455ee510502 "dev: merge default"
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 saved backup bundle to $TESTTMP/ancestor-merge-2/.hg/strip-backup/ec2c14fb2984-62d0b222-rebase.hg
Mads Kiilerich
tests: add test for rebasing merges with ancestors of the rebase destination...
r23406 $ hg tglog
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o 7: fbc098e72227 'dev: merge default'
Matt Mackall
merge with stable
r23426 |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o 6: eda7b7f46f5d 'dev: merge default'
Mads Kiilerich
tests: add test for rebasing merges with ancestors of the rebase destination...
r23406 |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o 5: 3e075b1c0a40 'dev: f-dev stuff'
Mads Kiilerich
tests: add test for rebasing merges with ancestors of the rebase destination...
r23406 |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o 4: e08089805d82 'default: f-other stuff'
Mads Kiilerich
tests: add test for rebasing merges with ancestors of the rebase destination...
r23406 |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o 3: 462860db70a1 'default: remove f-default'
Mads Kiilerich
tests: add test for rebasing merges with ancestors of the rebase destination...
r23406 |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o 2: f157ecfd2b6b 'default: f-default stuff'
Mads Kiilerich
tests: add test for rebasing merges with ancestors of the rebase destination...
r23406 |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 | o 1: 1d1a643d390e 'dev: create branch' dev
Mads Kiilerich
tests: add test for rebasing merges with ancestors of the rebase destination...
r23406 |/
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o 0: e90e8eb90b6f 'default: create f-default'
Mads Kiilerich
tests: add test for rebasing merges with ancestors of the rebase destination...
r23406
Mads Kiilerich
tests: test coverage of parent order with p1 outside rebase set
r23407 $ cd ..
Test order of parents of rebased merged with un-rebased changes as p1.
$ hg init parentorder
$ cd parentorder
$ touch f
$ hg ci -Aqm common
$ touch change
$ hg ci -Aqm change
$ touch target
$ hg ci -Aqm target
$ hg up -qr 0
$ touch outside
$ hg ci -Aqm outside
$ hg merge -qr 1
$ hg ci -m 'merge p1 3=outside p2 1=ancestor'
$ hg par
changeset: 4:6990226659be
tag: tip
parent: 3:f59da8fc0fcf
parent: 1:dd40c13f7a6f
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: merge p1 3=outside p2 1=ancestor
$ hg up -qr 1
$ hg merge -qr 3
$ hg ci -qm 'merge p1 1=ancestor p2 3=outside'
$ hg par
changeset: 5:a57575f79074
tag: tip
parent: 1:dd40c13f7a6f
parent: 3:f59da8fc0fcf
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: merge p1 1=ancestor p2 3=outside
$ hg tglog
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 @ 5: a57575f79074 'merge p1 1=ancestor p2 3=outside'
Mads Kiilerich
tests: test coverage of parent order with p1 outside rebase set
r23407 |\
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 +---o 4: 6990226659be 'merge p1 3=outside p2 1=ancestor'
Mads Kiilerich
tests: test coverage of parent order with p1 outside rebase set
r23407 | |/
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 | o 3: f59da8fc0fcf 'outside'
Mads Kiilerich
tests: test coverage of parent order with p1 outside rebase set
r23407 | |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 +---o 2: a60552eb93fb 'target'
Mads Kiilerich
tests: test coverage of parent order with p1 outside rebase set
r23407 | |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o | 1: dd40c13f7a6f 'change'
Mads Kiilerich
tests: test coverage of parent order with p1 outside rebase set
r23407 |/
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o 0: 02f0f58d5300 'common'
Mads Kiilerich
tests: test coverage of parent order with p1 outside rebase set
r23407
$ hg rebase -r 4 -d 2
Mads Kiilerich
rebase: show more useful status information while rebasing...
r23517 rebasing 4:6990226659be "merge p1 3=outside p2 1=ancestor"
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 saved backup bundle to $TESTTMP/parentorder/.hg/strip-backup/6990226659be-4d67a0d3-rebase.hg
Mads Kiilerich
tests: test coverage of parent order with p1 outside rebase set
r23407 $ hg tip
changeset: 5:cca50676b1c5
tag: tip
parent: 2:a60552eb93fb
parent: 3:f59da8fc0fcf
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: merge p1 3=outside p2 1=ancestor
$ hg rebase -r 4 -d 2
Mads Kiilerich
rebase: show more useful status information while rebasing...
r23517 rebasing 4:a57575f79074 "merge p1 1=ancestor p2 3=outside"
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 saved backup bundle to $TESTTMP/parentorder/.hg/strip-backup/a57575f79074-385426e5-rebase.hg
Mads Kiilerich
tests: test coverage of parent order with p1 outside rebase set
r23407 $ hg tip
changeset: 5:f9daf77ffe76
tag: tip
parent: 2:a60552eb93fb
parent: 3:f59da8fc0fcf
user: test
date: Thu Jan 01 00:00:00 1970 +0000
summary: merge p1 1=ancestor p2 3=outside
$ hg tglog
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 @ 5: f9daf77ffe76 'merge p1 1=ancestor p2 3=outside'
Mads Kiilerich
tests: test coverage of parent order with p1 outside rebase set
r23407 |\
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 +---o 4: cca50676b1c5 'merge p1 3=outside p2 1=ancestor'
Mads Kiilerich
tests: test coverage of parent order with p1 outside rebase set
r23407 | |/
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 | o 3: f59da8fc0fcf 'outside'
Mads Kiilerich
tests: test coverage of parent order with p1 outside rebase set
r23407 | |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o | 2: a60552eb93fb 'target'
Mads Kiilerich
tests: test coverage of parent order with p1 outside rebase set
r23407 | |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o | 1: dd40c13f7a6f 'change'
Mads Kiilerich
tests: test coverage of parent order with p1 outside rebase set
r23407 |/
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o 0: 02f0f58d5300 'common'
Mads Kiilerich
tests: test coverage of parent order with p1 outside rebase set
r23407
Mads Kiilerich
tests: test rebase of merge of target ancestors
r23408 rebase of merge of ancestors
$ hg up -qr 2
$ hg merge -qr 3
$ echo 'other change while merging future "rebase ancestors"' > other
$ hg ci -Aqm 'merge rebase ancestors'
$ hg rebase -d 5 -v
Mads Kiilerich
rebase: show more useful status information while rebasing...
r23517 rebasing 6:4c5f12f25ebe "merge rebase ancestors" (tip)
Mads Kiilerich
tests: test rebase of merge of target ancestors
r23408 resolving manifests
removing other
note: merging f9daf77ffe76+ and 4c5f12f25ebe using bids from ancestors a60552eb93fb and f59da8fc0fcf
calculating bids for ancestor a60552eb93fb
resolving manifests
calculating bids for ancestor f59da8fc0fcf
resolving manifests
auction for merging merge bids
other: consensus for g
end of auction
getting other
Mads Kiilerich
localrepo: show headline notes in commitctx before showing filenames...
r23749 committing files:
Mads Kiilerich
tests: test rebase of merge of target ancestors
r23408 other
Mads Kiilerich
localrepo: show headline notes in commitctx before showing filenames...
r23749 committing manifest
committing changelog
Mads Kiilerich
tests: test rebase of merge of target ancestors
r23408 rebase merging completed
1 changesets found
Mads Kiilerich
bundle: when verbose, show what takes up the space in the generated bundle...
r23748 uncompressed size of bundle content:
Pierre-Yves David
changegroup: skip delta when the underlying revlog do not use them...
r30211 199 (changelog)
Pierre-Yves David
test: use generaldelta in 'test-rebase-newancestors.t'...
r26928 216 (manifests)
182 other
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 saved backup bundle to $TESTTMP/parentorder/.hg/strip-backup/4c5f12f25ebe-f46990e5-rebase.hg
Mads Kiilerich
tests: test rebase of merge of target ancestors
r23408 1 changesets found
Mads Kiilerich
bundle: when verbose, show what takes up the space in the generated bundle...
r23748 uncompressed size of bundle content:
Pierre-Yves David
changegroup: skip delta when the underlying revlog do not use them...
r30211 254 (changelog)
Pierre-Yves David
test: use generaldelta in 'test-rebase-newancestors.t'...
r26928 167 (manifests)
182 other
Mads Kiilerich
tests: test rebase of merge of target ancestors
r23408 adding branch
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files
rebase completed
$ hg tglog
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 @ 6: 113755df812b 'merge rebase ancestors'
Mads Kiilerich
tests: test rebase of merge of target ancestors
r23408 |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o 5: f9daf77ffe76 'merge p1 1=ancestor p2 3=outside'
Mads Kiilerich
tests: test rebase of merge of target ancestors
r23408 |\
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 +---o 4: cca50676b1c5 'merge p1 3=outside p2 1=ancestor'
Mads Kiilerich
tests: test rebase of merge of target ancestors
r23408 | |/
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 | o 3: f59da8fc0fcf 'outside'
Mads Kiilerich
tests: test rebase of merge of target ancestors
r23408 | |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o | 2: a60552eb93fb 'target'
Mads Kiilerich
tests: test rebase of merge of target ancestors
r23408 | |
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o | 1: dd40c13f7a6f 'change'
Mads Kiilerich
tests: test rebase of merge of target ancestors
r23408 |/
Phil Cohen
tests: add commit hashes to log commands in rebase tests...
r35386 o 0: 02f0f58d5300 'common'
Mads Kiilerich
tests: test rebase of merge of target ancestors
r23408
Jun Wu
rebase: rewrite core algorithm (issue5578) (issue5630)...
r33783 Due to the limitation of 3-way merge algorithm (1 merge base), rebasing a merge
may include unwanted content:
$ hg init $TESTTMP/dual-merge-base1
$ cd $TESTTMP/dual-merge-base1
$ hg debugdrawdag <<'EOS'
> F
> /|
> D E
> | |
> B C
> |/
> A Z
> |/
> R
> EOS
$ hg rebase -r D+E+F -d Z
rebasing 5:5f2c926dfecf "D" (D)
rebasing 6:b296604d9846 "E" (E)
rebasing 7:caa9781e507d "F" (F tip)
Jun Wu
rebase: choose merge base without unwanted revisions...
r33863 abort: rebasing 7:caa9781e507d will include unwanted changes from 4:d6003a550c2c or 3:c1e6b162678d
[255]
Jun Wu
rebase: rewrite core algorithm (issue5578) (issue5630)...
r33783
The warning does not get printed if there is no unwanted change detected:
$ hg init $TESTTMP/dual-merge-base2
$ cd $TESTTMP/dual-merge-base2
$ hg debugdrawdag <<'EOS'
> D
> /|
> B C
> |/
> A Z
> |/
> R
> EOS
$ hg rebase -r B+C+D -d Z
rebasing 3:c1e6b162678d "B" (B)
rebasing 4:d6003a550c2c "C" (C)
rebasing 5:c8f78076273e "D" (D tip)
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 saved backup bundle to $TESTTMP/dual-merge-base2/.hg/strip-backup/d6003a550c2c-6f1424b6-rebase.hg
Jun Wu
rebase: rewrite core algorithm (issue5578) (issue5630)...
r33783 $ hg manifest -r 'desc(D)'
B
C
R
Z
The merge base could be different from old p1 (changed parent becomes new p1):
$ hg init $TESTTMP/chosen-merge-base1
$ cd $TESTTMP/chosen-merge-base1
$ hg debugdrawdag <<'EOS'
> F
> /|
> D E
> | |
> B C Z
> EOS
$ hg rebase -r D+F -d Z
rebasing 3:004dc1679908 "D" (D)
rebasing 5:4be4cbf6f206 "F" (F tip)
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 saved backup bundle to $TESTTMP/chosen-merge-base1/.hg/strip-backup/004dc1679908-06a66a3c-rebase.hg
Jun Wu
rebase: rewrite core algorithm (issue5578) (issue5630)...
r33783 $ hg manifest -r 'desc(F)'
C
D
E
Z
$ hg log -r `hg log -r 'desc(F)' -T '{p1node}'` -T '{desc}\n'
D
$ hg init $TESTTMP/chosen-merge-base2
$ cd $TESTTMP/chosen-merge-base2
$ hg debugdrawdag <<'EOS'
> F
> /|
> D E
> | |
> B C Z
> EOS
$ hg rebase -r E+F -d Z
rebasing 4:974e4943c210 "E" (E)
rebasing 5:4be4cbf6f206 "F" (F tip)
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 saved backup bundle to $TESTTMP/chosen-merge-base2/.hg/strip-backup/974e4943c210-b2874da5-rebase.hg
Jun Wu
rebase: rewrite core algorithm (issue5578) (issue5630)...
r33783 $ hg manifest -r 'desc(F)'
B
D
E
Z
$ hg log -r `hg log -r 'desc(F)' -T '{p1node}'` -T '{desc}\n'
E