merge: do early copy to deal with issue636
Without copies/renames, merges source names are 1:1 with their
targets. Copies and renames introduce the possibility that there will
be two merges with the same input but different output. By doing the
copy to the destination name before the merge, the actual merge
becomes 1:1 again, and no source is the input to two different merges.
- add a preliminary scan to applyupdates to do copies
- for the merge action, pass the old name (for finding ancestors) and
the new name (for input to the merge) to filemerge
- eliminate the old post-merge copy
- lookup file contents from new name in filemerge
- pass new name to external merge helper
- report merge failure at new name
- add a test
adding a
making snapshot of 0 files from rev 000000000000
making snapshot of 1 files from working dir
Only in a: a
making snapshot of 0 files from rev 000000000000
making snapshot of 1 files from working dir
diffing a.000000000000 a
hg falabala [OPTION]... [FILE]...
use 'echo' to diff repository (or selected files)
Show differences between revisions for the specified
files, using the 'echo' program.
When two revision arguments are given, then changes are
shown between those revisions. If only one revision is
specified then that revision is compared to the working
directory, and, when no revisions are specified, the
working directory files are compared to its parent.
options:
-o --option pass option to comparison program
-r --rev revision
-I --include include names matching the given patterns
-X --exclude exclude names matching the given patterns
use "hg -v help falabala" to show global options
making snapshot of 1 files from rev e27a2475d60a
making snapshot of 1 files from rev 5e49ec8d3f05
diffing a.e27a2475d60a a.5e49ec8d3f05
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
1 files updated, 0 files merged, 1 files removed, 0 files unresolved
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
making snapshot of 1 files from rev 5e49ec8d3f05
making snapshot of 1 files from working dir
diffing a.5e49ec8d3f05 a
diff-like tools yield a non-zero exit code