Diff with colour highlighting

svn diff ARGUMENTS_FOR_DIFF | source-highlight --out-format=esc --src-lang=diff

0
By: troelskn
2009-03-09 11:00:40

These Might Interest You

  • I don't think it's possible to give a (background) colour to the tab itself, since a tab is, IIUC, simply a command to the terminal to move to the right. Nevertheless, this "highlighting" can be helpful when working with tab-separated files. Show Sample Output


    -1
    hl-nonprinting () { local C=$(printf '\033[0;36m') R=$(printf '\033[0m'); sed -e "s/\t/${C}▹&$R/g" -e "s/$/${C}⁋$R/";}
    unhammer · 2012-11-07 09:55:48 0
  • Use vim's diff mode to edit two or more files in one window. The '+diffoff!' turns off diff highlighting when the session is started. Use ctrl+w + ctrl+w to switch between windows. Show Sample Output


    2
    vim -d '+diffoff!' file1 file2
    greggster · 2012-08-30 07:51:41 0
  • When searching in vi, the search string gets highlighted but the highlighting can become a nuisance. By searching for the very unlikely pattern "^~" the highlighting is effectively switched off. Show Sample Output


    -5
    /^~
    mpb · 2012-08-02 21:10:23 7
  • This form is used in patches, svn, git etc. And I've created an alias for it: alias diff='diff -Naur --strip-trailing-cr' The latter option is especially useful, when somebody in team works in Windows; could be also used in commands like svn diff --diff-cmd 'diff --strip-trailing-cr'... Show Sample Output


    3
    diff -Naur --strip-trailing-cr
    ruslan · 2011-02-10 14:32:42 0

What Others Think

I would be interested in this, but I don't have 'source-highlight' installed. Its not in the repositories for my distribution. Where did you get it?
Highwayman · 484 weeks and 6 days ago
I use the ccze application for this, in debian/ubuntu the package is named ccze, on redhat based systems I think its called colorize
elzapp · 484 weeks and 5 days ago
Under ubuntu/debian the colordiff package provides a wrapper for diff which colorizes diff's output, see http://colordiff.sourceforge.net/ for more, it's available for Linux, Free BSD, Mac OS X, or build it from source :-). You can use it like this: svn diff filename | colordiff | less -R I like to browse my diffs, so I pipe colordiff's output to less. The -R option is important to make less properly display the colors generated by colordiff. I wrote a bash function (in my .bashrc file) for myself so I don't have to type this junk repeatedly: function svndiff () { svn diff $@ | colordiff | less -SR; } (notice the missing space.) So instead of typing a command with two pipes, I just type svndiff filenames and I get the benefits of colordiff.
bwoodacre · 484 weeks and 5 days ago
All code checked in yesterday: svn diff -r HEAD:{"`date -date --date=yesterday '+%F %T'`"} | colordiff | less -R
anoland · 479 weeks and 3 days ago
Correction to above.... I have the revisons backwards. Use this instead: svn diff -r {"`(date --date=yesterday '+%F %T')`"}:HEAD | colordiff | less -R
anoland · 479 weeks and 2 days ago
Notice that you are able to configure the diff (and diff3 and merge) command used by svn in ~/.subversion/config. For example to use colordiff you could change the relevant lines to the following: diff-cmd=colordiff diff-extensions=-u -w -p
unixmonkey42289 · 293 weeks and 3 days ago

What do you think?

Any thoughts on this command? Does it work on your machine? Can you do the same thing with only 14 characters?

You must be signed in to comment.

What's this?

commandlinefu.com is the place to record those command-line gems that you return to again and again. That way others can gain from your CLI wisdom and you from theirs too. All commands can be commented on, discussed and voted up or down.

Share Your Commands



Stay in the loop…

Follow the Tweets.

Every new command is wrapped in a tweet and posted to Twitter. Following the stream is a great way of staying abreast of the latest commands. For the more discerning, there are Twitter accounts for commands that get a minimum of 3 and 10 votes - that way only the great commands get tweeted.

» http://twitter.com/commandlinefu
» http://twitter.com/commandlinefu3
» http://twitter.com/commandlinefu10

Subscribe to the feeds.

Use your favourite RSS aggregator to stay in touch with the latest commands. There are feeds mirroring the 3 Twitter streams as well as for virtually every other subset (users, tags, functions,…):

Subscribe to the feed for: