[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: Diff Project --invoke-diff-cmd part

From: Gabriela Gibson <gabriela.gibson_at_gmail.com>
Date: Mon, 13 May 2013 22:53:14 +0100

Hi,

thanks for all the comments and help, here is the next attempt.

Gabriela

[[[
Add new diff option "--invoke-diff-cmd" which allows the user to
define a custom command line or config file entry for an external
diff program.

* subversion/include/svn_client.h

   (svn_client_diff7, svn_client_diff_peg7): Declare the new API. Like
     svn_client_diff[_peg]6 but with invoke_diff_cmd parameter.

   (svn_client_diff6, svn_client_diff_peg_6): Deprecate.

* subversion/include/svn_config.h

   (SVN_CONFIG_OPTION_INVOKE_DIFF_CMD): New definition.

* subversion/include/svn_io.h

    (svn_io_create_custom_diff_cmd): New function.

    (svn_io_run_external_diff): New function.

* subversion/libsvn_client/deprecated.c

   (svn_client_diff6, svn_client_diff_peg6): New deprecation wrappers.

* subversion/libsvn_client/diff.c

   (struct diff_cmd_baton): New member: 'invoke_diff_cmd'.

   (diff_content_changed): Call svn_io_run_external_diff if
     --invoke-diff-cmd option was specified, otherwise retain previous
     behaviour.

   (set_up_diff_cmd_and_options): Apply invoke-diff-cmd option
     preferentially. Old behavior unchanged.

   (svn_client_diff_peg_7): Rename and update from
     svn_client_diff_peg_6. Add new parameter: invoke_diff_cmd.

   (svn_client_diff7): Rename and update from svn_client_diff6, add
     new parameter 'invoke_diff_cmd'.

   (): Update all comments mentioning 'svn_client_diff6' to
     'svn_client_diff7'.

* subversion/libsvn_subr/config_file.c

   (svn_config_ensure): New entry: invoke-diff-cmd.

* subversion/libsvn_subr/io.c

   (svn_io_create_custom_diff_cmd): New function.

   (svn_io_run_external_diff): New function.

* subversion/svn/cl.h

   (struct svn_cl__opt_state_t.diff): New member: 'invoke_diff_cmd'.

* subversion/svn/diff-cmd.c

   (svn_cl__diff): Update call to svn_client_diff6 to svn_client_diff7.

* subversion/svn/svn.c

   (svn_cl__options[]): Add help info and new variable:
     'opt_invoke_diff_cmd'.

   (svn_cl__cmd_table[]): New option: 'invoke-diff-cmd'.

   (sub_main): Prohibit simultaneous usage of --invoke-diff-cmd and
     --internal-diff. Add new opt_state.diff.invoke-diff-cmd option
     to the option selector. Add call to svn_config_set.

* subversion/tests/cmdline/diff_tests.py

   (diff_invoke_external_diffcmd): New function.

   (test_list): Add new entry 'diff_invoke_external_diffcmd'.

* tools/hook-scripts/argv_dump.pl

   (New File): Perl script that enumerates output by svn to assist with
     testing.

]]]

Received on 2013-05-13 23:53:47 CEST

This is an archived mail posted to the Subversion Dev mailing list.