passing multiple options to svn diff when using an external diff

If you want to pass in multiple options to svn diff when you are using the external diff with –diff-cmd as option use multiple options in quotations “-p -u” and pass them through -x option of svn diff.

Otherwise external diff will only consider one of the inputs if you use the format -x -p -x -u instead of -x “-p -u”.

For example, correct way to use pass options to external diff to get both unified diff format (-u) as well as the diff to output a c function (-p) is this way.

svn diff --diff-cmd /usr/bin/diff -x "-p -u" -r rev1:rev2 https://svl-svn.gazarpagop.net/svn/tom/rom.c

If use the typical unix command line way of specifying multiple options when using external diff through –diff-cmd it seems like the last options that you specify on the command line overtakes.

For example, if this command is used

svn diff --diff-cmd /usr/bin/diff -x -p -x -u -r rev1:rev2 https://svl-svn.gazarpagop.net/svn/tom/rom.c

Only -u will take effect in the diff file you get as input.

If this command is used

svn diff --diff-cmd /usr/bin/diff -x -u -x -p  -r rev1:rev2 https://svl-svn.gazarpagop.net/svn/tom/rom.c

Only -p will take effect in the diff file.