Repolode
Wilfred

Wilfred/difftastic

Консольная утилита для сравнения файлов по дереву синтаксиса, а не по строкам: она точно показывает переформатирование и перемещение кода.

Звёзды
26,159
Форки
533
Открытые issues
282
Последний коммит
позавчера

Что это?

Difftastic — инструмент для структурного сравнения файлов: он сопоставляет их синтаксис, а не строки. Утилита разбирает оба файла и подсвечивает только действительно изменившиеся синтаксические элементы, даже если код переформатировали или разбили на большее количество строк.

Пробелы учитываются только там, где они имеют значение для языка, поэтому чистое изменение отступов распознаётся именно как таковое. Для неизвестных типов файлов Difftastic использует построчное сравнение с подсветкой слов. Результат отображается в виде двух колонок — для удобного чтения, а не для создания патчей.

Difftastic работает с git и другими системами контроля версий, а также может разрешать маркеры конфликта слияния, сравнивая две стороны. Кроме того, есть режим проверки, который завершает работу с кодом возврата, зависящим от того, изменился ли синтаксис.

Ключевые возможности

  • 01Сравнивает код по дереву синтаксиса, поэтому переформатирование не создаёт лишнего шума в diff.
  • 02Поддерживает более 30 языков программирования.
  • 03Подсвечивает изменения пробелов только там, где они важны для синтаксиса.
  • 04Работает с git и другими системами контроля версий.
  • 05Сравнивает две стороны конфликта слияния по маркерам конфликта.
  • 06Предлагает режим проверки, который позволяет обнаружить синтаксические изменения без полного diff.

Сценарии использования

  • Проверка коммитов, в которых код переформатировали или перестроили.
  • Просмотр diff крупных рефакторингов на Rust, JavaScript, HTML и других языках.
  • Проверка в CI, различаются ли две версии файла по синтаксису.
  • Просмотр конфликтов слияния в двух колонках, чтобы лучше видеть реальные изменения.

Быстрый старт

  1. 1

    Установите difftastic, следуя руководству по установке в документации

  2. 2

    Сравните два файла с помощью difft

    difft foo1.c foo2.c

Что важно знать

  • На файлах с большим количеством изменений производительность заметно падает, а потребление памяти может быть высоким.
  • Порядок всегда считается значимым, поэтому переставленные элементы, например элементы множества или несортированные ключи, отображаются как изменения.
  • Не выполняет слияние и не создает патчи, которые можно применить позже.

В подборках

Темы

Частые вопросы

Что такое difftastic?
Консольная утилита для сравнения файлов по дереву синтаксиса, а не по строкам: она точно показывает переформатирование и перемещение кода. Difftastic — инструмент для структурного сравнения файлов: он сопоставляет их синтаксис, а не строки. Утилита разбирает оба файла и подсвечивает только действительно изменившиеся синтаксические элементы, даже если код переформатировали или разбили на большее количество строк.
difftastic можно использовать бесплатно? Какая у него лицензия?
difftastic распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
difftastic всё ещё поддерживается?
Активно поддерживается. Последний коммит в difftastic — 4 нояб. 2026 г..
Для чего можно использовать difftastic?
Проверка коммитов, в которых код переформатировали или перестроили. Просмотр diff крупных рефакторингов на Rust, JavaScript, HTML и других языках. Проверка в CI, различаются ли две версии файла по синтаксису. Просмотр конфликтов слияния в двух колонках, чтобы лучше видеть реальные изменения.
Как установить difftastic?
Установите difftastic, следуя руководству по установке в документации Сравните два файла с помощью difft: difft foo1.c foo2.c
Где скачать difftastic?
Исходный код и инструкции по установке — на GitHub: https://github.com/Wilfred/difftastic

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

CLI-инструмент, который запускает локальный веб-интерфейс в стиле GitHub для просмотра и обсуждения git diff с комментариями, которые можно копировать как промпты для ИИ.

3,3 тыс.+19 за неделю216TypeScriptMITАктивно поддерживаетсяОбновлён 2 месяца назад