You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by Gabriela Gibson <ga...@gmail.com> on 2013/05/13 23:53:14 UTC

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

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.

]]]

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

Posted by Gabriela Gibson <ga...@gmail.com>.
Hi,

I made a feature branch for the project here:

https://svn.apache.org/repos/asf/subversion/branches/invoke-diff-cmd-feature/

Gabriela



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

Posted by Gabriela Gibson <ga...@gmail.com>.
On 13/05/13 22:53, Gabriela Gibson wrote:
> Hi,
>
> thanks for all the comments and help, here is the next attempt.
>
> Gabriela
>

Sorry I had one mistake in the patch that has now been fixed.
Please ignore the patch in the previous post, the attached patch is the 
working one.

Gabriela