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