merge: allow smarter tool configuration
Add [merge-tool] hgrc section with:
<tool>.executable = name or path (<tool>)
<tool>.args = args with $local/base/other/output ($local $base $other)
<tool>.priority = priority (default 0)
<tool>.binary = handles binary (False)
<tool>.symlink = handles symlinks (False)
<tool>.checkconflict = check for conflict markers (False)
<tool>.premerge = try internal simplemerge (True if not binary or symlink)
Four built-in tools: internal:{merge,local,other,fail}
Add [merge-patterns] section of the form:
<pattern> = <tool>
Priority of settings is:
HGMERGE
merge-patterns
ui:merge
merge-tools by priority
hgmerge, if it can be found
Changes:
unsuccessful merges leave .orig files
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
pulling from ../test1
requesting all changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 2 changes to 2 files
(run 'hg update' to get a working copy)
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
% the changelog should mention file a:
a
pulling from ../test2
searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 0 changes to 0 files (+1 heads)
(run 'hg heads' to see heads, 'hg merge' to merge)
changeset: 2:37dccb76c058
tag: tip
parent: 0:4536b1c2ca69
user: test
date: Mon Jan 12 13:46:40 1970 +0000
summary: chmod +x a
changeset: 1:a187cb361a5a
user: test
date: Mon Jan 12 13:46:40 1970 +0000
summary: a updated
changeset: 2:37dccb76c058
tag: tip
parent: 0:4536b1c2ca69
user: test
date: Mon Jan 12 13:46:40 1970 +0000
summary: chmod +x a
changeset: 1:a187cb361a5a
user: test
date: Mon Jan 12 13:46:40 1970 +0000
summary: a updated
changeset: 0:4536b1c2ca69
user: test
date: Mon Jan 12 13:46:40 1970 +0000
summary: added a b
resolving manifests
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
pulling from ../test2
searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 0 changes to 0 files (+1 heads)
(run 'hg heads' to see heads, 'hg merge' to merge)
changeset: 2:37dccb76c058
tag: tip
parent: 0:4536b1c2ca69
user: test
date: Mon Jan 12 13:46:40 1970 +0000
summary: chmod +x a
changeset: 1:d54568174d8e
user: test
date: Mon Jan 12 13:46:40 1970 +0000
summary: b updated
changeset: 2:37dccb76c058
tag: tip
parent: 0:4536b1c2ca69
user: test
date: Mon Jan 12 13:46:40 1970 +0000
summary: chmod +x a
changeset: 1:d54568174d8e
user: test
date: Mon Jan 12 13:46:40 1970 +0000
summary: b updated
changeset: 0:4536b1c2ca69
user: test
date: Mon Jan 12 13:46:40 1970 +0000
summary: added a b
resolving manifests
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
-rwxr-x---
-rwxr-x---
-rwxr-x---
rev offset length base linkrev nodeid p1 p2
0 0 0 0 0 b80de5d13875 000000000000 000000000000
rev offset length base linkrev nodeid p1 p2
0 0 0 0 0 b80de5d13875 000000000000 000000000000
rev offset length base linkrev nodeid p1 p2
0 0 0 0 0 b80de5d13875 000000000000 000000000000
1 0 5 1 1 7fe919cc0336 b80de5d13875 000000000000