Remove two hacks from the conflict resolver API that were added to allow handling --accept=mine-conflict | working for tree conflicts and --accept=working for binary text conflicts.
This patch makes the command-line client fully responsible for choosing the appropriate conflict option id, and keeps the various new APIs such as svn_client_conflict_text_resolve_by_id() simple and doing just what they were told to do.
* subversion/libsvn_client/conflicts.c (svn_client_conflict_text_resolve_by_id, svn_client_conflict_tree_resolve_by_id): Remove hacks from these functions.
* subversion/svn/conflict-callbacks.c (resolve_conflict_by_accept_option): Inline parts of this function that handle svn_cl__accept_edit and svn_cl__accept_launch ... (svn_cl__resolve_conflict): ...here. Accept svn_cl__accept_t by value, drop the option id argument. Pick the appropriate option id based on the passed-in svn_cl__accept_t argument. Prompt the user if there is no option or if the option did not apply.
* subversion/svn/resolve-cmd.c (svn_cl__resolve): Handle unsupported --accept [--non-interactive] cases in this function. (svn_cl__walk_conflicts): Remove the is_resolve_cmd argument. Don't map the --accept option to option id here, as we will do it in the svn_cl__resolve_conflict() function. Adjust calls to walk_conflicts() and svn_cl__resolve_conflict(). (walk_conflicts): Remove option_id argument, accept svn_cl__accept_t by value. (conflict_status_walker): Adjust call to svn_cl__resolve_conflict(). (conflict_status_walker_baton): Remove option_id field, store accept_which field by value.
* subversion/svn/merge-cmd.c (svn_cl__merge): Adjust call to svn_cl__walk_conflicts().
* subversion/svn/switch-cmd.c (svn_cl__switch): Adjust call to svn_cl__walk_conflicts().
* subversion/svn/update-cmd.c (svn_cl__update): Adjust call to svn_cl__walk_conflicts().
Make 'svn update' treat incoming add vs. local add as a tree conflict again.
Back in r862331 the update editor was taught to automatically merge local additions with incoming additions. This was the default behaviour until now. I expect the conflict resolver to offer better support for this eventually. To prepare for that, disable this automatic merge during updates by default. This is easy to do since svn_client_update() provides a flag for it.
Add a new command line option to enable the old behaviour, mainly to keep testing the old behaviour in our test suite. The old behaviour must not be broken, according to our API compatibility guarantees.
'svn switch' was changed similarly in r862331, but has already been changed to flag a tree conflict by default long ago.