Un peu de couleur dans vos patchs

En programmation, on peut être amené à utiliser des patchs qui indiquent les modifications à réaliser dans un fichier source.

Personnellement, je les applique toujours à partir de mon shell, et il m’arrive de vouloir les regarder avant application ou bien de vouloir regarder la partie rejetée d’un patch.

Rien de mieux qu’un peu de couleurs pour que ce soit plus agréable! Pour cela, on peut faire appel à colordiff.

J’utilise le fichier de configuration suivant pour colordiff (fichier à sauvegarder dans ~/.colordiffrc) :

# Set banner=no to suppress authorship info at top of
# colordiff output
banner=no
# By default, when colordiff output is being redirected
# to a file, it detects this and does not colour-highlight
# To make the patch file *include* colours, change the option
# below to 'yes'
color_patches=no
#
# available colours are: white, yellow, green, blue,
#                        cyan, red, magenta, black,
#                        darkwhite, darkyellow, darkgreen,
#                        darkblue, darkcyan, darkred,
#                        darkmagenta, darkblack
#
# Can also specify 'none', 'normal' or 'off' which are all
# aliases for the same thing, namely "don't colour highlight
# this, use the default output colour"
#
plain=off
newtext=darkgreen
oldtext=darkred
diffstuff=darkcyan
cvsstuff=darkblue

Les couleurs ont été choisi pour apporter un résultat le plus proche possible de la sortie de git-diff avec les couleurs par défaut.

Dernière petite chose, colordiff n’est pas un pager, voici donc le petit script lessdiff que j’utilise à la place de less lorsque je veux regarder un patch :

~~~~ {.bash}

!/bin/sh

if [ $# -gt 0 ]; then cat “$@” | colordiff | less -RS exit fi   colordiff | less -RS ~~~~