When I use 'svn diff' from the command line, it prints out the lines that have changed but also the 3 unchanged lines before and after for context. I much prefer seeing only the changed lines with no context. I haven't been able to determine any command line options that will let me make it behave this way. Standard 'diff' and 'cvs diff' do what I want by default. Surely 'svn diff' can do this but I'm missing something. Anyone know how?
After looking into the useful link given above by unwind, the short answer is that svn's built-in diff can't do what I want. You can tell it to use the standard external diff though and pass arg's to that to tell it that you want no context. I put the following alias in my .bashrc and all now works well if I use that instead:
alias svndiff='svn diff --diff-cmd=diff -x -U0'
The suggestion above still produces the context format, but with 0 lines of context. This is still not the traditional diff output from before subversion.
What works for me is: svn di --diff-cmd=diff -x --normal
The --normal
option (in the diff that ships with OSX) gives the traditional format that some folks prefer.
You could pipe the results of 'svn diff' to grep and write a regular expression to get what you want. For example, try this:
svn diff | grep "^[+-\]"
The above command gets you all lines that begin with a '+' or a '-' or a '\'. (You need the '\' if you want to see differences such as "\ No newline at the end of the file".)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With