KDiff3 — графический инструмент для сравнения и слияния текстовых файлов и каталогов, ориентированный на выявление и разрешение различий в исходном коде и других текстовых данных. Программа поддерживает посимвольное и построчное сравнение, предоставляет визуальное представление отличий и позволяет объединять изменения из двух или трёх версий одновременно. Интерфейс включает панели с выделением различий, навигацию по конфликтам и средства для выбора желаемых фрагментов при слиянии.
Разработка KDiff3 велась как свободное программное обеспечение и использует типичные подходы к сравнительному анализу текстов, включая алгоритмы для вычисления наибольшей общей подпоследовательности и эвристики для улучшения читаемости результатов. Программа применяется разработчиками при слиянии веток в системах контроля версий, при сравнении резервных копий и при ручном разрешении конфликтов. В случае ограниченности доступной информации о деталях реализации это описание отражает общепринятые функции аналогичных инструментов сравнения и слияния, характерные для KDiff3.
- Трёхстороннее слияние — возможность объединять изменения из трёх версий (обычно база, локальная и удалённая) с выбором конфликтующих фрагментов.
- Посимвольное и построчное выделение отличий — тонкая настройка уровня детекции изменений для наглядного отображения вставок, удалений и замен.
- Сравнение каталогов — рекурсивное сравнение содержимого папок с показом отсутствующих и изменённых файлов.
- Интерактивное разрешение конфликтов — средства выбора и комбинирования блоков текста с отображением итогового результата.
- Поддержка разных кодировок и перевод строк — обработка файлов с различными кодировками символов и форматами конца строки.
- Настраиваемые алгоритмы сравнения — параметры для управления чувствительностью к пробелам, регистру и другим факторам при сравнении.
- Интеграция с системами контроля версий — возможность использования в качестве внешнего инструмента для merge/diff в популярных VCS-клиентах.
- Экспорт результатов — сохранение объединённого файла после разрешения конфликтов и применение изменений в рабочем дереве.