1

I've tried using the command

svn diff --diff-cmd xxdiff some_file.cpp

But it gives me the error message "invalid option -- u"

After some googling, I tried using the "extensions", and setting it to blank, like this:

svn diff --extensions "" --diff-cmd xxdiff some_file.cpp

To get rid of the 'u', which worked, but then xxdiff complained about a "-L" option. How can I get this to work?

2 Answers 2

1

xx-svn-diff somefile.cpp

Details

Sign up to request clarification or add additional context in comments.

Comments

1

To figure out exactly what was being passed to svn diff, I created a one line script in my local directory called 'svn-xxdiff' which only has one line: "echo $@", and then ran it as follows:

svn diff --diff-cmd ./svn-xxdiff some_file.cpp

This showed me that the arguments being passed to xxdiff were as follows:

-u -L some_file.cpp (revision 1234) -L some_file.cpp (working copy) .svn/text-base/some_file.cpp.svn-base some_file.cpp

Note: "some_file.cpp (revision 1234)" is considered a single argument, I imagine it's because it comes after "-L", please correct me if I'm wrong.

With this information, I created a really quick workaround. In my svn-xxdiff script, I just changed "echo $@" to:

xxdiff --title1 "$3" --title2 "$5" $6 $7 

Pop that file into a $PATH directory (like /bin/) and you should be able to use xxdiff with svn, and the titles will reflect appropriately. I'm not sure how I'd modify this script for a 3-way diff, I have less experience with those, but if others would like to suggest a modification for that, please do.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.