test-merge-criss-cross.t
450 lines
| 12.0 KiB
| text/troff
|
Tads3Lexer
/ tests / test-merge-criss-cross.t
Mads Kiilerich
|
r20636 | Criss cross merging | ||
$ hg init criss-cross | ||||
$ cd criss-cross | ||||
$ echo '0 base' > f1 | ||||
$ echo '0 base' > f2 | ||||
$ hg ci -Aqm '0 base' | ||||
$ echo '1 first change' > f1 | ||||
$ hg ci -m '1 first change f1' | ||||
$ hg up -qr0 | ||||
$ echo '2 first change' > f2 | ||||
$ hg ci -qm '2 first change f2' | ||||
$ hg merge -qr 1 | ||||
$ hg ci -m '3 merge' | ||||
$ hg up -qr2 | ||||
$ hg merge -qr1 | ||||
$ hg ci -qm '4 merge' | ||||
$ echo '5 second change' > f1 | ||||
$ hg ci -m '5 second change f1' | ||||
Mads Kiilerich
|
r21125 | $ hg up -r3 | ||
Martin von Zweigbergk
|
r42330 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||
Mads Kiilerich
|
r20636 | $ echo '6 second change' > f2 | ||
$ hg ci -m '6 second change f2' | ||||
$ hg log -G | ||||
Martin von Zweigbergk
|
r42330 | @ changeset: 6:3b08d01b0ab5 | ||
Mads Kiilerich
|
r20636 | | tag: tip | ||
Martin von Zweigbergk
|
r42330 | | parent: 3:cf89f02107e5 | ||
Mads Kiilerich
|
r20636 | | user: test | ||
| date: Thu Jan 01 00:00:00 1970 +0000 | ||||
| summary: 6 second change f2 | ||||
| | ||||
Martin von Zweigbergk
|
r42330 | | o changeset: 5:adfe50279922 | ||
Mads Kiilerich
|
r20636 | | | user: test | ||
| | date: Thu Jan 01 00:00:00 1970 +0000 | ||||
| | summary: 5 second change f1 | ||||
| | | ||||
Martin von Zweigbergk
|
r42330 | | o changeset: 4:7d3e55501ae6 | ||
| |\ parent: 2:40663881a6dd | ||||
Mads Kiilerich
|
r20636 | | | | parent: 1:0f6b37dbe527 | ||
| | | user: test | ||||
| | | date: Thu Jan 01 00:00:00 1970 +0000 | ||||
| | | summary: 4 merge | ||||
| | | | ||||
Martin von Zweigbergk
|
r42330 | o---+ changeset: 3:cf89f02107e5 | ||
| | | parent: 2:40663881a6dd | ||||
Mads Kiilerich
|
r20636 | |/ / parent: 1:0f6b37dbe527 | ||
| | user: test | ||||
| | date: Thu Jan 01 00:00:00 1970 +0000 | ||||
| | summary: 3 merge | ||||
| | | ||||
Martin von Zweigbergk
|
r42330 | | o changeset: 2:40663881a6dd | ||
Mads Kiilerich
|
r20636 | | | parent: 0:40494bf2444c | ||
| | user: test | ||||
| | date: Thu Jan 01 00:00:00 1970 +0000 | ||||
| | summary: 2 first change f2 | ||||
| | | ||||
o | changeset: 1:0f6b37dbe527 | ||||
|/ user: test | ||||
| date: Thu Jan 01 00:00:00 1970 +0000 | ||||
| summary: 1 first change f1 | ||||
| | ||||
o changeset: 0:40494bf2444c | ||||
user: test | ||||
date: Thu Jan 01 00:00:00 1970 +0000 | ||||
summary: 0 base | ||||
Mads Kiilerich
|
r22672 | $ hg merge -v --debug --tool internal:dump 5 --config merge.preferancestor='!' | ||
Martin von Zweigbergk
|
r42330 | note: using 0f6b37dbe527 as ancestor of 3b08d01b0ab5 and adfe50279922 | ||
alternatively, use --config merge.preferancestor=40663881a6dd | ||||
Mads Kiilerich
|
r20636 | resolving manifests | ||
branchmerge: True, force: False, partial: False | ||||
Martin von Zweigbergk
|
r42330 | ancestor: 0f6b37dbe527, local: 3b08d01b0ab5+, remote: adfe50279922 | ||
Mads Kiilerich
|
r21391 | preserving f2 for resolve of f2 | ||
Mads Kiilerich
|
r20636 | f1: remote is newer -> g | ||
getting f1 | ||||
Siddharth Agarwal
|
r26618 | f2: versions differ -> m (premerge) | ||
Siddharth Agarwal
|
r27161 | picked tool ':dump' for f2 (binary False symlink False changedelete False) | ||
Mads Kiilerich
|
r20636 | merging f2 | ||
Martin von Zweigbergk
|
r42330 | my f2@3b08d01b0ab5+ other f2@adfe50279922 ancestor f2@0f6b37dbe527 | ||
Siddharth Agarwal
|
r26618 | f2: versions differ -> m (merge) | ||
Siddharth Agarwal
|
r27161 | picked tool ':dump' for f2 (binary False symlink False changedelete False) | ||
Martin von Zweigbergk
|
r42330 | my f2@3b08d01b0ab5+ other f2@adfe50279922 ancestor f2@0f6b37dbe527 | ||
1 files updated, 0 files merged, 0 files removed, 1 files unresolved | ||||
Pulkit Goyal
|
r35722 | use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon | ||
Mads Kiilerich
|
r20636 | [1] | ||
Martin von Zweigbergk
|
r42330 | $ f --dump * | ||
Mads Kiilerich
|
r30855 | f1: | ||
>>> | ||||
Mads Kiilerich
|
r20636 | 5 second change | ||
Mads Kiilerich
|
r30855 | <<< | ||
f2: | ||||
>>> | ||||
Mads Kiilerich
|
r20636 | 6 second change | ||
Mads Kiilerich
|
r30855 | <<< | ||
f2.base: | ||||
>>> | ||||
Mads Kiilerich
|
r20636 | 0 base | ||
Mads Kiilerich
|
r30855 | <<< | ||
f2.local: | ||||
>>> | ||||
Mads Kiilerich
|
r20636 | 6 second change | ||
Mads Kiilerich
|
r30855 | <<< | ||
f2.orig: | ||||
>>> | ||||
Mads Kiilerich
|
r20636 | 6 second change | ||
Mads Kiilerich
|
r30855 | <<< | ||
f2.other: | ||||
>>> | ||||
Mads Kiilerich
|
r20636 | 2 first change | ||
Mads Kiilerich
|
r30855 | <<< | ||
Mads Kiilerich
|
r20636 | |||
Mads Kiilerich
|
r21126 | $ hg up -qC . | ||
$ hg merge -v --tool internal:dump 5 --config merge.preferancestor="null 40663881 3b08d" | ||||
Martin von Zweigbergk
|
r42330 | note: using 40663881a6dd as ancestor of 3b08d01b0ab5 and adfe50279922 | ||
alternatively, use --config merge.preferancestor=0f6b37dbe527 | ||||
Mads Kiilerich
|
r21126 | resolving manifests | ||
Martin von Zweigbergk
|
r42330 | merging f1 | ||
0 files updated, 0 files merged, 0 files removed, 1 files unresolved | ||||
Pulkit Goyal
|
r35722 | use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon | ||
Mads Kiilerich
|
r21126 | [1] | ||
Mads Kiilerich
|
r21128 | Redo merge with merge.preferancestor="*" to enable bid merge | ||
$ rm f* | ||||
$ hg up -qC . | ||||
$ hg merge -v --debug --tool internal:dump 5 --config merge.preferancestor="*" | ||||
Martin von Zweigbergk
|
r42330 | note: merging 3b08d01b0ab5+ and adfe50279922 using bids from ancestors 0f6b37dbe527 and 40663881a6dd | ||
Mads Kiilerich
|
r21128 | |||
calculating bids for ancestor 0f6b37dbe527 | ||||
resolving manifests | ||||
branchmerge: True, force: False, partial: False | ||||
Martin von Zweigbergk
|
r42330 | ancestor: 0f6b37dbe527, local: 3b08d01b0ab5+, remote: adfe50279922 | ||
Mads Kiilerich
|
r21269 | f1: remote is newer -> g | ||
f2: versions differ -> m | ||||
Mads Kiilerich
|
r21128 | |||
Martin von Zweigbergk
|
r42330 | calculating bids for ancestor 40663881a6dd | ||
Mads Kiilerich
|
r21128 | resolving manifests | ||
branchmerge: True, force: False, partial: False | ||||
Martin von Zweigbergk
|
r42330 | ancestor: 40663881a6dd, local: 3b08d01b0ab5+, remote: adfe50279922 | ||
Martin von Zweigbergk
|
r23638 | f1: versions differ -> m | ||
Martin von Zweigbergk
|
r23482 | f2: remote unchanged -> k | ||
Mads Kiilerich
|
r21128 | |||
auction for merging merge bids | ||||
f1: picking 'get' action | ||||
f2: picking 'keep' action | ||||
end of auction | ||||
f1: remote is newer -> g | ||||
getting f1 | ||||
Martin von Zweigbergk
|
r23482 | f2: remote unchanged -> k | ||
Martin von Zweigbergk
|
r42330 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||
Mads Kiilerich
|
r21128 | (branch merge, don't forget to commit) | ||
Martin von Zweigbergk
|
r42330 | $ f --dump * | ||
Mads Kiilerich
|
r30855 | f1: | ||
>>> | ||||
Mads Kiilerich
|
r21128 | 5 second change | ||
Mads Kiilerich
|
r30855 | <<< | ||
f2: | ||||
>>> | ||||
Mads Kiilerich
|
r21128 | 6 second change | ||
Mads Kiilerich
|
r30855 | <<< | ||
Mads Kiilerich
|
r21128 | |||
The other way around: | ||||
$ hg up -C -r5 | ||||
Martin von Zweigbergk
|
r42330 | 2 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||
Mads Kiilerich
|
r21128 | $ hg merge -v --debug --config merge.preferancestor="*" | ||
Martin von Zweigbergk
|
r42330 | note: merging adfe50279922+ and 3b08d01b0ab5 using bids from ancestors 0f6b37dbe527 and 40663881a6dd | ||
Mads Kiilerich
|
r21128 | |||
calculating bids for ancestor 0f6b37dbe527 | ||||
resolving manifests | ||||
branchmerge: True, force: False, partial: False | ||||
Martin von Zweigbergk
|
r42330 | ancestor: 0f6b37dbe527, local: adfe50279922+, remote: 3b08d01b0ab5 | ||
Martin von Zweigbergk
|
r23482 | f1: remote unchanged -> k | ||
Mads Kiilerich
|
r21269 | f2: versions differ -> m | ||
Mads Kiilerich
|
r21128 | |||
Martin von Zweigbergk
|
r42330 | calculating bids for ancestor 40663881a6dd | ||
Mads Kiilerich
|
r21128 | resolving manifests | ||
branchmerge: True, force: False, partial: False | ||||
Martin von Zweigbergk
|
r42330 | ancestor: 40663881a6dd, local: adfe50279922+, remote: 3b08d01b0ab5 | ||
Martin von Zweigbergk
|
r23638 | f1: versions differ -> m | ||
Mads Kiilerich
|
r21391 | f2: remote is newer -> g | ||
Mads Kiilerich
|
r21128 | |||
auction for merging merge bids | ||||
f1: picking 'keep' action | ||||
f2: picking 'get' action | ||||
end of auction | ||||
Mads Kiilerich
|
r21389 | f2: remote is newer -> g | ||
Mads Kiilerich
|
r21128 | getting f2 | ||
Martin von Zweigbergk
|
r23482 | f1: remote unchanged -> k | ||
Martin von Zweigbergk
|
r42330 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||
Mads Kiilerich
|
r21128 | (branch merge, don't forget to commit) | ||
Martin von Zweigbergk
|
r42330 | $ f --dump * | ||
Mads Kiilerich
|
r30855 | f1: | ||
>>> | ||||
Mads Kiilerich
|
r21128 | 5 second change | ||
Mads Kiilerich
|
r30855 | <<< | ||
f2: | ||||
>>> | ||||
Mads Kiilerich
|
r21128 | 6 second change | ||
Mads Kiilerich
|
r30855 | <<< | ||
Mads Kiilerich
|
r21128 | |||
Verify how the output looks and and how verbose it is: | ||||
$ hg up -qC | ||||
Mads Kiilerich
|
r22672 | $ hg merge | ||
Martin von Zweigbergk
|
r42330 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||
Mads Kiilerich
|
r21128 | (branch merge, don't forget to commit) | ||
Pierre-Yves David
|
r28065 | $ hg up -qC tip | ||
Mads Kiilerich
|
r22672 | $ hg merge -v | ||
Martin von Zweigbergk
|
r42330 | note: merging 3b08d01b0ab5+ and adfe50279922 using bids from ancestors 0f6b37dbe527 and 40663881a6dd | ||
Mads Kiilerich
|
r21128 | |||
calculating bids for ancestor 0f6b37dbe527 | ||||
resolving manifests | ||||
Martin von Zweigbergk
|
r42330 | calculating bids for ancestor 40663881a6dd | ||
Mads Kiilerich
|
r21128 | resolving manifests | ||
auction for merging merge bids | ||||
f1: picking 'get' action | ||||
f2: picking 'keep' action | ||||
end of auction | ||||
getting f1 | ||||
Martin von Zweigbergk
|
r42330 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||
Mads Kiilerich
|
r21128 | (branch merge, don't forget to commit) | ||
$ hg up -qC | ||||
$ hg merge -v --debug --config merge.preferancestor="*" | ||||
Martin von Zweigbergk
|
r42330 | note: merging 3b08d01b0ab5+ and adfe50279922 using bids from ancestors 0f6b37dbe527 and 40663881a6dd | ||
Mads Kiilerich
|
r21128 | |||
calculating bids for ancestor 0f6b37dbe527 | ||||
resolving manifests | ||||
branchmerge: True, force: False, partial: False | ||||
Martin von Zweigbergk
|
r42330 | ancestor: 0f6b37dbe527, local: 3b08d01b0ab5+, remote: adfe50279922 | ||
Mads Kiilerich
|
r21269 | f1: remote is newer -> g | ||
f2: versions differ -> m | ||||
Mads Kiilerich
|
r21128 | |||
Martin von Zweigbergk
|
r42330 | calculating bids for ancestor 40663881a6dd | ||
Mads Kiilerich
|
r21128 | resolving manifests | ||
branchmerge: True, force: False, partial: False | ||||
Martin von Zweigbergk
|
r42330 | ancestor: 40663881a6dd, local: 3b08d01b0ab5+, remote: adfe50279922 | ||
Martin von Zweigbergk
|
r23638 | f1: versions differ -> m | ||
Martin von Zweigbergk
|
r23482 | f2: remote unchanged -> k | ||
Mads Kiilerich
|
r21128 | |||
auction for merging merge bids | ||||
f1: picking 'get' action | ||||
f2: picking 'keep' action | ||||
end of auction | ||||
f1: remote is newer -> g | ||||
getting f1 | ||||
Martin von Zweigbergk
|
r23482 | f2: remote unchanged -> k | ||
Martin von Zweigbergk
|
r42330 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||
Mads Kiilerich
|
r21128 | (branch merge, don't forget to commit) | ||
Sean Farley
|
r38644 | Test the greatest common ancestor returning multiple changesets | ||
$ hg log -r 'heads(commonancestors(head()))' | ||||
changeset: 1:0f6b37dbe527 | ||||
user: test | ||||
date: Thu Jan 01 00:00:00 1970 +0000 | ||||
summary: 1 first change f1 | ||||
Martin von Zweigbergk
|
r42330 | changeset: 2:40663881a6dd | ||
Sean Farley
|
r38644 | parent: 0:40494bf2444c | ||
user: test | ||||
date: Thu Jan 01 00:00:00 1970 +0000 | ||||
summary: 2 first change f2 | ||||
Mads Kiilerich
|
r20636 | $ cd .. | ||
Mads Kiilerich
|
r21169 | |||
http://stackoverflow.com/questions/9350005/how-do-i-specify-a-merge-base-to-use-in-a-hg-merge/9430810 | ||||
$ hg init ancestor-merging | ||||
$ cd ancestor-merging | ||||
$ echo a > x | ||||
$ hg commit -A -m a x | ||||
$ hg update -q 0 | ||||
$ echo b >> x | ||||
$ hg commit -m b | ||||
$ hg update -q 0 | ||||
$ echo c >> x | ||||
$ hg commit -qm c | ||||
$ hg update -q 1 | ||||
$ hg merge -q --tool internal:local 2 | ||||
$ echo c >> x | ||||
$ hg commit -m bc | ||||
$ hg update -q 2 | ||||
$ hg merge -q --tool internal:local 1 | ||||
$ echo b >> x | ||||
$ hg commit -qm cb | ||||
Mads Kiilerich
|
r22672 | $ hg merge --config merge.preferancestor='!' | ||
Mads Kiilerich
|
r21169 | note: using 70008a2163f6 as ancestor of 0d355fdef312 and 4b8b546a3eef | ||
alternatively, use --config merge.preferancestor=b211bbc6eb3c | ||||
merging x | ||||
0 files updated, 1 files merged, 0 files removed, 0 files unresolved | ||||
(branch merge, don't forget to commit) | ||||
$ cat x | ||||
a | ||||
c | ||||
b | ||||
c | ||||
$ hg up -qC . | ||||
$ hg merge --config merge.preferancestor=b211bbc6eb3c | ||||
note: using b211bbc6eb3c as ancestor of 0d355fdef312 and 4b8b546a3eef | ||||
alternatively, use --config merge.preferancestor=70008a2163f6 | ||||
merging x | ||||
0 files updated, 1 files merged, 0 files removed, 0 files unresolved | ||||
(branch merge, don't forget to commit) | ||||
$ cat x | ||||
a | ||||
b | ||||
c | ||||
b | ||||
$ hg up -qC . | ||||
$ hg merge -v --config merge.preferancestor="*" | ||||
Mads Kiilerich
|
r21171 | note: merging 0d355fdef312+ and 4b8b546a3eef using bids from ancestors 70008a2163f6 and b211bbc6eb3c | ||
Mads Kiilerich
|
r21169 | |||
calculating bids for ancestor 70008a2163f6 | ||||
resolving manifests | ||||
calculating bids for ancestor b211bbc6eb3c | ||||
resolving manifests | ||||
auction for merging merge bids | ||||
Mads Kiilerich
|
r21172 | x: multiple bids for merge action: | ||
versions differ -> m | ||||
versions differ -> m | ||||
Mads Kiilerich
|
r21170 | x: ambiguous merge - picked m action | ||
Mads Kiilerich
|
r21169 | end of auction | ||
merging x | ||||
0 files updated, 1 files merged, 0 files removed, 0 files unresolved | ||||
(branch merge, don't forget to commit) | ||||
$ cat x | ||||
a | ||||
c | ||||
b | ||||
c | ||||
Mads Kiilerich
|
r22180 | Verify that the old context ancestor works with / despite preferancestor: | ||
$ hg log -r 'ancestor(head())' --config merge.preferancestor=1 -T '{rev}\n' | ||||
1 | ||||
$ hg log -r 'ancestor(head())' --config merge.preferancestor=2 -T '{rev}\n' | ||||
2 | ||||
$ hg log -r 'ancestor(head())' --config merge.preferancestor=3 -T '{rev}\n' | ||||
1 | ||||
Mads Kiilerich
|
r22671 | $ hg log -r 'ancestor(head())' --config merge.preferancestor='1337 * - 2' -T '{rev}\n' | ||
2 | ||||
Mads Kiilerich
|
r22180 | |||
Mads Kiilerich
|
r21169 | $ cd .. | ||
Martin von Zweigbergk
|
r42330 | |||
$ hg init issue5020 | ||||
$ cd issue5020 | ||||
$ echo a > noop | ||||
$ hg ci -qAm initial | ||||
$ echo b > noop | ||||
$ hg ci -qAm 'uninteresting change' | ||||
$ hg up -q 0 | ||||
$ mkdir d1 | ||||
$ echo a > d1/a | ||||
$ echo b > d1/b | ||||
$ hg ci -qAm 'add d1/a and d1/b' | ||||
$ hg merge -q 1 | ||||
$ hg rm d1/a | ||||
$ hg mv -q d1 d2 | ||||
$ hg ci -qm 'merge while removing d1/a and moving d1/b to d2/b' | ||||
$ hg up -q 1 | ||||
$ hg merge -q 2 | ||||
$ hg ci -qm 'merge (no changes while merging)' | ||||
$ hg log -G -T '{rev}:{node|short} {desc}' | ||||
@ 4:c0ef19750a22 merge (no changes while merging) | ||||
|\ | ||||
+---o 3:6ca01f7342b9 merge while removing d1/a and moving d1/b to d2/b | ||||
| |/ | ||||
| o 2:154e6000f54e add d1/a and d1/b | ||||
| | | ||||
o | 1:11b5b303e36c uninteresting change | ||||
|/ | ||||
o 0:7b54db1ebf33 initial | ||||
$ hg merge 3 --debug | ||||
note: merging c0ef19750a22+ and 6ca01f7342b9 using bids from ancestors 11b5b303e36c and 154e6000f54e | ||||
calculating bids for ancestor 11b5b303e36c | ||||
unmatched files in local: | ||||
d1/a | ||||
d1/b | ||||
unmatched files in other: | ||||
d2/b | ||||
resolving manifests | ||||
branchmerge: True, force: False, partial: False | ||||
ancestor: 11b5b303e36c, local: c0ef19750a22+, remote: 6ca01f7342b9 | ||||
Martin von Zweigbergk
|
r42338 | d2/b: remote created -> g | ||
Martin von Zweigbergk
|
r42330 | |||
calculating bids for ancestor 154e6000f54e | ||||
unmatched files in other: | ||||
d2/b | ||||
all copies found (* = to merge, ! = divergent, % = renamed and deleted): | ||||
src: 'd1/b' -> dst: 'd2/b' | ||||
checking for directory renames | ||||
discovered dir src: 'd1/' -> dst: 'd2/' | ||||
resolving manifests | ||||
branchmerge: True, force: False, partial: False | ||||
ancestor: 154e6000f54e, local: c0ef19750a22+, remote: 6ca01f7342b9 | ||||
d1/a: other deleted -> r | ||||
d1/b: other deleted -> r | ||||
d2/b: remote created -> g | ||||
auction for merging merge bids | ||||
d1/a: consensus for r | ||||
d1/b: consensus for r | ||||
Martin von Zweigbergk
|
r42338 | d2/b: consensus for g | ||
Martin von Zweigbergk
|
r42330 | end of auction | ||
d1/a: other deleted -> r | ||||
removing d1/a | ||||
d1/b: other deleted -> r | ||||
removing d1/b | ||||
d2/b: remote created -> g | ||||
getting d2/b | ||||
1 files updated, 0 files merged, 2 files removed, 0 files unresolved | ||||
(branch merge, don't forget to commit) | ||||