Index: subversion/libsvn_client/merge.c =================================================================== --- subversion/libsvn_client/merge.c (revision 27949) +++ subversion/libsvn_client/merge.c (working copy) @@ -2337,8 +2337,8 @@ svn_merge_range_t *range = APR_ARRAY_IDX(child->remaining_ranges, 0, svn_merge_range_t *); if ((end_rev == SVN_INVALID_REVNUM) - || (is_rollback && (range->end < end_rev)) - || ((! is_rollback) && (range->end > end_rev))) + || (is_rollback && (range->end > end_rev)) + || ((! is_rollback) && (range->end < end_rev))) end_rev = range->end; } } Index: subversion/tests/cmdline/merge_tests.py =================================================================== --- subversion/tests/cmdline/merge_tests.py (revision 27949) +++ subversion/tests/cmdline/merge_tests.py (working copy) @@ -8395,7 +8395,7 @@ expected_status.tweak('mu', status=' ') expected_status.tweak('', status=' M') # elision removes svn:mergeinfo - expected_disk.tweak('', props={}) + expected_disk.remove('') expected_disk.tweak('mu', contents=thirty_line_dummy_text) os.chdir(svntest.main.work_dir) svntest.actions.run_and_verify_merge(short_A_COPY, '6', '3', @@ -8406,8 +8406,8 @@ expected_skip, None, None, None, None, None, 1) os.chdir(saved_cwd) - expected_disk.tweak('', props={SVN_PROP_MERGE_INFO : '/A:4-6', - 'prop1' : 'val1'}) + expected_disk.add({'' : Item(props={SVN_PROP_MERGE_INFO : '/A:4-6', + 'prop1' : 'val1'})}) expected_disk.tweak('mu', contents=tweaked_27th_line) expected_output = wc.State(short_A_COPY, { '' : Item(status=' U'), @@ -8443,7 +8443,7 @@ }) expected_status.tweak('', status=' ') expected_status.tweak('mu', status='M ') - expected_disk.tweak('', props={}) + expected_disk.remove('') expected_disk.tweak('mu', contents=tweaked_17th_line_2) os.chdir(svntest.main.work_dir) svntest.actions.run_and_verify_merge(short_A_COPY, '6', '3',