Author: pburba
Date: Fri Jan 25 20:19:15 2013
New Revision: 1438683
URL: http://svn.apache.org/viewvc?rev=1438683&view=rev
Log:
Fix issue #4306 'multiple editor drive file merges record wrong mergeinfo
during conflicts'.
* subversion/libsvn_client/merge.c
(do_file_merge): If we can only perform a partial merge because a conflict
broke the merge, then only record mergeinfo for that partial merge. That
was subsequent merges can finish the job.
* subversion/tests/cmdline/merge_tests.py
(conflict_aborted_mergeinfo_described_partial_merge): Remove XFail
decorator and tweak failure status comment.
Modified:
subversion/trunk/subversion/libsvn_client/merge.c
subversion/trunk/subversion/tests/cmdline/merge_tests.py
Modified: subversion/trunk/subversion/libsvn_client/merge.c
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_client/merge.c?rev=1438683&r1=1438682&r2=1438683&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_client/merge.c (original)
+++ subversion/trunk/subversion/libsvn_client/merge.c Fri Jan 25 20:19:15 2013
@@ -6923,7 +6923,10 @@ do_file_merge(svn_mergeinfo_catalog_t re
&filtered_rangelist,
mergeinfo_path,
merge_target->implicit_mergeinfo,
- &range, iterpool));
+ /* Only record partial mergeinfo if only a partial merge was
+ performed before a conflict was encountered. */
+ conflicted_range ? conflicted_range : &range,
+ iterpool));
/* Only record mergeinfo if there is something other than
self-referential mergeinfo, but don't record mergeinfo if
Modified: subversion/trunk/subversion/tests/cmdline/merge_tests.py
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/cmdline/merge_tests.py?rev=1438683&r1=1438682&r2=1438683&view=diff
==============================================================================
--- subversion/trunk/subversion/tests/cmdline/merge_tests.py (original)
+++ subversion/trunk/subversion/tests/cmdline/merge_tests.py Fri Jan 25
20:19:15 2013
@@ -18176,8 +18176,7 @@ def merge_properties_on_adds(sbox):
@SkipUnless(server_has_mergeinfo)
@Issue(4306)
-@XFail()
-# Test for issue #4306 'multiple editor drive merges record wrong
+# Test for issue #4306 'multiple editor drive file merges record wrong
# mergeinfo during conflicts'
def conflict_aborted_mergeinfo_described_partial_merge(sbox):
"conflicted split merge can be repeated"
@@ -18218,8 +18217,8 @@ def conflict_aborted_mergeinfo_described
svntest.actions.run_and_verify_svn(None, None, '.*', 'merge', '^/iota',
iota_copy_path, '--accept', 'postpone')
- # Currently this test fails because the merge fails after merging
- # only r2 (as it should) but mergeinfo for r5-6 is recorded, preventing
+ # Previously this test failed because the merge failed after merging
+ # only r2 (as it should) but mergeinfo for r5-6 was recorded, preventing
# subsequent repeat merges from applying the operative r5.
svntest.actions.run_and_verify_svn(
"Incorrect mergeinfo set during conflict aborted merge",