Add a new resolver option for merging an incoming directory move.

The implementation is very limited at present because it does not support
merging of local modifications from the deleted conflict victim to the incoming
move target. So this is a small step forward which makes things work for a
few cases (e.g. a merge which moves a directory that has no local mods in
the WC) but raises an error if used in unsupported situations (such as update
and switch, since they always involve local mods).
I hope this will be improved later.

* subversion/include/svn_client.h
  (svn_client_conflict_option_incoming_move_dir_merge): New option ID.
  (svn_client_conflict_option_get_moved_to_repos_relpath_candidates,
   svn_client_conflict_option_set_moved_to_repos_relpath,
   svn_client_conflict_option_get_moved_to_abspath_candidates
   svn_client_conflict_option_set_moved_to_abspath): Update docstrings.

* subversion/libsvn_client/conflicts.c
  (resolve_incoming_move_dir_merge): New resolver function. Currently performs
   a 2-URL merge of yca->victim into the move target (where yca is the youngest
   common ancestor of the conflict victim and the move target). This approach
   does not take local modifications into account, which needs to be fixed.
  (resolve_incoming_move_file_text_merge,
   svn_client_conflict_option_get_moved_to_repos_relpath_candidates,
   svn_client_conflict_option_set_moved_to_repos_relpath,
   svn_client_conflict_option_set_moved_to_repos_relpath,
   svn_client_conflict_option_set_moved_to_abspath): Update assertions.
  (configure_option_incoming_dir_merge): New helper function.
  (svn_client_conflict_tree_get_resolution_options): Configure the new option.
   
* subversion/svn/conflict-callbacks.c
  (builtin_resolver_options): Add the new option.
  (build_tree_conflict_options): Handle the new option in the same way as the
   existing svn_client_conflict_option_incoming_move_file_text_merge option.
  (handle_tree_conflict): Handle the new option.


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