Порівняння двох текстів

Вставте дві версії тексту — код, прозу, JSON, пункти договору, будь-що — і відразу побачте, що змінилося: червоний закреслений шрифт для видаленого, зелений для доданого. Оберіть гранулярність — рядки, слова або символи — та перемикайтесь між паралельним, зведеним (у стилі GitHub PR) або рядковим режимом перегляду. Зручно, щоб перевірити правки договору перед підписанням, знайти непомітну зміну ліцензії у файлі третьої сторони, звірити результат копіювання з оригіналом, порівняти дві відповіді JSON API або сформувати чистий патч для надсилання у чаті. Той самий алгоритм diff, що використовує git, — усе виконується локально.

Як користуватися

1
Вставте два тексти

Оригінал зліва, змінений — справа.

2
Оберіть режим і гранулярність

Паралельний — для рецензування, зведений — для передачі, рядковий — для прози.

3
Перегляньте різницю

Червоний — оригінал (видалено), зелений — нове (додано), сірий — без змін.

4
Ігнорувати пробіли або регістр

Ігноруйте пробіли, якщо форматування не важливе; ігноруйте регістр, якщо він не має значення.

Порівнюйте тексти або код з гранулярністю до символу — прямо у браузері

Вигляд
Гранулярність
Параметри
Порівняти
Оригінал
Змінений
Вставте два тексти вище, щоб побачити різницю.
Не знаєте, що спробувати?
850+ інструментів — відкрийте сюрприз
🎲 Здивуйте мене

Можливості

Три режими перегляду
Паралельний (два стовпці), зведений (у стилі GitHub з префіксами — та +) і рядковий (один блок, видалення закреслені поруч із вставками).
Три рівні гранулярності
Рядки, слова або символи. Режим слів підходить для прози, символьний — для дрібних правок у коді.
Ігнорування пробілів і регістру
Відфільтруйте зайвий шум — особливо зручно при порівнянні переформатованого коду або JSON.
Статистика вставок і видалень
З першого погляду видно +N / −N, а також кількість торкнутих рядків.
Поміняти місцями
Перегорніть оригінал і змінений текст однією кнопкою, якщо вставили їх не в той бік.
Сумісний з Git алгоритм
Використовує той самий алгоритм родини Myers, що лежить в основі git diff, GNU diff і більшості інструментів рецензування коду — результат відповідає тому, що бачать рецензенти.

Типові сценарії

  • Знайдіть зміни між двома версіями конфігураційного файлу перед деплоєм.
  • Перегляньте переписаний абзац із гранулярністю до слова, щоб точно побачити, які слова змінилися.
  • Порівняйте дві відповіді JSON, щоб знайти несподівану різницю в полях.
  • Звірте результат копіювання з оригіналом перед комітом.
  • Сформуйте чистий зведений diff для надсилання у чаті або на рецензію.

Чому саме цей інструмент

Більшість онлайн-інструментів для diff зупиняються на рівні рядків — якщо змінилося одне слово у довгому рядку, доводиться вичитувати весь рядок. Ми повторно запускаємо алгоритм усередині кожного зміненого рядка, тож правки на рівні слів і символів підсвічуються точно. Особливо корисно для прози, юридичних текстів і JSON, де важлива одна-єдина змінена величина в довгому об’єкті.

Часті запитання

Чому порівняння двох великих файлів гальмує?

Бо пошук найменшого набору змін між двома текстами коштує роботи, що зростає в найгіршому разі як добуток їхніх довжин, а не як сума. Два файли, у яких більша частина вмісту спільна, порівнюються швидко за будь-якого розміру: алгоритм зіставляє довгі шматки й пропускає їх. Дорогий випадок — два файли, у яких спільного мало: переписаний документ, переформатована кодова база; звідси й довге очікування. Допомагають дві речі напряму: перемкнути гранулярність із символів на рядки, що зменшує число порівнюваних елементів на порядок, і ввімкнути ігнорування пробілів, якщо різниця, яка вам потрібна, не у відступах.

Який алгоритм diff використовується?

Та сама родина алгоритмів Myers (найдовша спільна підпослідовність), що лежить в основі git, GNU diff і більшості інструментів рецензування — результат відповідає тому, що рецензенти бачать у PR. Для рівня слів і символів усередині змінених рядків той самий алгоритм запускається повторно на токенах цього рядка.

Чому diff мого коду виглядає неправильно при вимкненому «Ігнорувати пробіли»?

Табуляція проти пробілів, пробіли в кінці рядка та переводи рядків CRLF вважаються реальними відмінностями, коли «Ігнорувати пробіли» вимкнено. Увімкніть цей параметр, якщо вас цікавлять лише зміни у вмісті.

Чи можна скопіювати результат diff?

Зведений режим відображається як звичайний текст — виділіть і скопіюйте. Паралельний режим використовує HTML; найчистіший спосіб — перемкнутися на зведений.

💡 Хочете, щоб ми покращили цей інструмент спеціально для вас?

Звичайно! Просто надішліть нам коротке повідомлення з вашою ідеєю. Якщо хочете обговорити детальніше — залиште email, і ми зв’яжемося з вами. Можна залишитися анонімом.

Як ви оцінюєте цей інструмент?

Дякуємо за вашу оцінку!
Хочете розповісти більше? Залиште коментар!
Дякуємо! Ваш коментар з’явиться після модерації.
Для кого цей інструмент?
Опубліковано Оновлено Автор: