In the conflict resolver, start adding support for merging local edits in
the working copy into an incoming moved directory.

This code is still very rough. It lacks docstrings. Many things won't work yet.

But it already makes 'svn update' apply local file edits to an incoming move,
and makes an existing regression test XPASS, so I'm happy enough to put the
current state of things in to keep working on it incrementally.

* subversion/include/private/svn_wc_private.h
  (svn_wc__conflict_tree_merge_local_changes): Declare.

* subversion/libsvn_client/conflicts.c
  (resolve_incoming_move_dir_merge): Merge local changes with support from
   new functionality added to libsvn_wc in this commit.

* subversion/libsvn_wc/conflicts.c
  (svn_wc__conflict_tree_merge_local_changes): New. This function merges
   local changes (i.e. the delta between BASE and WORKING) from one
   directory in the working copy to another.

* subversion/libsvn_wc/wc_db.h
  (svn_wc__db_merge_local_changes): Declare.

* subversion/libsvn_wc/wc_db_update_move.c
  (tc_editor_merge_local_file_change): New TC editor receiver function.
  (get_working_info): New helper function. Similar to get_infp() but returns
   information about the WORKING tree.
  (walk_local_changes): Recursive walker which drives the TC editor per node.
  (merge_local_changes, svn_wc__db_merge_local_changes): New TC editor driver.
   Has not been tested yet beyond merging of simple file edits.

* subversion/tests/libsvn_client/conflicts-test.c
  (test_funcs): Remove XFAIL marker from test_merge_incoming_move_dir2.


git-svn-id: https://svn.apache.org/repos/asf/subversion/trunk@1754441 13f79535-47bb-0310-9956-ffa450edef68
6 files changed