test-rebase-conflicts.t
435 lines
| 11.0 KiB
| text/troff
|
Tads3Lexer
/ tests / test-rebase-conflicts.t
|
r12608 | $ cat >> $HGRCPATH <<EOF | ||
> [extensions] | ||||
> rebase= | ||||
|
r33034 | > drawdag=$TESTDIR/drawdag.py | ||
|
r12608 | > | ||
|
r15742 | > [phases] | ||
> publish=False | ||||
> | ||||
|
r12608 | > [alias] | ||
|
r18755 | > tglog = log -G --template "{rev}:{phase} '{desc}' {branches} {bookmarks}\n" | ||
|
r12608 | > EOF | ||
$ hg init a | ||||
$ cd a | ||||
$ echo c1 >common | ||||
$ hg add common | ||||
$ hg ci -m C1 | ||||
$ echo c2 >>common | ||||
$ hg ci -m C2 | ||||
$ echo c3 >>common | ||||
$ hg ci -m C3 | ||||
$ hg up -q -C 1 | ||||
$ echo l1 >>extra | ||||
$ hg add extra | ||||
$ hg ci -m L1 | ||||
created new head | ||||
$ sed -e 's/c2/l2/' common > common.new | ||||
$ mv common.new common | ||||
$ hg ci -m L2 | ||||
$ echo l3 >> extra2 | ||||
$ hg add extra2 | ||||
$ hg ci -m L3 | ||||
|
r18755 | $ hg bookmark mybook | ||
|
r12608 | |||
|
r15917 | $ hg phase --force --secret 4 | ||
|
r12608 | $ hg tglog | ||
|
r18755 | @ 5:secret 'L3' mybook | ||
|
r12608 | | | ||
|
r15917 | o 4:secret 'L2' | ||
|
r12608 | | | ||
|
r15917 | o 3:draft 'L1' | ||
|
r12608 | | | ||
|
r15917 | | o 2:draft 'C3' | ||
|
r12608 | |/ | ||
|
r15917 | o 1:draft 'C2' | ||
|
r12608 | | | ||
|
r15917 | o 0:draft 'C1' | ||
|
r12608 | |||
Try to call --continue: | ||||
$ hg rebase --continue | ||||
abort: no rebase in progress | ||||
[255] | ||||
Conflicting rebase: | ||||
$ hg rebase -s 3 -d 2 | ||||
|
r23517 | rebasing 3:3163e20567cc "L1" | ||
rebasing 4:46f0b057b5c0 "L2" | ||||
|
r12608 | merging common | ||
|
r26614 | warning: conflicts while merging common! (edit, then use 'hg resolve --mark') | ||
|
r18933 | unresolved conflicts (see hg resolve, then hg rebase --continue) | ||
|
r18935 | [1] | ||
|
r12608 | |||
|
r33766 | $ hg status --config commands.status.verbose=1 | ||
M common | ||||
? common.orig | ||||
# The repository is in an unfinished *rebase* state. | ||||
# Unresolved merge conflicts: | ||||
# | ||||
# common | ||||
# | ||||
# To mark files as resolved: hg resolve --mark FILE | ||||
|
r38360 | # To continue: hg rebase --continue | ||
# To abort: hg rebase --abort | ||||
|
r33766 | |||
|
r12608 | Try to continue without solving the conflict: | ||
|
r17345 | $ hg rebase --continue | ||
|
r29975 | abort: unresolved merge conflicts (see 'hg help resolve') | ||
|
r12608 | [255] | ||
Conclude rebase: | ||||
$ echo 'resolved merge' >common | ||||
$ hg resolve -m common | ||||
|
r21947 | (no more unresolved files) | ||
|
r27626 | continue: hg rebase --continue | ||
|
r12608 | $ hg rebase --continue | ||
|
r23517 | already rebased 3:3163e20567cc "L1" as 3e046f2ecedb | ||
rebasing 4:46f0b057b5c0 "L2" | ||||
rebasing 5:8029388f38dc "L3" (mybook) | ||||
|
r35394 | saved backup bundle to $TESTTMP/a/.hg/strip-backup/3163e20567cc-5ca4656e-rebase.hg | ||
|
r12608 | |||
$ hg tglog | ||||
|
r18755 | @ 5:secret 'L3' mybook | ||
|
r12608 | | | ||
|
r15917 | o 4:secret 'L2' | ||
|
r12608 | | | ||
|
r15917 | o 3:draft 'L1' | ||
|
r12608 | | | ||
|
r15917 | o 2:draft 'C3' | ||
|
r12608 | | | ||
|
r15917 | o 1:draft 'C2' | ||
|
r12608 | | | ||
|
r15917 | o 0:draft 'C1' | ||
|
r12608 | |||
Check correctness: | ||||
$ hg cat -r 0 common | ||||
c1 | ||||
$ hg cat -r 1 common | ||||
c1 | ||||
c2 | ||||
$ hg cat -r 2 common | ||||
c1 | ||||
c2 | ||||
c3 | ||||
$ hg cat -r 3 common | ||||
c1 | ||||
c2 | ||||
c3 | ||||
$ hg cat -r 4 common | ||||
resolved merge | ||||
$ hg cat -r 5 common | ||||
resolved merge | ||||
|
r18755 | Bookmark stays active after --continue | ||
$ hg bookmarks | ||||
* mybook 5:d67b21408fc0 | ||||
|
r16913 | $ cd .. | ||
|
r19969 | |||
Check that the right ancestors is used while rebasing a merge (issue4041) | ||||
|
r37354 | $ hg init issue4041 | ||
$ cd issue4041 | ||||
$ hg unbundle "$TESTDIR/bundles/issue4041.hg" | ||||
|
r19969 | adding changesets | ||
adding manifests | ||||
adding file changes | ||||
added 11 changesets with 8 changes to 3 files (+1 heads) | ||||
|
r34662 | new changesets 24797d4f68de:2f2496ddf49d | ||
|
r37354 | (run 'hg heads' to see heads) | ||
$ hg up default | ||||
|
r19969 | 2 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||
$ hg log -G | ||||
o changeset: 10:2f2496ddf49d | ||||
|\ branch: f1 | ||||
| | tag: tip | ||||
| | parent: 7:4c9fbe56a16f | ||||
| | parent: 9:e31216eec445 | ||||
| | user: szhang | ||||
| | date: Thu Sep 05 12:59:39 2013 -0400 | ||||
| | summary: merge | ||||
| | | ||||
| o changeset: 9:e31216eec445 | ||||
| | branch: f1 | ||||
| | user: szhang | ||||
| | date: Thu Sep 05 12:59:10 2013 -0400 | ||||
| | summary: more changes to f1 | ||||
| | | ||||
| o changeset: 8:8e4e2c1a07ae | ||||
| |\ branch: f1 | ||||
| | | parent: 2:4bc80088dc6b | ||||
| | | parent: 6:400110238667 | ||||
| | | user: szhang | ||||
| | | date: Thu Sep 05 12:57:59 2013 -0400 | ||||
| | | summary: bad merge | ||||
| | | | ||||
o | | changeset: 7:4c9fbe56a16f | ||||
|/ / branch: f1 | ||||
| | parent: 2:4bc80088dc6b | ||||
| | user: szhang | ||||
| | date: Thu Sep 05 12:54:00 2013 -0400 | ||||
| | summary: changed f1 | ||||
| | | ||||
| o changeset: 6:400110238667 | ||||
| | branch: f2 | ||||
| | parent: 4:12e8ec6bb010 | ||||
| | user: szhang | ||||
| | date: Tue Sep 03 13:58:02 2013 -0400 | ||||
| | summary: changed f2 on f2 | ||||
| | | ||||
| | @ changeset: 5:d79e2059b5c0 | ||||
| | | parent: 3:8a951942e016 | ||||
| | | user: szhang | ||||
| | | date: Tue Sep 03 13:57:39 2013 -0400 | ||||
| | | summary: changed f2 on default | ||||
| | | | ||||
| o | changeset: 4:12e8ec6bb010 | ||||
| |/ branch: f2 | ||||
| | user: szhang | ||||
| | date: Tue Sep 03 13:57:18 2013 -0400 | ||||
| | summary: created f2 branch | ||||
| | | ||||
| o changeset: 3:8a951942e016 | ||||
| | parent: 0:24797d4f68de | ||||
| | user: szhang | ||||
| | date: Tue Sep 03 13:57:11 2013 -0400 | ||||
| | summary: added f2.txt | ||||
| | | ||||
o | changeset: 2:4bc80088dc6b | ||||
| | branch: f1 | ||||
| | user: szhang | ||||
| | date: Tue Sep 03 13:56:20 2013 -0400 | ||||
| | summary: added f1.txt | ||||
| | | ||||
o | changeset: 1:ef53c9e6b608 | ||||
|/ branch: f1 | ||||
| user: szhang | ||||
| date: Tue Sep 03 13:55:26 2013 -0400 | ||||
| summary: created f1 branch | ||||
| | ||||
o changeset: 0:24797d4f68de | ||||
user: szhang | ||||
date: Tue Sep 03 13:55:08 2013 -0400 | ||||
summary: added default.txt | ||||
$ hg rebase -s9 -d2 --debug # use debug to really check merge base used | ||||
|
r29936 | rebase onto 4bc80088dc6b starting from e31216eec445 | ||
|
r35385 | rebasing on disk | ||
|
r31225 | rebase status stored | ||
|
r23517 | rebasing 9:e31216eec445 "more changes to f1" | ||
|
r19969 | future parents are 2 and -1 | ||
update to 2:4bc80088dc6b | ||||
resolving manifests | ||||
branchmerge: False, force: True, partial: False | ||||
ancestor: d79e2059b5c0+, local: d79e2059b5c0+, remote: 4bc80088dc6b | ||||
f2.txt: other deleted -> r | ||||
removing f2.txt | ||||
|
r21391 | f1.txt: remote created -> g | ||
|
r19969 | getting f1.txt | ||
merge against 9:e31216eec445 | ||||
detach base 8:8e4e2c1a07ae | ||||
searching for copies back to rev 3 | ||||
|
r30197 | unmatched files in other (from topological common ancestor): | ||
f2.txt | ||||
|
r19969 | resolving manifests | ||
branchmerge: True, force: True, partial: False | ||||
ancestor: 8e4e2c1a07ae, local: 4bc80088dc6b+, remote: e31216eec445 | ||||
f1.txt: remote is newer -> g | ||||
getting f1.txt | ||||
|
r23749 | committing files: | ||
|
r19969 | f1.txt | ||
|
r23749 | committing manifest | ||
committing changelog | ||||
|
r33140 | updating the branch cache | ||
|
r23519 | rebased as 19c888675e13 | ||
|
r37050 | rebase status stored | ||
|
r23517 | rebasing 10:2f2496ddf49d "merge" (tip) | ||
|
r19969 | future parents are 11 and 7 | ||
|
r32249 | already in destination | ||
|
r19969 | merge against 10:2f2496ddf49d | ||
detach base 9:e31216eec445 | ||||
searching for copies back to rev 3 | ||||
|
r30197 | unmatched files in other (from topological common ancestor): | ||
f2.txt | ||||
|
r19969 | resolving manifests | ||
branchmerge: True, force: True, partial: False | ||||
ancestor: e31216eec445, local: 19c888675e13+, remote: 2f2496ddf49d | ||||
f1.txt: remote is newer -> g | ||||
getting f1.txt | ||||
|
r23749 | committing files: | ||
|
r19969 | f1.txt | ||
|
r23749 | committing manifest | ||
committing changelog | ||||
|
r33140 | updating the branch cache | ||
|
r23519 | rebased as 2a7f09cac94c | ||
|
r37050 | rebase status stored | ||
|
r19969 | rebase merging completed | ||
update back to initial working directory parent | ||||
resolving manifests | ||||
branchmerge: False, force: False, partial: False | ||||
ancestor: 2a7f09cac94c, local: 2a7f09cac94c+, remote: d79e2059b5c0 | ||||
f1.txt: other deleted -> r | ||||
removing f1.txt | ||||
|
r21391 | f2.txt: remote created -> g | ||
|
r19969 | getting f2.txt | ||
|
r25677 | 2 changesets found | ||
|
r19969 | list of changesets: | ||
e31216eec445e44352c5f01588856059466a24c9 | ||||
2f2496ddf49d69b5ef23ad8cf9fb2e0e4faf0ac2 | ||||
|
r36983 | bundle2-output-bundle: "HG20", (1 params) 3 parts total | ||
|
r29593 | bundle2-output-part: "changegroup" (params: 1 mandatory 1 advisory) streamed payload | ||
|
r37920 | bundle2-output-part: "cache:rev-branch-cache" (advisory) streamed payload | ||
|
r33032 | bundle2-output-part: "phase-heads" 24 bytes payload | ||
|
r35394 | saved backup bundle to $TESTTMP/issue4041/.hg/strip-backup/e31216eec445-15f7a814-rebase.hg | ||
|
r19969 | 3 changesets found | ||
list of changesets: | ||||
4c9fbe56a16f30c0d5dcc40ec1a97bbe3325209c | ||||
19c888675e133ab5dff84516926a65672eaf04d9 | ||||
2a7f09cac94c7f4b73ebd5cd1a62d3b2e8e336bf | ||||
|
r36983 | bundle2-output-bundle: "HG20", 3 parts total | ||
|
r29593 | bundle2-output-part: "changegroup" (params: 1 mandatory 1 advisory) streamed payload | ||
|
r37920 | bundle2-output-part: "cache:rev-branch-cache" (advisory) streamed payload | ||
|
r33032 | bundle2-output-part: "phase-heads" 24 bytes payload | ||
|
r19969 | adding branch | ||
|
r26922 | bundle2-input-bundle: with-transaction | ||
|
r29593 | bundle2-input-part: "changegroup" (params: 1 mandatory 1 advisory) supported | ||
|
r19969 | adding changesets | ||
add changeset 4c9fbe56a16f | ||||
add changeset 19c888675e13 | ||||
add changeset 2a7f09cac94c | ||||
adding manifests | ||||
adding file changes | ||||
adding f1.txt revisions | ||||
added 2 changesets with 2 changes to 1 files | ||||
|
r30211 | bundle2-input-part: total payload size 1686 | ||
|
r37920 | bundle2-input-part: "cache:rev-branch-cache" (advisory) supported | ||
|
r36983 | bundle2-input-part: total payload size 74 | ||
|
r36986 | truncating cache/rbc-revs-v1 to 56 | ||
|
r33032 | bundle2-input-part: "phase-heads" supported | ||
bundle2-input-part: total payload size 24 | ||||
|
r36983 | bundle2-input-bundle: 2 parts total | ||
|
r32267 | updating the branch cache | ||
|
r19969 | invalid branchheads cache (served): tip differs | ||
rebase completed | ||||
|
r28072 | |||
Test minimization of merge conflicts | ||||
$ hg up -q null | ||||
$ echo a > a | ||||
$ hg add a | ||||
$ hg commit -q -m 'a' | ||||
$ echo b >> a | ||||
$ hg commit -q -m 'ab' | ||||
$ hg bookmark ab | ||||
$ hg up -q '.^' | ||||
$ echo b >> a | ||||
$ echo c >> a | ||||
$ hg commit -q -m 'abc' | ||||
$ hg rebase -s 7bc217434fc1 -d ab --keep | ||||
rebasing 13:7bc217434fc1 "abc" (tip) | ||||
merging a | ||||
warning: conflicts while merging a! (edit, then use 'hg resolve --mark') | ||||
unresolved conflicts (see hg resolve, then hg rebase --continue) | ||||
[1] | ||||
$ hg diff | ||||
diff -r 328e4ab1f7cc a | ||||
--- a/a Thu Jan 01 00:00:00 1970 +0000 | ||||
+++ b/a * (glob) | ||||
@@ -1,2 +1,6 @@ | ||||
a | ||||
b | ||||
|
r30460 | +<<<<<<< dest: 328e4ab1f7cc ab - test: ab | ||
|
r28072 | +======= | ||
+c | ||||
+>>>>>>> source: 7bc217434fc1 - test: abc | ||||
$ hg rebase --abort | ||||
rebase aborted | ||||
$ hg up -q -C 7bc217434fc1 | ||||
$ hg rebase -s . -d ab --keep -t internal:merge3 | ||||
rebasing 13:7bc217434fc1 "abc" (tip) | ||||
merging a | ||||
warning: conflicts while merging a! (edit, then use 'hg resolve --mark') | ||||
unresolved conflicts (see hg resolve, then hg rebase --continue) | ||||
[1] | ||||
$ hg diff | ||||
diff -r 328e4ab1f7cc a | ||||
--- a/a Thu Jan 01 00:00:00 1970 +0000 | ||||
+++ b/a * (glob) | ||||
@@ -1,2 +1,8 @@ | ||||
a | ||||
|
r30460 | +<<<<<<< dest: 328e4ab1f7cc ab - test: ab | ||
|
r28072 | b | ||
+||||||| base | ||||
+======= | ||||
+b | ||||
+c | ||||
+>>>>>>> source: 7bc217434fc1 - test: abc | ||||
|
r33034 | |||
Test rebase with obsstore turned on and off (issue5606) | ||||
$ cd $TESTTMP | ||||
$ hg init b | ||||
$ cd b | ||||
$ hg debugdrawdag <<'EOS' | ||||
> D | ||||
> | | ||||
> C | ||||
> | | ||||
> B E | ||||
> |/ | ||||
> A | ||||
> EOS | ||||
$ hg update E -q | ||||
$ echo 3 > B | ||||
$ hg commit --amend -m E -A B -q | ||||
|
r34866 | $ hg rebase -r B+D -d . --config experimental.evolution=true | ||
|
r33034 | rebasing 1:112478962961 "B" (B) | ||
merging B | ||||
warning: conflicts while merging B! (edit, then use 'hg resolve --mark') | ||||
unresolved conflicts (see hg resolve, then hg rebase --continue) | ||||
[1] | ||||
$ echo 4 > B | ||||
$ hg resolve -m | ||||
(no more unresolved files) | ||||
continue: hg rebase --continue | ||||
|
r34866 | $ hg rebase --continue --config experimental.evolution=none | ||
|
r33034 | rebasing 1:112478962961 "B" (B) | ||
rebasing 3:f585351a92f8 "D" (D) | ||||
|
r33332 | warning: orphaned descendants detected, not stripping 112478962961 | ||
|
r35394 | saved backup bundle to $TESTTMP/b/.hg/strip-backup/f585351a92f8-e536a9e4-rebase.hg | ||
|
r33034 | |||
$ rm .hg/localtags | ||||
$ hg tglog | ||||
|
r33332 | o 5:draft 'D' | ||
| | ||||
o 4:draft 'B' | ||||
|
r33034 | | | ||
|
r33332 | @ 3:draft 'E' | ||
|
r33034 | | | ||
|
r33332 | | o 2:draft 'C' | ||
| | | ||||
| o 1:draft 'B' | ||||
|/ | ||||
|
r33034 | o 0:draft 'A' | ||