Розділ 1. Вступ

Якщо над файлом працюють двоє або декілька осіб, пересилаючи цей файл один одному для перегляду і коригування, іноді важко встановити, які саме зміни було внесено до нової версії або копії файла. Можна відкрити у вікні відповідної програми тексти копії і оригіналу один поруч з іншим, а потім порівняти ці тексти, але таке вирішення проблеми є трудомістким, дуже тривалим, з ймовірністю помилок. Ось у такому випадку вам і знадобиться програма, яка покаже вам різницю між файлами (яку заради скорочення ми будемо називати просто різницею).

Як і слід було очікувати, назва цієї програми «diff» (від англійського «difference»). Отже, програма diff типово встановлюється у більшості заснованих на Linux® системах і виконує саме ті функції, про які ми говорили вище. Розробники часто використовують diff, як інструмент командного рядка, для перегляду різниці між версіями файлів початкових кодів програм. Але область використання diff не обмежується показом різниці у файлах початкових кодів, цю програму можна застосовувати для порівняння багатьох інших типів текстових файлів.

Використання diff за допомогою командного рядка може видатися незручним, потреба у вивченні синтаксису команди diff та роботі з даними, виведеними програмою, може збентежити багатьох. Ось тут і вступає до гри Kompare. Ця програма є графічною оболонкою для роботи з diff, у інтерфейсі цієї програми буде показано вміст файлів, які ви порівнюєте поруч один з одним, всі відмінності буде виділено кольором. Від початку, зміни у одному з файлів можна буде послідовно застосувати до вмісту іншого файла з можливістю вибору і керування. У програмі передбачено можливість вибіркового застосування змін, всі внесені зміни може бути скасовано. Після внесення всіх потрібних змін файли можна зберегти, — їх буде нормально показувати програма, у якій ці файли було створено.

Окрім показу різниці між файлами джерела і призначення, Kompare можна використовувати для створення спеціального файла різниці, який називається «diff». У цьому файлі буде зібрано всі відмінності між двома початковими файлами, ним можна буде скористатися для перегляду і внесення змін до інших копій цього файла. Приклад: нехай двоє редагують один файл документа. Один з редакторів бажає надіслати лише внесені ним зміни щодо початкового варіанта іншому редактору. Зазвичай, перший з редакторів мав би надіслати цілу копію зміненого документа іншому редактору, якому потім довелося б порівнювати змінену версію з початковою. Процес цього порівняння вже було описано вище. За допомогою Kompare першому з редакторів достатньо було б спочатку створити локальну копію файла, який буде редагуватися, а потім внести до нього зміни і порівняти початкову і змінену копії. Після цього можна за допомогою Kompare створити файл різниці, у якому буде зібрано всі внесені зміни. Цей файл можна надіслати іншому редактору замість надсилання зміненого файла повністю.

За допомогою Kompare другий редактор зможе переглянути файл різниці (diff), порівняти його з локальною копією документа і внести зміни, вказані першим редактором. Отже можна побудувати роботу з багатьма версіями документа, кожен з редакторів вноситиме зміни, створюватиме файли різниці, поширюватиме їх і вноситиме отримані від інших редакторів зміни. Зазвичай, такий процес називають «латанням», цей термін виник через використання програми з назвою «patch» (залатати), яку було спеціально розроблено з метою внесення змін на основі файлів різниці (diff).

Іноді трапляється, що люди редагують один файл одночасно. У такому випадку може трапитися так, що зміни буде внесено у один і той самий рядок. Таким чином виникне проблема, яка полягає у тому, що якщо редакторам наперед невідомо про те, чи було внесено зміни у однакові частини документа, редактори можуть знищити результати власної праці перезаписуванням цих результатів роботою іншого редактора, отриманою як файл різниці. На щастя розробники програм diff і patch взяли цей випадок до уваги: подібні зміни неможливо буде застосувати без втручання людини. Виникнення подібних ситуацій називають «конфліктом». Kompare покаже конфлікти, і ви зможете розв’язати їх вручну, вказавши програмі, які саме зміни має бути внесено до кожного з файлів.

Крім того, Kompare є чудовою програмою для порівняння змін у файлах на рівні тек. Якщо застосувати Kompare для порівняння тек, програма рекурсивно перевірить всі підтеки і вміст файлів у цих підтеках на наявність відмінностей. Кожен з файлів, які відрізнятимуться буде знайдено, автоматично відкрито і показано у списку Kompare, за допомогою цього списку ви легко зможете пересуватися між різними файлами.