##// END OF EJS Templates
revset: add experimental relation and subscript operators...
revset: add experimental relation and subscript operators The proposed syntax [1] was originally 'set{n rel}', but it seemed slightly confusing if template is involved. On the other hand, we want to keep 'set[n]' for future extension. So this patch introduces 'set#rel[n]' ternary operator. I chose '#' just because it looks like applying an attribute. This also adds stubs for 'set[n]' and 'set#rel' operators since these syntax elements are fundamental for constructing 'set#rel[n]'. [1]: https://www.mercurial-scm.org/wiki/RevsetOperatorPlan#ideas_from_mpm

File last commit:

r31766:bdcaf612 default
r33416:9467d533 default
Show More
test-merge-criss-cross.t
500 lines | 13.9 KiB | text/troff | Tads3Lexer
/ tests / test-merge-criss-cross.t
Mads Kiilerich
tests: add test case for criss cross merge...
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
Mads Kiilerich
merge: fix crash on criss cross merge with dir move and delete (issue5020)...
r30856 $ mkdir d1
$ echo '0 base' > d1/f3
$ echo '0 base' > d1/f4
$ hg add -q d1
Mads Kiilerich
tests: add test case for criss cross merge...
r20636 $ hg ci -qm '2 first change f2'
$ hg merge -qr 1
Mads Kiilerich
merge: fix crash on criss cross merge with dir move and delete (issue5020)...
r30856 $ hg rm d1/f3
$ hg mv -q d1 d2
Mads Kiilerich
tests: add test case for criss cross merge...
r20636 $ 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
context: tell when .ancestor picks one of multiple common ancestors heads...
r21125 $ hg up -r3
Mads Kiilerich
merge: fix crash on criss cross merge with dir move and delete (issue5020)...
r30856 2 files updated, 0 files merged, 2 files removed, 0 files unresolved
Mads Kiilerich
tests: add test case for criss cross merge...
r20636 $ echo '6 second change' > f2
$ hg ci -m '6 second change f2'
$ hg log -G
Mads Kiilerich
merge: fix crash on criss cross merge with dir move and delete (issue5020)...
r30856 @ changeset: 6:6373bbfdae1d
Mads Kiilerich
tests: add test case for criss cross merge...
r20636 | tag: tip
Mads Kiilerich
merge: fix crash on criss cross merge with dir move and delete (issue5020)...
r30856 | parent: 3:c202c8af058d
Mads Kiilerich
tests: add test case for criss cross merge...
r20636 | user: test
| date: Thu Jan 01 00:00:00 1970 +0000
| summary: 6 second change f2
|
Mads Kiilerich
merge: fix crash on criss cross merge with dir move and delete (issue5020)...
r30856 | o changeset: 5:e673248094b1
Mads Kiilerich
tests: add test case for criss cross merge...
r20636 | | user: test
| | date: Thu Jan 01 00:00:00 1970 +0000
| | summary: 5 second change f1
| |
Mads Kiilerich
merge: fix crash on criss cross merge with dir move and delete (issue5020)...
r30856 | o changeset: 4:177f58377c06
| |\ parent: 2:d1d156401c1b
Mads Kiilerich
tests: add test case for criss cross merge...
r20636 | | | parent: 1:0f6b37dbe527
| | | user: test
| | | date: Thu Jan 01 00:00:00 1970 +0000
| | | summary: 4 merge
| | |
Mads Kiilerich
merge: fix crash on criss cross merge with dir move and delete (issue5020)...
r30856 o---+ changeset: 3:c202c8af058d
| | | parent: 2:d1d156401c1b
Mads Kiilerich
tests: add test case for criss cross merge...
r20636 |/ / parent: 1:0f6b37dbe527
| | user: test
| | date: Thu Jan 01 00:00:00 1970 +0000
| | summary: 3 merge
| |
Mads Kiilerich
merge: fix crash on criss cross merge with dir move and delete (issue5020)...
r30856 | o changeset: 2:d1d156401c1b
Mads Kiilerich
tests: add test case for criss cross merge...
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
merge: use bid merge by default (BC)...
r22672 $ hg merge -v --debug --tool internal:dump 5 --config merge.preferancestor='!'
Mads Kiilerich
merge: fix crash on criss cross merge with dir move and delete (issue5020)...
r30856 note: using 0f6b37dbe527 as ancestor of 6373bbfdae1d and e673248094b1
alternatively, use --config merge.preferancestor=d1d156401c1b
Mads Kiilerich
tests: add test case for criss cross merge...
r20636 searching for copies back to rev 3
Mads Kiilerich
merge: fix crash on criss cross merge with dir move and delete (issue5020)...
r30856 unmatched files in local:
d2/f4
unmatched files in other:
d1/f3
d1/f4
all copies found (* = to merge, ! = divergent, % = renamed and deleted):
src: 'd1/f4' -> dst: 'd2/f4'
checking for directory renames
discovered dir src: 'd1/' -> dst: 'd2/'
pending file src: 'd1/f3' -> dst: 'd2/f3'
pending file src: 'd1/f4' -> dst: 'd2/f4'
Mads Kiilerich
tests: add test case for criss cross merge...
r20636 resolving manifests
branchmerge: True, force: False, partial: False
Mads Kiilerich
merge: fix crash on criss cross merge with dir move and delete (issue5020)...
r30856 ancestor: 0f6b37dbe527, local: 6373bbfdae1d+, remote: e673248094b1
preserving d2/f4 for resolve of d2/f4
Mads Kiilerich
merge: change debug logging - test output changes but no real changes...
r21391 preserving f2 for resolve of f2
Mads Kiilerich
tests: add test case for criss cross merge...
r20636 f1: remote is newer -> g
getting f1
Mads Kiilerich
merge: fix crash on criss cross merge with dir move and delete (issue5020)...
r30856 d2/f3: local directory rename - get from d1/f3 -> dg
getting d1/f3 to d2/f3
d2/f4: local directory rename, both created -> m (premerge)
Siddharth Agarwal
merge.mergestate: perform all premerges before any merges (BC)...
r26618 f2: versions differ -> m (premerge)
Siddharth Agarwal
filemerge: add debug output for whether this is a change/delete conflict...
r27161 picked tool ':dump' for f2 (binary False symlink False changedelete False)
Mads Kiilerich
tests: add test case for criss cross merge...
r20636 merging f2
Mads Kiilerich
merge: fix crash on criss cross merge with dir move and delete (issue5020)...
r30856 my f2@6373bbfdae1d+ other f2@e673248094b1 ancestor f2@0f6b37dbe527
Siddharth Agarwal
merge.mergestate: perform all premerges before any merges (BC)...
r26618 f2: versions differ -> m (merge)
Siddharth Agarwal
filemerge: add debug output for whether this is a change/delete conflict...
r27161 picked tool ':dump' for f2 (binary False symlink False changedelete False)
Mads Kiilerich
merge: fix crash on criss cross merge with dir move and delete (issue5020)...
r30856 my f2@6373bbfdae1d+ other f2@e673248094b1 ancestor f2@0f6b37dbe527
3 files updated, 0 files merged, 0 files removed, 1 files unresolved
Mads Kiilerich
tests: add test case for criss cross merge...
r20636 use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon
[1]
Mads Kiilerich
merge: fix crash on criss cross merge with dir move and delete (issue5020)...
r30856 $ f --dump --recurse *
d2: directory with 2 files
Matt Harbison
tests: add globs for Windows
r31766 d2/f3: (glob)
Mads Kiilerich
merge: fix crash on criss cross merge with dir move and delete (issue5020)...
r30856 >>>
0 base
<<<
Matt Harbison
tests: add globs for Windows
r31766 d2/f4: (glob)
Mads Kiilerich
merge: fix crash on criss cross merge with dir move and delete (issue5020)...
r30856 >>>
0 base
<<<
Mads Kiilerich
tests: use 'f' in test-merge-criss-cross.t to prepare for recursive dumping...
r30855 f1:
>>>
Mads Kiilerich
tests: add test case for criss cross merge...
r20636 5 second change
Mads Kiilerich
tests: use 'f' in test-merge-criss-cross.t to prepare for recursive dumping...
r30855 <<<
f2:
>>>
Mads Kiilerich
tests: add test case for criss cross merge...
r20636 6 second change
Mads Kiilerich
tests: use 'f' in test-merge-criss-cross.t to prepare for recursive dumping...
r30855 <<<
f2.base:
>>>
Mads Kiilerich
tests: add test case for criss cross merge...
r20636 0 base
Mads Kiilerich
tests: use 'f' in test-merge-criss-cross.t to prepare for recursive dumping...
r30855 <<<
f2.local:
>>>
Mads Kiilerich
tests: add test case for criss cross merge...
r20636 6 second change
Mads Kiilerich
tests: use 'f' in test-merge-criss-cross.t to prepare for recursive dumping...
r30855 <<<
f2.orig:
>>>
Mads Kiilerich
tests: add test case for criss cross merge...
r20636 6 second change
Mads Kiilerich
tests: use 'f' in test-merge-criss-cross.t to prepare for recursive dumping...
r30855 <<<
f2.other:
>>>
Mads Kiilerich
tests: add test case for criss cross merge...
r20636 2 first change
Mads Kiilerich
tests: use 'f' in test-merge-criss-cross.t to prepare for recursive dumping...
r30855 <<<
Mads Kiilerich
tests: add test case for criss cross merge...
r20636
Mads Kiilerich
context: introduce merge.preferancestor for controlling which ancestor to pick...
r21126 $ hg up -qC .
$ hg merge -v --tool internal:dump 5 --config merge.preferancestor="null 40663881 3b08d"
Mads Kiilerich
merge: fix crash on criss cross merge with dir move and delete (issue5020)...
r30856 note: using 0f6b37dbe527 as ancestor of 6373bbfdae1d and e673248094b1
alternatively, use --config merge.preferancestor=d1d156401c1b
Mads Kiilerich
context: introduce merge.preferancestor for controlling which ancestor to pick...
r21126 resolving manifests
Mads Kiilerich
merge: fix crash on criss cross merge with dir move and delete (issue5020)...
r30856 getting f1
getting d1/f3 to d2/f3
merging f2
3 files updated, 0 files merged, 0 files removed, 1 files unresolved
Mads Kiilerich
context: introduce merge.preferancestor for controlling which ancestor to pick...
r21126 use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon
[1]
Mads Kiilerich
merge: with merge.preferancestor=*, run an auction with bids from ancestors...
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="*"
Mads Kiilerich
merge: fix crash on criss cross merge with dir move and delete (issue5020)...
r30856 note: merging 6373bbfdae1d+ and e673248094b1 using bids from ancestors 0f6b37dbe527 and d1d156401c1b
Mads Kiilerich
merge: with merge.preferancestor=*, run an auction with bids from ancestors...
r21128
calculating bids for ancestor 0f6b37dbe527
searching for copies back to rev 3
Mads Kiilerich
merge: fix crash on criss cross merge with dir move and delete (issue5020)...
r30856 unmatched files in local:
d2/f4
unmatched files in other:
d1/f3
d1/f4
all copies found (* = to merge, ! = divergent, % = renamed and deleted):
src: 'd1/f4' -> dst: 'd2/f4'
checking for directory renames
discovered dir src: 'd1/' -> dst: 'd2/'
pending file src: 'd1/f3' -> dst: 'd2/f3'
pending file src: 'd1/f4' -> dst: 'd2/f4'
Mads Kiilerich
merge: with merge.preferancestor=*, run an auction with bids from ancestors...
r21128 resolving manifests
branchmerge: True, force: False, partial: False
Mads Kiilerich
merge: fix crash on criss cross merge with dir move and delete (issue5020)...
r30856 ancestor: 0f6b37dbe527, local: 6373bbfdae1d+, remote: e673248094b1
d2/f3: local directory rename - get from d1/f3 -> dg
d2/f4: local directory rename, both created -> m
Mads Kiilerich
merge: make debug output slightly more helpful by including message for action...
r21269 f1: remote is newer -> g
f2: versions differ -> m
Mads Kiilerich
merge: with merge.preferancestor=*, run an auction with bids from ancestors...
r21128
Mads Kiilerich
merge: fix crash on criss cross merge with dir move and delete (issue5020)...
r30856 calculating bids for ancestor d1d156401c1b
Mads Kiilerich
merge: with merge.preferancestor=*, run an auction with bids from ancestors...
r21128 searching for copies back to rev 3
Mads Kiilerich
merge: fix crash on criss cross merge with dir move and delete (issue5020)...
r30856 unmatched files in local:
d2/f4
all copies found (* = to merge, ! = divergent, % = renamed and deleted):
src: 'd1/f4' -> dst: 'd2/f4'
checking for directory renames
discovered dir src: 'd1/' -> dst: 'd2/'
Mads Kiilerich
merge: with merge.preferancestor=*, run an auction with bids from ancestors...
r21128 resolving manifests
branchmerge: True, force: False, partial: False
Mads Kiilerich
merge: fix crash on criss cross merge with dir move and delete (issue5020)...
r30856 ancestor: d1d156401c1b, local: 6373bbfdae1d+, remote: e673248094b1
Martin von Zweigbergk
merge: let bid merge work on the file->action dict...
r23638 f1: versions differ -> m
Martin von Zweigbergk
merge: make 'keep' message more descriptive...
r23482 f2: remote unchanged -> k
Mads Kiilerich
merge: with merge.preferancestor=*, run an auction with bids from ancestors...
r21128
auction for merging merge bids
Mads Kiilerich
merge: fix crash on criss cross merge with dir move and delete (issue5020)...
r30856 d2/f3: consensus for dg
d2/f4: consensus for m
Mads Kiilerich
merge: with merge.preferancestor=*, run an auction with bids from ancestors...
r21128 f1: picking 'get' action
f2: picking 'keep' action
end of auction
Mads Kiilerich
merge: fix crash on criss cross merge with dir move and delete (issue5020)...
r30856 preserving d2/f4 for resolve of d2/f4
Mads Kiilerich
merge: with merge.preferancestor=*, run an auction with bids from ancestors...
r21128 f1: remote is newer -> g
getting f1
Martin von Zweigbergk
merge: make 'keep' message more descriptive...
r23482 f2: remote unchanged -> k
Mads Kiilerich
merge: fix crash on criss cross merge with dir move and delete (issue5020)...
r30856 d2/f3: local directory rename - get from d1/f3 -> dg
getting d1/f3 to d2/f3
d2/f4: local directory rename, both created -> m (premerge)
3 files updated, 0 files merged, 0 files removed, 0 files unresolved
Mads Kiilerich
merge: with merge.preferancestor=*, run an auction with bids from ancestors...
r21128 (branch merge, don't forget to commit)
Mads Kiilerich
merge: fix crash on criss cross merge with dir move and delete (issue5020)...
r30856 $ f --dump --recurse *
d2: directory with 2 files
Matt Harbison
tests: add globs for Windows
r31766 d2/f3: (glob)
Mads Kiilerich
merge: fix crash on criss cross merge with dir move and delete (issue5020)...
r30856 >>>
0 base
<<<
Matt Harbison
tests: add globs for Windows
r31766 d2/f4: (glob)
Mads Kiilerich
merge: fix crash on criss cross merge with dir move and delete (issue5020)...
r30856 >>>
0 base
<<<
Mads Kiilerich
tests: use 'f' in test-merge-criss-cross.t to prepare for recursive dumping...
r30855 f1:
>>>
Mads Kiilerich
merge: with merge.preferancestor=*, run an auction with bids from ancestors...
r21128 5 second change
Mads Kiilerich
tests: use 'f' in test-merge-criss-cross.t to prepare for recursive dumping...
r30855 <<<
f2:
>>>
Mads Kiilerich
merge: with merge.preferancestor=*, run an auction with bids from ancestors...
r21128 6 second change
Mads Kiilerich
tests: use 'f' in test-merge-criss-cross.t to prepare for recursive dumping...
r30855 <<<
Mads Kiilerich
merge: with merge.preferancestor=*, run an auction with bids from ancestors...
r21128
The other way around:
$ hg up -C -r5
Mads Kiilerich
merge: fix crash on criss cross merge with dir move and delete (issue5020)...
r30856 4 files updated, 0 files merged, 1 files removed, 0 files unresolved
Mads Kiilerich
merge: with merge.preferancestor=*, run an auction with bids from ancestors...
r21128 $ hg merge -v --debug --config merge.preferancestor="*"
Mads Kiilerich
merge: fix crash on criss cross merge with dir move and delete (issue5020)...
r30856 note: merging e673248094b1+ and 6373bbfdae1d using bids from ancestors 0f6b37dbe527 and d1d156401c1b
Mads Kiilerich
merge: with merge.preferancestor=*, run an auction with bids from ancestors...
r21128
calculating bids for ancestor 0f6b37dbe527
searching for copies back to rev 3
Mads Kiilerich
merge: fix crash on criss cross merge with dir move and delete (issue5020)...
r30856 unmatched files in local:
d1/f3
d1/f4
unmatched files in other:
d2/f4
all copies found (* = to merge, ! = divergent, % = renamed and deleted):
src: 'd1/f4' -> dst: 'd2/f4'
checking for directory renames
discovered dir src: 'd1/' -> dst: 'd2/'
pending file src: 'd1/f3' -> dst: 'd2/f3'
pending file src: 'd1/f4' -> dst: 'd2/f4'
Mads Kiilerich
merge: with merge.preferancestor=*, run an auction with bids from ancestors...
r21128 resolving manifests
branchmerge: True, force: False, partial: False
Mads Kiilerich
merge: fix crash on criss cross merge with dir move and delete (issue5020)...
r30856 ancestor: 0f6b37dbe527, local: e673248094b1+, remote: 6373bbfdae1d
d2/f3: remote directory rename - move from d1/f3 -> dm
d2/f4: remote directory rename, both created -> m
Martin von Zweigbergk
merge: make 'keep' message more descriptive...
r23482 f1: remote unchanged -> k
Mads Kiilerich
merge: make debug output slightly more helpful by including message for action...
r21269 f2: versions differ -> m
Mads Kiilerich
merge: with merge.preferancestor=*, run an auction with bids from ancestors...
r21128
Mads Kiilerich
merge: fix crash on criss cross merge with dir move and delete (issue5020)...
r30856 calculating bids for ancestor d1d156401c1b
Mads Kiilerich
merge: with merge.preferancestor=*, run an auction with bids from ancestors...
r21128 searching for copies back to rev 3
Mads Kiilerich
merge: fix crash on criss cross merge with dir move and delete (issue5020)...
r30856 unmatched files in other:
d2/f4
all copies found (* = to merge, ! = divergent, % = renamed and deleted):
src: 'd1/f4' -> dst: 'd2/f4'
checking for directory renames
discovered dir src: 'd1/' -> dst: 'd2/'
Mads Kiilerich
merge: with merge.preferancestor=*, run an auction with bids from ancestors...
r21128 resolving manifests
branchmerge: True, force: False, partial: False
Mads Kiilerich
merge: fix crash on criss cross merge with dir move and delete (issue5020)...
r30856 ancestor: d1d156401c1b, local: e673248094b1+, remote: 6373bbfdae1d
d1/f3: other deleted -> r
d1/f4: other deleted -> r
d2/f4: remote created -> g
Martin von Zweigbergk
merge: let bid merge work on the file->action dict...
r23638 f1: versions differ -> m
Mads Kiilerich
merge: change debug logging - test output changes but no real changes...
r21391 f2: remote is newer -> g
Mads Kiilerich
merge: with merge.preferancestor=*, run an auction with bids from ancestors...
r21128
auction for merging merge bids
Mads Kiilerich
merge: fix crash on criss cross merge with dir move and delete (issue5020)...
r30856 d1/f3: consensus for r
d1/f4: consensus for r
d2/f3: consensus for dm
d2/f4: picking 'get' action
Mads Kiilerich
merge: with merge.preferancestor=*, run an auction with bids from ancestors...
r21128 f1: picking 'keep' action
f2: picking 'get' action
end of auction
Mads Kiilerich
merge: fix crash on criss cross merge with dir move and delete (issue5020)...
r30856 d1/f3: other deleted -> r
removing d1/f3
d1/f4: other deleted -> r
removing d1/f4
d2/f4: remote created -> g
getting d2/f4
Mads Kiilerich
merge: change priority / ordering of merge actions...
r21389 f2: remote is newer -> g
Mads Kiilerich
merge: with merge.preferancestor=*, run an auction with bids from ancestors...
r21128 getting f2
Martin von Zweigbergk
merge: make 'keep' message more descriptive...
r23482 f1: remote unchanged -> k
Mads Kiilerich
merge: fix crash on criss cross merge with dir move and delete (issue5020)...
r30856 2 files updated, 0 files merged, 2 files removed, 0 files unresolved
Mads Kiilerich
merge: with merge.preferancestor=*, run an auction with bids from ancestors...
r21128 (branch merge, don't forget to commit)
Mads Kiilerich
merge: fix crash on criss cross merge with dir move and delete (issue5020)...
r30856 $ f --dump --recurse *
d2: directory with 2 files
Matt Harbison
tests: add globs for Windows
r31766 d2/f3: (glob)
Mads Kiilerich
merge: fix crash on criss cross merge with dir move and delete (issue5020)...
r30856 >>>
0 base
<<<
Matt Harbison
tests: add globs for Windows
r31766 d2/f4: (glob)
Mads Kiilerich
merge: fix crash on criss cross merge with dir move and delete (issue5020)...
r30856 >>>
0 base
<<<
Mads Kiilerich
tests: use 'f' in test-merge-criss-cross.t to prepare for recursive dumping...
r30855 f1:
>>>
Mads Kiilerich
merge: with merge.preferancestor=*, run an auction with bids from ancestors...
r21128 5 second change
Mads Kiilerich
tests: use 'f' in test-merge-criss-cross.t to prepare for recursive dumping...
r30855 <<<
f2:
>>>
Mads Kiilerich
merge: with merge.preferancestor=*, run an auction with bids from ancestors...
r21128 6 second change
Mads Kiilerich
tests: use 'f' in test-merge-criss-cross.t to prepare for recursive dumping...
r30855 <<<
Mads Kiilerich
merge: with merge.preferancestor=*, run an auction with bids from ancestors...
r21128
Verify how the output looks and and how verbose it is:
$ hg up -qC
Mads Kiilerich
merge: use bid merge by default (BC)...
r22672 $ hg merge
Mads Kiilerich
merge: fix crash on criss cross merge with dir move and delete (issue5020)...
r30856 2 files updated, 0 files merged, 2 files removed, 0 files unresolved
Mads Kiilerich
merge: with merge.preferancestor=*, run an auction with bids from ancestors...
r21128 (branch merge, don't forget to commit)
Pierre-Yves David
update: change default destination to tipmost descendant (issue4673) (BC)...
r28065 $ hg up -qC tip
Mads Kiilerich
merge: use bid merge by default (BC)...
r22672 $ hg merge -v
Mads Kiilerich
merge: fix crash on criss cross merge with dir move and delete (issue5020)...
r30856 note: merging 6373bbfdae1d+ and e673248094b1 using bids from ancestors 0f6b37dbe527 and d1d156401c1b
Mads Kiilerich
merge: with merge.preferancestor=*, run an auction with bids from ancestors...
r21128
calculating bids for ancestor 0f6b37dbe527
resolving manifests
Mads Kiilerich
merge: fix crash on criss cross merge with dir move and delete (issue5020)...
r30856 calculating bids for ancestor d1d156401c1b
Mads Kiilerich
merge: with merge.preferancestor=*, run an auction with bids from ancestors...
r21128 resolving manifests
auction for merging merge bids
Mads Kiilerich
merge: fix crash on criss cross merge with dir move and delete (issue5020)...
r30856 d2/f3: consensus for dg
d2/f4: consensus for m
Mads Kiilerich
merge: with merge.preferancestor=*, run an auction with bids from ancestors...
r21128 f1: picking 'get' action
f2: picking 'keep' action
end of auction
getting f1
Mads Kiilerich
merge: fix crash on criss cross merge with dir move and delete (issue5020)...
r30856 getting d1/f3 to d2/f3
3 files updated, 0 files merged, 0 files removed, 0 files unresolved
Mads Kiilerich
merge: with merge.preferancestor=*, run an auction with bids from ancestors...
r21128 (branch merge, don't forget to commit)
$ hg up -qC
$ hg merge -v --debug --config merge.preferancestor="*"
Mads Kiilerich
merge: fix crash on criss cross merge with dir move and delete (issue5020)...
r30856 note: merging 6373bbfdae1d+ and e673248094b1 using bids from ancestors 0f6b37dbe527 and d1d156401c1b
Mads Kiilerich
merge: with merge.preferancestor=*, run an auction with bids from ancestors...
r21128
calculating bids for ancestor 0f6b37dbe527
searching for copies back to rev 3
Mads Kiilerich
merge: fix crash on criss cross merge with dir move and delete (issue5020)...
r30856 unmatched files in local:
d2/f4
unmatched files in other:
d1/f3
d1/f4
all copies found (* = to merge, ! = divergent, % = renamed and deleted):
src: 'd1/f4' -> dst: 'd2/f4'
checking for directory renames
discovered dir src: 'd1/' -> dst: 'd2/'
pending file src: 'd1/f3' -> dst: 'd2/f3'
pending file src: 'd1/f4' -> dst: 'd2/f4'
Mads Kiilerich
merge: with merge.preferancestor=*, run an auction with bids from ancestors...
r21128 resolving manifests
branchmerge: True, force: False, partial: False
Mads Kiilerich
merge: fix crash on criss cross merge with dir move and delete (issue5020)...
r30856 ancestor: 0f6b37dbe527, local: 6373bbfdae1d+, remote: e673248094b1
d2/f3: local directory rename - get from d1/f3 -> dg
d2/f4: local directory rename, both created -> m
Mads Kiilerich
merge: make debug output slightly more helpful by including message for action...
r21269 f1: remote is newer -> g
f2: versions differ -> m
Mads Kiilerich
merge: with merge.preferancestor=*, run an auction with bids from ancestors...
r21128
Mads Kiilerich
merge: fix crash on criss cross merge with dir move and delete (issue5020)...
r30856 calculating bids for ancestor d1d156401c1b
Mads Kiilerich
merge: with merge.preferancestor=*, run an auction with bids from ancestors...
r21128 searching for copies back to rev 3
Mads Kiilerich
merge: fix crash on criss cross merge with dir move and delete (issue5020)...
r30856 unmatched files in local:
d2/f4
all copies found (* = to merge, ! = divergent, % = renamed and deleted):
src: 'd1/f4' -> dst: 'd2/f4'
checking for directory renames
discovered dir src: 'd1/' -> dst: 'd2/'
Mads Kiilerich
merge: with merge.preferancestor=*, run an auction with bids from ancestors...
r21128 resolving manifests
branchmerge: True, force: False, partial: False
Mads Kiilerich
merge: fix crash on criss cross merge with dir move and delete (issue5020)...
r30856 ancestor: d1d156401c1b, local: 6373bbfdae1d+, remote: e673248094b1
Martin von Zweigbergk
merge: let bid merge work on the file->action dict...
r23638 f1: versions differ -> m
Martin von Zweigbergk
merge: make 'keep' message more descriptive...
r23482 f2: remote unchanged -> k
Mads Kiilerich
merge: with merge.preferancestor=*, run an auction with bids from ancestors...
r21128
auction for merging merge bids
Mads Kiilerich
merge: fix crash on criss cross merge with dir move and delete (issue5020)...
r30856 d2/f3: consensus for dg
d2/f4: consensus for m
Mads Kiilerich
merge: with merge.preferancestor=*, run an auction with bids from ancestors...
r21128 f1: picking 'get' action
f2: picking 'keep' action
end of auction
Mads Kiilerich
merge: fix crash on criss cross merge with dir move and delete (issue5020)...
r30856 preserving d2/f4 for resolve of d2/f4
Mads Kiilerich
merge: with merge.preferancestor=*, run an auction with bids from ancestors...
r21128 f1: remote is newer -> g
getting f1
Martin von Zweigbergk
merge: make 'keep' message more descriptive...
r23482 f2: remote unchanged -> k
Mads Kiilerich
merge: fix crash on criss cross merge with dir move and delete (issue5020)...
r30856 d2/f3: local directory rename - get from d1/f3 -> dg
getting d1/f3 to d2/f3
d2/f4: local directory rename, both created -> m (premerge)
3 files updated, 0 files merged, 0 files removed, 0 files unresolved
Mads Kiilerich
merge: with merge.preferancestor=*, run an auction with bids from ancestors...
r21128 (branch merge, don't forget to commit)
Mads Kiilerich
tests: add test case for criss cross merge...
r20636 $ cd ..
Mads Kiilerich
tests: better test coverage for bid merge...
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
merge: use bid merge by default (BC)...
r22672 $ hg merge --config merge.preferancestor='!'
Mads Kiilerich
tests: better test coverage for bid merge...
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
merge: tell the user when we are using bid merge...
r21171 note: merging 0d355fdef312+ and 4b8b546a3eef using bids from ancestors 70008a2163f6 and b211bbc6eb3c
Mads Kiilerich
tests: better test coverage for bid merge...
r21169
calculating bids for ancestor 70008a2163f6
resolving manifests
calculating bids for ancestor b211bbc6eb3c
resolving manifests
auction for merging merge bids
Mads Kiilerich
merge: improve notes for listing the bids for ambiguous merges
r21172 x: multiple bids for merge action:
versions differ -> m
versions differ -> m
Mads Kiilerich
merge: fix stray character in bid merge message
r21170 x: ambiguous merge - picked m action
Mads Kiilerich
tests: better test coverage for bid merge...
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
changectx: ancestor should only prefer merge.preferancestor if it is a revision...
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
changectx: skip all invalid merge.preferancestor values...
r22671 $ hg log -r 'ancestor(head())' --config merge.preferancestor='1337 * - 2' -T '{rev}\n'
2
Mads Kiilerich
changectx: ancestor should only prefer merge.preferancestor if it is a revision...
r22180
Mads Kiilerich
tests: better test coverage for bid merge...
r21169 $ cd ..