On the 'move-tracking-2' branch: Rework the 'move to a different branch' functionality. Add new commands 'copy-and-delete', 'branch-and-delete', 'branch-into-and-delete', and make the 'mv' command interactively ask the user what they want to do for a cross-branch move, offering those three as the options.
* subversion/svnmover/svnmover.c (action_code_t, action_defn): Define new actions 'copy-and-delete', 'branch-and-delete', 'branch-into-and-delete'. (do_copy_and_delete): Rename from 'move_by_copy_and_delete'. Use the existing 'do_*' functions so as to be sure it is equivalent, and to get notifications. (do_branch_and_delete): New. (do_branch_into_and_delete): Rename from 'move_by_branch_and_delete'. Use the existing 'do_*' functions, as above. (do_interactive_cross_branch_move): New. (do_move): Only handle 'normal' moves. (VERIFY_NOT_CHILD_OF_SELF): Change the error message so it doesn't assume the operation is 'move'. (execute): Let 'mv' call the interactive function for a cross-branch move. Implement the three new subcommands.
* subversion/tests/cmdline/svnmover_tests.py (move_to_related_branch, move_to_related_branch_element_already_exists): Use branch-into-and-delete. (move_to_unrelated_branch): Use copy-and-delete. (move_to_related_branch_2): Use branch-into-and-delete.
On the 'move-tracking-2' branch: Update an error message, now that svnmover accepts paths specified with respect to a branch (r1696816), and minor factoring.
* subversion/svnmover/svnmover.c (point_to_outer_element_instead): Factor out error handling from 'execute' to here. Update the error message to suit top-level branches. (execute): Update the call sites in the 'mv' and 'rm' commands.