-
-
Save johnjohndoe/1790203 to your computer and use it in GitHub Desktop.
# Colorize SVN | |
# ------------ | |
# Adds color to the output of commands like svn status and svn update. | |
# The original version of the script was posted by Ash_ on Stackoverflow | |
# Source: http://stackoverflow.com/questions/8786400/svn-add-colors-on-command-line-svn-with-awk-in-bash | |
function svn { | |
# Skip the color script when running an svn commit. | |
if [ "x$1" = "xci" ] || [ "x$1" = "xcommit" ] || [ "x$1" = "xadd" ] | |
then | |
command svn "$@"; | |
return; | |
fi | |
# Pipe svn through awk to colorize its output. | |
command svn "$@" | awk ' | |
BEGIN { | |
cpt_c=0; | |
} | |
{ | |
if ($1=="C") { | |
cpt_c=cpt_c+1; | |
print "\033[31m" $0 "\033[00m"; # Conflicts are displayed in red | |
} | |
else if ($1=="M") { | |
print "\033[31m" $0 "\033[00m"; # Modified in red | |
} | |
else if ($1=="A") { | |
print "\033[32m" $0 "\033[00m"; # Add in green | |
} | |
else if ($1=="?") { | |
print "\033[36m" $0 "\033[00m"; # New in cyan | |
} | |
else if ($1=="D") { | |
print "\033[31m" $0 "\033[00m"; # Delete in red | |
} | |
else if ($1=="U") { | |
print "\033[35m" $0 "\033[00m"; # Updated in light magenta | |
} | |
else if ($1=="X") { | |
print "\033[33m" $0 "\033[00m"; # No changes in yellow. | |
} | |
else if ($1=="At" || $1 == "External") { | |
print "\033[33m" $0 "\033[00m"; # Revision numbers in brown. | |
} | |
else { | |
print $0; # No color, just print the line | |
} | |
} | |
END { | |
print cpt_c, " conflicts are found."; | |
}'; | |
} |
hi its good but is we can also color to see which code we delete and which we updated like git ++ and -- with color
This was great!
To be able to redirect the output of these commands nicely though, I've added a bash test for tty output to the check for svn commit or add so that line 8 now reads:
if [ "x$1" = "xci" ] || [ "x$1" = "xcommit" ] || [ "x$1" = "xadd" ] || [ ! -t 1 ]
which gives something like the standard --color=auto
option for other commands (grep, ls etc).
Hello guys,
I'm the initial author of this snippet, and I've decided to bring it back to life: https://github.com/4wk-/beautifulSVN
@arvind-clarion: in the past few years, I already made this feature. See the link above ;)
@benkrikler: in my updated version, the svn add
command is supported with beautifulSVN. Could you please try it, and let me now if you have any trouble? So far, I never encountered any difficulties with this specific sub-command, but I'ld be glad to fix it ;)
Thanks
In standard configuration (svn only), note that discovered conflicts are stopping the script : indeed, when a file is conflicted, svn is handed over to the user, to let him type a few letters (see below)
Please follow the discussion on Stackoverflow