| This branch implements the 'invoke-diff-cmd' feature and is located at |
| https://svn.apache.org/repos/asf/subversion/branches/diff-cmd-feature/ |
| |
| This branch adds a new syntax facility to --diff-cmd and it's config |
| counterpart, whilst preserving the old behaviour. |
| |
| The new syntax allows the use of 4 keywords: |
| |
| %svn_new_label, %svn_old_label, %svn_old %svn_new |
| |
| At a minimum, %svn_new and %svn_old are required amongst any arbitrary |
| character sequence. |
| |
| The code looks for the presence of %svn_old and if it does not detect |
| it, it translates the --diff-cmd input and --extensions if they have |
| been set to match the old --diff-cmds' translation before parsing the |
| result with svn_io__create_custom_diff_cmd(). |
| |
| |
| Usage: |
| ====== |
| |
| Examples: |
| |
| svn diff --diff-cmd=diff %svn_new %svn_old |
| svn diff --diff-cmd=diff -L %svn_new_label %svn_new -L "Old File" %svn_old |
| |
| |
| TODO: |
| ===== |
| |
| 1) Finalise the current parsing capabilities |
| 2) Write a fuzzing test for svn_io__create_custom_diff_cmd() |
| 3) Rewrite the final svn_io__create_custom_diff_cmd() design |
| 4) Solve the "diff\ script" problem |
| 5) Solve the empty single back quotes problem |
| 6) Discuss if adding this to the existing --diff-cmd (as per 2044) |
| is useful and desired. |
| |
| |
| Problems: |
| ========= |
| |
| 1) The "diff\ script" problem test problem: |
| |
| /subversion/tests/cmdline/diff_tests.py 52 |
| |
| fails, because whilst the output is as expected, the shell fails to |
| find the "diff script". |
| |
| 2) The empty single back quotes problem: |
| |
| Emtpy single quotes are sent to the shell duplicated (twice it seems). |
| |
| The command: |
| |
| ./subversion/svn/svn diff --diff-cmd="diff --changed-group-format='%<'\ |
| --unchanged-group-format='' %svn_new %svn_old" |
| |
| Causes the external diff command to display 4 backticks in the |
| unchanged-group-format, and where there should be no line at all, |
| "''''" (4 backticks) are displayed. |
| |