Порівняння коду (diff)
Порівняйте дві версії коду поруч або в одну колонку з підсвічуванням синтаксису, номерами рядків і unified diff, який можна скопіювати чи завантажити.
Як порівняти два фрагменти коду
- Вставте стару версію в поле Початковий код, а нову – в поле Змінений код.
- Виберіть Мова або залиште Визначити автоматично: інструмент вгадає мову за кодом і покаже визначену мову поруч зі статистикою.
- Виберіть Вигляд: Поруч або В одну колонку (unified).
- Задайте потрібні параметри: Ігнорувати пробіли й відступи, Ігнорувати регістр, Підсвічувати змінені слова та Показувати лише зміни (3 рядки контексту).
- Натисніть Порівняти. Після першого порівняння результат оновлюється під час редагування.
- Натисніть Копіювати як unified diff або Завантажити .diff, щоб використати зміну як патч.
Кнопка Поміняти місцями міняє дві версії місцями, через що додавання стають видаленнями й навпаки.
Як читати результат порівняння
Видалені рядки забарвлені червоним і належать початковій версії; додані рядки забарвлені зеленим і належать новій версії. Кожен рядок зберігає номер зі свого файлу, тож ви можете одразу перейти до нього в редакторі.
- Вигляд Поруч розміщує два файли у двох пронумерованих колонках. Змінений рядок стоїть поруч зі своєю новою версією. З опцією Підсвічувати змінені слова позначаються слова, що змінилися всередині рядка; без неї обидва рядки зберігають повні кольори синтаксису.
- Вигляд В одну колонку (unified) показує одну колонку, як під час код-рев’ю: для кожного блоку змін спочатку йдуть видалені рядки (−), потім додані (+), з номерами старих і нових рядків.
- Опція Показувати лише зміни (3 рядки контексту) згортає довгі незмінені ділянки в позначку «⋯ Незмінених рядків: N», завдяки чому великі файли значно легше переглядати.
Рядок статистики підраховує додані, видалені та незмінені рядки.
Підсвічування синтаксису
Підсвічування виконується у вашому браузері за допомогою highlight.js. Завантажується лише граматика вибраної мови, і то під час першого порівняння, тому сторінка лишається легкою. Підтримуються, серед іншого, JavaScript, TypeScript, Python, Java, C#, C / C++, Go, Rust, PHP, Ruby, CSS, HTML / XML, JSON, YAML, SQL, Bash / Shell і Markdown. Автоматичне визначення спирається на прості ознаки (ключові слова, дужки, розбір JSON); якщо воно помиляється, виберіть мову самостійно або позначте Простий текст.
Пробіли, відступи та кінці рядків
Опція Ігнорувати пробіли й відступи порівнює рядки після обрізання країв і згортання послідовностей пробілів і табуляцій, тому файл, відступи в якому змінили з 2 на 4 пробіли або з табуляцій на пробіли, не покаже жодної різниці. Кінці рядків Windows (CRLF) і Unix (LF) перед порівнянням нормалізуються, тож файл, у якому змінилися лише кінці рядків, вважається ідентичним. Зверніть увагу, що пробіли можуть мати значення в Python, YAML і Makefile: вимикайте цю опцію, коли відступи значущі.
Формат unified diff
Експортований патч використовує стандартний формат unified, який читають git apply, patch та інструменти код-рев’ю: заголовок із двома іменами файлів, потім блоки, що починаються з @@ -a,b +c,d @@, і три рядки контексту навколо кожної зміни. Файли називаються original і changed із розширенням, що відповідає мові.
Поширені запитання
Чи завантажується мій код на сервер?
Ні. Порівняння та підсвічування виконуються локально у вашому браузері; код ніколи не залишає ваш пристрій.
Чим цей інструмент відрізняється від порівняння тексту?
Він використовує той самий рушій порівняння за рядками, але додає підсвічування синтаксису, вигляд unified, згортання контексту та обробку пробілів, зручну для коду.
Чому два рядки показано як змінені, хоча вони виглядають однаково?
Імовірно, вони відрізняються невидимими символами: кінцевими пробілами, табуляціями замість пробілів або нерозривним пробілом. Позначте Ігнорувати пробіли й відступи, щоб це перевірити.
Чи можна застосувати завантажений патч у Git?
Так. Збережіть його й виконайте patch original.js < changes.diff або змініть імена файлів у заголовку та скористайтеся git apply.
Якого розміру можуть бути фрагменти?
Кілька тисяч рядків порівнюються швидко. Якщо два дуже великі файли повністю різні, інструмент зупиняється за кілька секунд і пропонує порівняти менші частини.
Схожі інструменти
- Порівняння двох текстів онлайн Порівняйте два тексти й побачте всі відмінності поруч або в одному потоці: за рядками, словами чи символами. Приватний інструмент, що працює у браузері.
- Форматувальник і валідатор JSON Безкоштовний форматувальник і валідатор JSON: форматує, мінімізує та перевіряє JSON у браузері й показує помилки синтаксису з рядком і стовпцем.
- Тестер регулярних виразів Перевіряйте регулярні вирази JavaScript наживо: підсвічені збіги, групи захоплення, заміна та просте пояснення кожного токена шаблону.