On the diff-cmd branch:
Addressing issue 2044, extending the invocation capabilities of the
svn diff --diff-cmd.
See http://subversion.tigris.org/issues/show_bug.cgi?id=2044
This is an intermediate attempt for discussion and contains 2 bugs:
1) /subversion/tests/cmdline/diff_tests.py 52 is an XFAIL. Input
appears to be correct, but the test script with a space in the name
"diff script" is not called, this may be an apr_proc_create()
issue.
2) Emtpy single quotes are rendered as '''' by apr_proc_create().
* subversion/BRANCH-README
Decription of this Branch.
* subversion/include/private/svn_io_private.h
(svn_io__create_custom_diff_cmd): Declare new function and
document it. This function is an intermediate version and will
be refactored once the behaviour is settled.
* subversion/libsvn_subr/io.c
(svn_io__create_custom_diff_cmd): New Function. This function
translates user input to diff input.
(svn_io_run_diff): Refactor function to preserve old behaviour of
--diff-cmd whilst facilitiating the new extended syntax.
* subversion/tests/cmdline/diff_tests.py
(test_list): Add new tests diff_external_diffcmd_1,
diff_external_diffcmd_2, diff_external_diffcmd_3 and
diff_external_diffcmd_4.
(diff_external_diffcmd): Change test description, rename the test
script 'diff' to the more descriptive 'diff_script.
(diff_external_diffcmd_1): New function. Test that the
--extensions option works as before when the --diff-cmd is used
with the classic syntax.
(diff_external_diffcmd_2): New function. Check that the new syntax
produces a correct, simple diff program call.
(diff_external_diffcmd_3): New function. This case handles the
cases of -filename or filename+ where + and - are placeholders
for any chosen character. Check that strings containing spaces
enclosed in double quotes are correct parsed as one entry into
the execv compatible shell command array.
(diff_external_diffcmd_4): New function with XFAIL result. Check
that escaped spaces are correctly handled, in case the user has
a program name with a space in it. This currently fails at shell
level, so this may be the wrong approach alltogether.
git-svn-id: https://svn.apache.org/repos/asf/subversion/branches/diff-cmd-feature@1606200 13f79535-47bb-0310-9956-ffa450edef68
4 files changed