Attached is a patch implmenting mergeinfo elision during svn merge,
update, and switch operations. It passes the 6-way and JavaHL tests on
Win32 and I think it's ready for prime time, but if anyone has some time
to take a look I'd appreciate it.
Thanks,
Paul B.
[[[
Implement svn:mergeinfo elision for svn merge, update, and switch.
* subversion/libsvn_client/client.h
(svn_client__elide_mergeinfo): New. Elides mergeinfo on a target WC
path
to it's nearest ancestor with equivalent mergeinfo.
* subversion/libsvn_client/merge.c
(get_wc_merge_info): Add arguments to restrict how far up the WC to
look
for inherited mergeinfo and whether to look *only* for inherited
mergeinfo.
Add reference argument to record the path walked to find inherited
info.
(get_wc_or_repos_merge_info): Update call to get_wc_merge_info().
(mergeinfo_elides): New. A wrapper around svn_mergeinfo_diff() that
understands mergeinfo equivalence rather than absolute equality.
(elide_children): New. Iterate through array of target path's children
with mergeinfo and elide only the path's immediate children.
(svn_client__elide_mergeinfo): New.
(do_merge, do_single_file_merge):
(svn_client_merge3, svn_client_merge_peg3):
* subversion/libsvn_client/switch.c (svn_client__switch_internal):
* subversion/libsvn_client/update.c (svn_client__update_internal):
Upon completion of switch/update perform post-order traversal of
target's
children with mergeinfo, checking each for elidability and finally
eliding
the target itself if applicable.
* subversion/tests/cmdline/merge_tests.py
(avoid_repeated_merge_on_subtree_with_merge_info,
obey_reporter_api_semantics_while_doing_subtree_merges): Tweak
expected
status and properties to account for svn:mergeinfo elision.
(test_list): Remove XFail from mergeinfo_elision test.
* subversion/tests/cmdline/switch_tests.py
(test_list): Remove XFail from mergeinfo_switch_elision test.
* subversion/tests/cmdline/update_tests.py
(test_list): Remove XFail from mergeinfo_update_elision test.
]]]
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Sat Apr 14 18:17:08 2007