Add core copy detection algorithm
This adds findcopies, which detects merge-relevant copies between
files in a pair of manifests back to the merge ancestor.
While the merge code invokes the copy detection routine, it does not
yet use the result.
adding a
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
% should fail because not at a head
abort: repo has 3 heads - please merge with an explicit rev
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
% should fail because > 2 heads
abort: repo has 3 heads - please merge with an explicit rev
% should succeed
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
% should succeed - 2 heads
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
% should fail because 1 head
abort: there is nothing to merge - use "hg update" instead