Teach the dry-run merge logic to account for additional flavors of
ra_serf editor drive ordering violations (*sigh*). Specifically,
account for situations where the editor drive looks like so:
add_dir("dir1")
add_dir("dir2")
add_file("dir1/file")
...
Formerly, this code would see the add of "dir1/file" and wish to flag
that as a obstruction because "dir1" wasn't on disk and also wasn't
the most recent directory added via the merge. ("dir2" was.)
This change causes Subversion to check not just the most recently
added directory, but all added directories (which were already being
tracked elsewhere, anyway) before deeming "dir1/file" an obstructed
merge addition.
* subversion/libsvn_client/merge.c
(merge_cmd_baton_t): Remove the 'added_path' member.
(dry_run_added_parent_p): New helper function.
(merge_file_added): Now use dry_run_added_parent_p() instead of
merge_b->added_path to look for added parent paths.
(merge_dir_added): Now use dry_run_added_parent_p() instead of
merge_b->added_path to record added paths and to check for added
parent paths.
(do_merge): Don't initialize the now-removed 'added_path' merge
context baton member.
git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1414810 13f79535-47bb-0310-9956-ffa450edef68
1 file changed