Add resolver support for moved-file vs moved-file upon update.
The resolver now supports move vs move tree conflicts for files after an update operation.
Two new resolution operations are available:
(m) - override incoming move and merge incoming changes from 'alpha-moved' to 'alpha-also-moved' (M) - accept incoming move and merge local changes from 'alpha-also-moved' to 'alpha-moved'
Where the file was originally called 'alpha', was renamed to 'alpha-moved' in the repository, and renamed to 'alpha-also-moved' in the working copy.
Because the local move is broken during the update operation when the delete-half of the move is updated, the resolver only has the copied half move available in the working copy. To find the local move destination the resolver queries the working copy database for nodes which are copies of the conflict victim's repository path. This can of course lead to ambiguous results in case a node is first copied and then moved, in which case the resolver offers the user a choice of local move targets in the usual way.
* subversion/libsvn_client/conflicts.c (conflict_tree_update_local_moved_away_details): New conflict details struct. (resolve_both_moved_file_update_keep_local_move, resolve_both_moved_file_update_keep_incoming_move): New resolution handlers. (conflict_tree_get_details_update_local_moved_away): New details fetcher which locates copied nodes corresponding to the local move. (get_both_moved_file_paths): New helper function. (conflict_tree_get_description_update_both_moved_file_merge, conflict_tree_get_description_update_both_moved_file_move_merge): New functions which describe incoming move vs local move conflicts flagged during updates of files. (configure_option_both_moved_file_merge): Hook up the new options. (svn_client_conflict_option_get_moved_to_abspath_candidates2, svn_client_conflict_option_set_moved_to_abspath2, conflict_type_specific_setup): Support the newly added conflict options.
* subversion/tests/libsvn_client/conflicts-test.c (create_file_move_vs_file_move_update_conflict): New helper function. (test_update_file_move_vs_file_move, test_update_file_move_vs_file_move_accept_move, test_funcs): New tests which exercise both of the newly added conflict resolution options.
* subversion/include/private/svn_wc_private.h (svn_wc__get_shelves_dir): Add a missing '@warning EXPERIMENTAL' for consistency with all other shelving functions, although as this is a private header it's not really necessary.