Подтвердить что ты не робот

Отображение различий в строке на выходе diff

qaru.site/info/281419/... есть изображение KDiff3, выделяющее различия внутри линии. Знает ли кто-нибудь инструмент, который может показывать то же (например, через цвет) в командной строке?

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

4b9b3361

Ответ 1

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

Ответ 2

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

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

Установка

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

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

cat tmp.diff | diff-highlight | colordiff

Результат:

введите описание изображения здесь

Ответ 3

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

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

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

Ответ 4

Возможно, вы сможете использовать colordiff.

На странице man:

Любые параметры, переданные в colordiff, проходил через diff, за исключением специфичный для colordiff вариант "diffftype", например.

colordiff --difftype=debdiff file1 file2

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

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

Ответ 5

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

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