On the invoke-diff3-feature branch: Add new invoke-diff3-cmd to
Subversion.
* BRANCH-README
(*) Description of Branch.
* subversion/include/private/svn_wc_private.h
(svn_wc__get_file_external_editor,
(svn_wc__get_update_editor,
(svn_wc__get_switch_editor): New parameter:
const char *invoke_diff3_cmd.
* subversion/include/svn_config.h
(): New definition: SVN_CONFIG_OPTION_INVOKE_DIFF3_CMD.
* subversion/include/svn_error_codes.h
(command-line client errors): New definition:
SVN_ERR_CL_NO_EXTERNAL_DIFF3_TOOL.
(SVN_ERR_CL_ERROR_PROCESSING_EXTERNALS): Adjust numbering in order
to retain a logical grouping.
* subversion/include/svn_io.h
(svn_io_run_invoke_diff3): New function.
* subversion/include/svn_wc.h
(svn_wc_merge6): New function.
(svn_wc_merge5): Deprecate.
* subversion/libsvn_client/externals.c
(switch_file_external): New variable: const char *invoke_diff3_cmd.
Initialize diff3_cmd to NULL. Add precedence logic and read the
config file to populate invoke_diff3_cmd. Add invoke_diff3_cmd in
call to svn_wc__get_file_external_editor().
* subversion/libsvn_client/merge.c
(merge_cmd_baton_t): New member *invoke_diff3_cmd. Adjust comment.
(merge_file_changed): Replace call to svn_wc_merge5 with call to
svn_wc_merge6.
(do_merge): New variable: const char *invoke_diff3_cmd. Initialize
diff3_cmd to NULL. Adjust comment. Add precedence logic and read
the config file to populate invoke_diff3_cmd. Add invoke_diff3_cmd
to merge_baton.
* subversion/libsvn_client/switch.c
(switch_internal): New variable: const char *invoke_diff3_cmd. Add
precedence logic and read the config file to populate
invoke_diff3_cmd. Add invoke_diff3_cmd in call to
svn_wc__get_switch_editor().
* subversion/libsvn_client/update.c
(update_internal): Initialize diff3_cmd to NULL. New variable:
*invoke_diff3_cmd. Adjust comment, add precedence logic and read
the config file to populate invoke_diff3_cmd. Add
invoke_diff3_cmd in call to svn_wc__get_update_editor().
* subversion/libsvn_subr/config_file.c
(svn_config_ensure): Add entry for invoke-diff3-cmd.
* subversion/libsvn_subr/io.c
(svn_io_run_invoke_diff3): New function.
* subversion/libsvn_wc/deprecated.c
(svn_wc_get_update_editor4): Add invoke-diff3-cmd as NULL to call to
svn_wc__get_update_editor().
(svn_wc_get_switch_editor4): Add invoke-diff3-cmd as NULL to call to
svn_wc__get_switch_editor().
(svn_wc_merge5): New function.
* subversion/libsvn_wc/externals.c
(struct edit_baton): Rename diff3cmd to diff3_cmd. New member
variable: const char *invoke_diff3_cmd.
(close_file): Rename diff3cmd to diff3_cmd and add invoke_diff3_cmd
in call to svn_wc__perform_file_merge().
(svn_wc__get_file_external_editor): New parameter: const char
*invoke_diff3_cmd. Rename diff3cmd to diff3_cmd in eb
assignment and assign invoke_diff3_cmd to struct edit_baton eb.
* subversion/libsvn_wc/merge.c
(merge_target_t): Adjust comment for old_actual_props. New member
variable: invoke_diff3_cmd.
(do_text_merge_external): New parameter: const char
invoke_diff3_cmd. Add if condition to route call to newly added
svn_io_run_invoke_diff3(). Add clarifying braces around
A = (B == C) type assignment.
(merge_text_file): Adjust if condition to route call to
do_text_merge_external() and add invoke_diff3_cmd to call to
do_text_merge_external().
(svn_wc__internal_merge): New parameter: const char
*invoke_diff3_cmd. Assign invoke_diff3_cmd to mt. Add
invoke_diff3_cmd as a conditional variable in to call to
detranslate_wc_file().
(svn_wc_merge6): Declare new API.
* subversion/libsvn_wc/update_editor.c
(struct edit_baton): New member const char *invoke_diff3_cmd.
(svn_wc__perform_file_merge): New parameter: const char
*invoke_diff3_cmd. Add invoke_diff3_cmd to
svn_wc__internal_merge().
(merge_file): Add invoke_diff3_cmd to svn_wc__internal_merge().
(make_editor): New parameter: const char *invoke_diff3_cmd. Assign
invoke_diff3_cmd to eb.
(svn_wc__get_update_editor, svn_wc__get_switch_editor): New
parameter: const char *invoke_diff3_cmd. Add invoke_diff3_cmd to
call to make_editor().
* subversion/libsvn_wc/wc.h
(svn_wc__internal_merge): Adjust function comment. New parameter:
const char *invoke_diff3_cmd. Add newline to conform to general
formatting in this file.
(svn_wc__perform_file_merge): New parameter: const char
*invoke_diff3_cmd.
* subversion/libsvn_wc/wc_db_update_move.c
(update_working_file): Add invoke_diff3_cmd in call to
svn_wc__perform_file_merge() as NULL. Adjust other comments for
neatness.
* subversion/svn/cl.h
(svn_cl__accept_t): New commented member:
svn_cl__accept_invoke_diff3_config.
(): New definition: SVN_CL__ACCEPT_INVOKE_DIFF3_CONFIG.
(svn_cl__opt_state_t): New member const char* invoke_diff3_cmd.
(svn_cl__invoke_diff3_cmd_externally): New function.
* subversion/svn/conflict-callbacks.c
(svn_cl__accept_from_word): Add SVN_CL__ACCEPT_INVOKE_DIFF3_CONFIG
to if condition returns svn_cl__accept_launch.
(invoke_diff3_resolver): New routing function that calls
svn_cl__invoke_diff3_cmd_externally().
(text_conflict_options): Add "3f" option for invoke-diff3-cmd tool
selection and add 'i' option for interactive invoke-diff3-cmd
input.
(handle_text_conflict): Add interactive selection code for
invoke-diff3-cmd input ("i" section) and invoke-diff3-cmd tool
("3f" section) to if condition. Add '3f' and 'i' to next_option.
Adjust general indentation(2 entries).
(conflict_func_interactive): Add cases for "i" and "3f" selection.
Adjust general indentation. Add case
'svn_cl__accept_invoke_diff3_config'.
* subversion/svn/svn.c
(svn_cl__longopt_t): New member 'opt_diff3_cmd'.
(svn_cl__options): Add 'invoke-diff3-cmd' entry plus help text.
(svn_cl__cmd_table,"cleanup","merge","switch","update"): Add
opt_invoke_diff3_cmd.
(sub_main): Add case opt_invoke_diff3_cmd. Ensure murutal
exclusiveness of diff3-cmd and invoke-diff3-cmd. Add call to
svn_config_set(). Add error check for
svn_cl__accept_invoke_diff3_config.
* subversion/svn/util.c
(): Include svn_io_private.h
(svn_cl__invoke_diff3_cmd_externally): New function.
* subversion/tests/cmdline/getopt_tests_data/svn_help_log_switch_stdout
(): Update help output.
git-svn-id: https://svn.apache.org/repos/asf/subversion/branches/invoke-diff3-feature@1542514 13f79535-47bb-0310-9956-ffa450edef68
23 files changed