Автор: Патрик Мурена (Patrick Murena)
Перевод: Алексей Бешенов
2008-03-12
Оригинал: «colordiff: put some color in your diffs», 9 января 2008 г.
colordiff — маленькое средство для подсветки вывода diff, здорово повышающее удобство чтения.
colordiff можно использовать как надстройку для diff, команды построчного сравнения файлов. Запустите
$ colordiff файл1 файл2Это покажет различия между файлом1 и файлом2, с подсветкой. Также вы можете передать в colordiff опции для diff. Например, для вывода различий между двумя директориями:
$ colordiff -Nur директория1 директория2colordiff также можно использовать в конвейере. Поместите на вход программы вывод diff, и вы получите тот же текст, но уже в цветном варианте.
$ cat some_patch_file | colordiffИли, например:
$ cvs diff | colordiffcolordiff работает даже с wdiff, начиная с версии 1.0.7 (сейчас есть в нестабильной ветке Debian, но не в Ubuntu).
Цвета по умолчанию очень хорошо различаются на темном терминале: синий для нового текста, красный для старого, пурпурный для остальной информации diff. При желании, цвета можно легко поменять. Так как colordiff не может определять, работает ли он в темном или светлом терминале, по умолчанию текст может выглядеть довольно резко на белом фоне. На этот случай к colordiff прилагается файл colordiffrc-lightbg с примером альтернативных настроек.
Если вам нравится подсвечивать все в консоли, может оказаться полезным ccze для лог-файлов, colormake для вывода make, colorgcc для вывода gcc, а также highlight (с опцией --ansi) для исходных кодов на более чем 100 языках программирования.
colordiff можно использовать всюду, где работает diff, поэтому может оказаться удобным заменить diff на colordiff. Добавьте в файл настроек командного процессора
alias diff=colordiffФункция svndiff
Если вы постоянно используете систему контроля версий, может пригодиться обертка для diff в ~/.bashrc, ~/.zshrc или другом файле настроек оболочки. Например, вот моя функция svndiff:
svndiff () { svn diff "${@}" | colordiff | less -R -E }
Теперь я могу запускать svndiff в директории, управляемой SVN, и получать читаемую информацию об изменениях. cvsdiff () можно найти в руководстве colordiff, для другой системы контроля версий подобную функцию не составит труда написать самостоятельно.
colordiff доступен в Debian, от Sarge до Sid, и в Ubuntu, от Dapper до Gutsy.