Another step in reducing coupling between diff drivers and diff writers.
Let svn_client__arbitrary_nodes_diff() anchor the diff processor API at the requested target paths always, rather than sometimes there and sometimes at the parent of one of them.
Move the responsibility for prefixing diff header paths with the first path's basename in certain cases (when the targets are not both directories) to the caller, where it is more appropriate since it is a presentation issue.
* subversion/libsvn_client/client.h, subversion/libsvn_client/diff_local.c (svn_client__arbitrary_nodes_diff): Always anchor at the requested target paths, even when they are not both directories. Remove the (now unused) 'anchor_at_given_paths' flag and (already unused) 'result_pool' params.
* subversion/libsvn_client/diff.c (do_diff): Determine the prefix for diff header paths here, instead.
* subversion/tests/cmdline/diff_tests.py (diff_arbitrary_files_and_dirs): Extend this case a little, adding a file that is modified and a node that is replaced by a different kind.
Reduce coupling between diff drivers and diff writers.
Let diff drivers anchor the diff-processor at the requested target paths, rather than sometimes there and sometimes at the parent of one of them, in summarize mode. The quirky anchoring still persists in non-summarize mode.
* subversion/libsvn_client/diff.c (diff_driver_info_t): Expand comments. (diff_wc_wc, diff_repos_repos, diff_repos_wc): Remove 'root_relpath' and 'root_is_dir' outputs; instead anchor the diff processor at the requested targets if no 'ddi' coupling parameter is given. (do_diff, svn_client_diff7, svn_client_diff_peg7, svn_client_diff_summarize2, svn_client_diff_summarize_peg2): Update the calls accordingly.
* subversion/libsvn_client/diff_local.c, subversion/libsvn_client/client.h (svn_client__arbitrary_nodes_diff): Remove 'root_relpath' and 'root_is_dir' outputs. Take an 'anchor_at_given_paths' mode flag and obey it.
* subversion/libsvn_client/diff_summarize.c, subversion/libsvn_client/client.h (summarize_baton_t, send_summary): Remove path adjustment. (svn_client__get_diff_summarize_callbacks): Remove path adjustment and an unused parameter.
* subversion/libsvn_wc/diff_local.c, subversion/include/private/svn_wc_private.h (svn_wc__diff7): Remove 'root_relpath' and 'root_is_dir' outputs. Take an 'anchor_at_given_paths' mode flag and obey it. (svn_wc_diff6): Update the call to svn_wc__diff7() accordingly.