показывая различия в строке в выводе diff - PullRequest
18 голосов
/ 27 августа 2009

Этот ответ StackOverflow содержит изображение KDiff3, выделяющее различия между строками. Кто-нибудь знает инструмент, который может показать то же самое (например, через цвет) в командной строке?

Еще один способ думать об этом - это желание различать каждое различие в файле патча.

Ответы [ 5 ]

10 голосов
/ 27 августа 2009

Я не знаю, достаточно ли это командной строки для вашей цели, но vimdiff может это сделать (даже делает цвет). См., Например, изображение в этом связанном вопросе .

5 голосов
/ 16 июня 2016

Я попробовал все инструменты, которые нашел: wdiff, dwdiff, kdiff3, vimdiff, чтобы показать разницу между двумя длинными и немного разными линиями. Мой любимый diff-highlight (часть git contrib)

  • поддерживает формат diff - большое преимущество перед инструментами, требующими два файла, например (dwdiff), например если вам нужно визуализировать вывод модульных тестов
  • выделяется черным + белым или цветным, если вы подключите его к colordiff
  • подсвечивает символически - полезно для сравнения длинных строк без пробелов (лучше, чем wdiff)

Установка

В Ubuntu он, вероятно, уже есть в составе git contrib (установлен в пакете deb git). Скопируйте или свяжите его в папку ~ / bin с /usr/share/doc/git/contrib/diff-highlight/diff-highlight

Пример использования

cat tmp.diff | diff-highlight | colordiff

Результат:

enter image description here

4 голосов
/ 13 марта 2012

Другой интуитивно понятный способ увидеть все различия в размере слова (хотя и не бок о бок) - это использовать wdiff вместе с colordiff (вам может потребоваться установить оба). Примером этого может быть:

wdiff -n {file-A} {file-A} | colordiff

При желании вы можете передать это в less -R для прокрутки вывода (-R используется для отображения цветов в less).

2 голосов
/ 08 мая 2014

У меня была похожая проблема, и я хотел избежать использования vimdiff. Я обнаружил, что dwdiff (который доступен в Debian) имеет ряд преимуществ перед wdiff.

Самая полезная функция dwdiff заключается в том, что вы можете настроить разделители с помощью -d [CHARS], так что это полезно для сравнения всех видов вывода. Он также имеет встроенный цвет с флагом -c.

2 голосов
/ 27 августа 2009

Для этого вы можете использовать colordiff.

На их справочной странице :

Все параметры, переданные в colordiff, прошел через diff кроме специфичная для colordiff опция 'difftype', например,

colordiff --difftype=debdiff file1 file2

Допустимые значения для difftype: diff, diffc, diffu, diffy, wdiff, debdiff; они соответствуют простым различиям, контекстные различия, унифицированные различия, параллельные различия, вывод wdiff и вывод debdiff соответственно. Используйте эти переопределяет, когда Colordiff не может определить тип diff автоматически.

Я не проверял его, но параллельный вывод (производимый diff -y file1 file2) может дать вам эквивалент линейных различий.

...