On the 'mo-betta-two-url-merges' branch, take a different approach to
the two-url merge problem. So, given a situation like this:
+-----------> (A)
/
-----+-------------> (B)
(C)
Say we wish to merge the diff between A and B to some target.
Rather than do two mergeinfo-recording merges (A:C, C:B) like code in
the branch on which is branch is based does, we instead do one
mergeinfo-not-recording merge A:B, and then two record-only merges
(A:C, C:B).
Initial results are much better than the previous approach.
* subversion/libsvn_client/merge.c
(merge_cmd_baton_t): Rename 'sources_related' field to 'sources_ancestral'.
Track field rename through this file.
(do_merge): Rename 'sources_related' parameter to 'sources_ancestral'.
Then, re-add a new 'sources_related' parameter that means something
different. Update call to do_file_merge().
(do_file_merge): Add 'sources_related' parameter, and use it (instead of
the merge baton's sources_ancestral field) to determine if this is a
text-n-props merge or a delete-n-add merge.
(svn_client_merge3): Rather than traverse two edges of a merge
triangle, only traverse the single third edge (with no
mergeinfo). But then *record* mergeinfo as if we'd gone the long
way 'round. Calculate both is-ancestral and is-related, and update
calls to do_merge().
(svn_client_merge_peg3): Update calls to do_merge().
* subversion/tests/cmdline/merge_tests.py
(merge_binary_with_common_ancestry): Update test expectations.
Sooooo much better...
git-svn-id: https://svn.apache.org/repos/asf/subversion/branches/mo-betta-two-url-merges@868377 13f79535-47bb-0310-9956-ffa450edef68
2 files changed