Порівняння двох текстів
Вставте дві версії тексту — код, прозу, JSON, пункти договору, будь-що — і відразу побачте, що змінилося: червоний закреслений шрифт для видаленого, зелений для доданого. Оберіть гранулярність — рядки, слова або символи — та перемикайтесь між паралельним, зведеним (у стилі GitHub PR) або рядковим режимом перегляду. Зручно, щоб перевірити правки договору перед підписанням, знайти непомітну зміну ліцензії у файлі третьої сторони, звірити результат копіювання з оригіналом, порівняти дві відповіді JSON API або сформувати чистий патч для надсилання у чаті. Той самий алгоритм diff, що використовує git, — усе виконується локально.
Як користуватися
Оригінал зліва, змінений — справа.
Паралельний — для рецензування, зведений — для передачі, рядковий — для прози.
Червоний — оригінал (видалено), зелений — нове (додано), сірий — без змін.
Ігноруйте пробіли, якщо форматування не важливе; ігноруйте регістр, якщо він не має значення.
Порівнюйте тексти або код з гранулярністю до символу — прямо у браузері
Можливості
Типові сценарії
- Знайдіть зміни між двома версіями конфігураційного файлу перед деплоєм.
- Перегляньте переписаний абзац із гранулярністю до слова, щоб точно побачити, які слова змінилися.
- Порівняйте дві відповіді JSON, щоб знайти несподівану різницю в полях.
- Звірте результат копіювання з оригіналом перед комітом.
- Сформуйте чистий зведений diff для надсилання у чаті або на рецензію.
Чому саме цей інструмент
Більшість онлайн-інструментів для diff зупиняються на рівні рядків — якщо змінилося одне слово у довгому рядку, доводиться вичитувати весь рядок. Ми повторно запускаємо алгоритм усередині кожного зміненого рядка, тож правки на рівні слів і символів підсвічуються точно. Особливо корисно для прози, юридичних текстів і JSON, де важлива одна-єдина змінена величина в довгому об’єкті.
Часті запитання
Чому порівняння двох великих файлів гальмує?
Бо пошук найменшого набору змін між двома текстами коштує роботи, що зростає в найгіршому разі як добуток їхніх довжин, а не як сума. Два файли, у яких більша частина вмісту спільна, порівнюються швидко за будь-якого розміру: алгоритм зіставляє довгі шматки й пропускає їх. Дорогий випадок — два файли, у яких спільного мало: переписаний документ, переформатована кодова база; звідси й довге очікування. Допомагають дві речі напряму: перемкнути гранулярність із символів на рядки, що зменшує число порівнюваних елементів на порядок, і ввімкнути ігнорування пробілів, якщо різниця, яка вам потрібна, не у відступах.
Який алгоритм diff використовується?
Та сама родина алгоритмів Myers (найдовша спільна підпослідовність), що лежить в основі git, GNU diff і більшості інструментів рецензування — результат відповідає тому, що рецензенти бачать у PR. Для рівня слів і символів усередині змінених рядків той самий алгоритм запускається повторно на токенах цього рядка.
Чому diff мого коду виглядає неправильно при вимкненому «Ігнорувати пробіли»?
Табуляція проти пробілів, пробіли в кінці рядка та переводи рядків CRLF вважаються реальними відмінностями, коли «Ігнорувати пробіли» вимкнено. Увімкніть цей параметр, якщо вас цікавлять лише зміни у вмісті.
Чи можна скопіювати результат diff?
Зведений режим відображається як звичайний текст — виділіть і скопіюйте. Паралельний режим використовує HTML; найчистіший спосіб — перемкнутися на зведений.
Звичайно! Просто надішліть нам коротке повідомлення з вашою ідеєю. Якщо хочете обговорити детальніше — залиште email, і ми зв’яжемося з вами. Можна залишитися анонімом.