Порівняння текстів
Порівняйте два тексти порядково й побачте додавання та вилучення
Про цей інструмент
Вставте оригінальний текст ліворуч, а змінену версію праворуч — і отримайте порядкове порівняння: вилучення позначені червоним, додавання зеленим, контекст збережено між ними, а з обох боків стоять оригінальні номери рядків. Це найшвидший спосіб відповісти на питання «що ж насправді змінилося?» між двома конфігами, двома відповідями API чи двома версіями фрагмента, який хтось кинув у чат.
Порівняння спирається на алгоритм найдовшої спільної підпослідовності по рядках — ту саму сім’ю алгоритмів, що стоїть за git diff, — тож переставлені блоки й дрібні правки дають читабельний результат, а не позначку «змінено все». Підсумковий рядок підбиває кількість доданих і вилучених рядків.
Оскільки обидва тексти лишаються на сторінці, порівняння конфіденційних матеріалів — договорів, облікових даних у конфігах, неопублікованих текстів — не несе жодного з ризиків вставляння їх у випадковий вебсервіс.
Часті запитання
- Порівняння працює по словах чи по рядках?
- По рядках. Кожен рядок порівнюється як одне ціле, що відповідає тому, як розробники читають diff коду й конфігів. Тому змінений рядок показується як одне вилучення плюс одне додавання; підсвічування на рівні символів заплановане.
- Чому мій diff показує все як змінене?
- Зазвичай через невидимі відмінності: з одного боку табуляції, з іншого пробіли, віндовські CRLF проти юніксових LF або пробіли в кінці рядків. Нормалізація пробілів перед порівнянням (для JSON допомагає форматувальник із сортуванням ключів) робить справжні зміни видимими.
- Чи можна осмислено порівняти дві відповіді JSON?
- Так — спершу пропустіть обидві через форматувальник JSON з увімкненим сортуванням ключів, щоб рівноцінні документи серіалізувалися однаково. Тоді diff покаже справжні зміни значень, а не шум від порядку ключів.
- Чи є максимальний розмір тексту?
- Алгоритм порівнює кожен рядок одного тексту з кожним рядком іншого, тож надзвичайно великі файли (десятки тисяч рядків з обох боків) можуть зайняти якусь мить. Типові файли коду й тіла запитів API порівнюються миттєво.