Что это такое
diff-so-fancy — консольный инструмент для красивого отображения diff. Он делает вывод Git и обычного diff более читаемым для человека.
Идея проекта простая: качество ревью зависит не только от кода, но и от того, насколько быстро глаз понимает изменение. Стандартный diff точен, но не всегда удобен.
Что внутри
Проект написан на Perl и распространяется как скрипт с дополнительной библиотечной папкой. Его можно поставить через Homebrew, npm, пакеты Linux или вручную из релиза.
diff-so-fancy умеет менять оформление заголовков, hunk-индикаторов, пустых строк, ruler-линий и других деталей, чтобы вывод был спокойнее и структурнее.
Как используют
Чаще всего инструмент подключают как pager для Git. После этого обычный `git diff` или интерактивные операции показывают более читаемый вывод.
Он полезен разработчикам, которые много смотрят изменения в терминале: перед коммитом, во время ревью, при сравнении веток и разборе чужих правок.
Пример
Команды настраивают Git так, чтобы diff-so-fancy обрабатывал обычный вывод diff и интерактивный diff-filter.
Подключение к Git
Пример делает diff-so-fancy стандартным обработчиком вывода Git diff.
git config --global core.pager "diff-so-fancy | less --tabs=4 -RF"
git config --global interactive.diffFilter "diff-so-fancy --patch"
Сильные стороны и ограничения
Сильная сторона diff-so-fancy — малое изменение с большим ежедневным эффектом. Инструмент не меняет Git, а делает чтение изменений легче.
Ограничение — субъективность. Некоторым командам нужен максимально стандартный diff без украшений, особенно в документации или при обучении новичков.
Контекст проекта
diff-so-fancy ведется в репозитории so-fancy/diff-so-fancy; публичная история проекта начинается 2016-02-04. Основной язык, который показывает GitHub, — Perl, лицензия — MIT.
Для страницы каталога это важно как практический контекст: читатель видит не абстрактное название, а реальный проект с владельцем, лицензией, технической базой и открытой историей изменений.