Сравняване на текст (Diff Checker)

Сравнявайте два текста или фрагмента код ред по ред. Добавените, премахнатите и променените редове се маркират чак до точните думи, които се различават.

Работи в браузъраБез регистрацияНищо не се качва

Поставете текст в двете полета, за да видите разликите.

Как да използвате: Сравняване на текст (Diff)

  1. Поставете оригиналния текст вляво и променения вдясно или отворете два файла.
  2. Сравнението се обновява, докато пишете. Изберете изглед Един до друг или Обединен.
  3. Отметнете Игнорирай интервалите, Игнорирай регистъра или Игнорирай празните редове, за да скриете шум като промяна на отстъпите.
  4. Използвайте Скрий непромененото, за да се фокусирате върху промените с по три реда контекст около всяка.
  5. Натиснете Копирай като пач или Изтегли .diff, за да получите стандартен unified diff, който се прилага с git apply или patch.

Как работи този diff checker

Инструментът разделя двата входа на редове и изпълнява алгоритъма на Майърс — същия O(ND) алгоритъм, който използват git diff и GNU diff. Той намира най-кратката поредица от вмъквания и изтривания, която превръща оригинала в променения текст, така че резултатът показва възможно най-малко променени редове. Еднаквите начални и крайни редове се пропускат предварително, затова дори файлове с хиляди редове се сравняват почти мигновено.

Когато премахнат и добавен ред са един до друг, те се сдвояват като променен ред и се сравняват отново дума по дума. Думите, които реално са се променили, се маркират по-силно, така че преименувана променлива или редактирано число се открояват дори в дълъг ред.

Изглед един до друг или обединен

Един до друг показва оригинала вляво и новата версия вдясно, с номера на редовете и за двете. Това е най-удобният изглед за преглед на текст, конфигурационни файлове и малки промени в кода. Обединеният изглед редува премахнати (-) и добавени (+) редове в една колона — форматът, който използват инструментите за code review и пач файловете.

Формат unified diff (пач)

Експортираният пач следва формата diff -u: заглавие ---/+++, след това блокове (hunks), които започват с @@ -l,s +l,s @@, където l е номерът на първия ред, а s — броят редове на блока във всеки файл. Всеки блок съдържа три реда непроменен контекст, така че може да се приложи с patch -p0 или git apply, дори ако съседните редове са се преместили.

Кога да използвате опциите за игнориране

  • Игнорирай интервалите смята редовете за еднакви, ако се различават само по интервали или табулации. Използвайте го след промяна на отстъпите или замяна на табулации с интервали.
  • Игнорирай регистъра е удобно за SQL, HTML и логове, където главните букви нямат значение.
  • Игнорирай празните редове скрива редове, добавени или премахнати само за разредка.

Често задавани въпроси

Качва ли се моят текст някъде?
Не. Сравнението се изпълнява изцяло в браузъра ви с JavaScript. Нищо от поставеното не се изпраща към сървър, така че спокойно можете да сравнявате поверителен код, договори или конфигурационни файлове.
Колко големи могат да бъдат текстовете?
Файлове с десетки хиляди редове се сравняват за под секунда на обикновен лаптоп. Тъй като цената на алгоритъма расте с броя на разликите, най-дълго отнемат два огромни, напълно различни файла.
Мога ли да сравня два файла, вместо да поставям текст?
Да. Използвайте бутоните Отвори файл над всяко поле, за да заредите локален файл. Файлът се чете от браузъра и никога не се качва.
Защо ред е показан като премахнат и добавен, а не като променен?
Редовете се сдвояват като „променени“ само когато блок премахнати редове е непосредствено до блок добавени редове. Ако двата реда имат съвсем малко общ текст, маркирането на ниво дума се пропуска, защото би било по-шумно от показването на целия ред като променен.
Как да сравня JSON обекти?
Използвайте инструмента JSON Diff. Той сравнява парсираната структура, така че редът на ключовете и форматирането не създават фалшиви разлики, и показва точните пътища, които са се променили.

Свързани инструменти