Глава 1. Введение

Когда при совместной работе над файлом люди пересылают его друг другу для внесения изменений, становится сложно понять, какие изменения были внесены в новую версию или копию файла. Конечно, возможно просмотреть копию и оригинал, открыв их рядом в соответствующем приложении, но это сложно, требует много времени и не исключает вероятность ошибиться. В таких случаях гораздо удобнее воспользоваться программой, которая позволяет просматривать различия (differences, diffs).

Логично, что такой программе подошло бы название «diff». И действительно, программа diff установлена на большинстве систем на основе Linux® и предназначена именно для этих целей. Разработчики часто используют программу diff в командной строке для просмотра различий между версиями файла с исходным кодом. Но использование diff не ограничивается просмотром различий файлов с исходным кодом — программу возможно использовать и при работе с различными текстовыми файлами.

У многих пользователей вызывает сложности использование программы diff в командной строке, изучение её синтаксиса и анализ полученных результатов. Здесь может помочь приложение Kompare — графический интерфейс к программе diff. В приложении исходный и сравниваемый файлы показаны рядом, при этом все различия автоматически выделяются цветом. После сравнения будет возможно последовательно применить выбранные изменения в одном файле к другому файлу. Если изменение было применено ошибочно, его всегда возможно 'отменить'. После применения всех требуемых изменений файл возможно сохранить и затем открыть в приложении, которое использовалось для его создания.

Приложение Kompare также позволяет создать и просмотреть специальный файл '.diff'. Этот файл, содержащий различия между двумя файлами, возможно использовать для просмотра и применения изменений к любому другому экземпляру исходного файла. Пример: над документом работают два человека. Первому требуется внести изменения и отправить второму человеку только эти изменения. Как правило, первый человек направит второму весь изменённый документ целиком, и получателю придётся сравнить изменённый документ с не содержащей изменений версией, открыв оба файла рядом. Подобный способ работы уже упоминался ранее. Но приложение Kompare подразумевает другой способ работы: сначала первый человек создаст локальную копию файла, который требуется изменить, затем внесёт изменения и сравнит оригинал и изменённую копию с помощью Kompare. В полученном файле .diff будут содержаться только внесённые изменения — именно этот файл следует направить второму человеку вместо всего изменённого документа целиком.

Kompare позволяет второму человеку просмотреть файл .diff, сравнить его с локальной копией документа и применить изменения, которые внёс первый человек. Таким образом возможно работать над несколькими версиями документа — каждый участник работы будет вносить изменения, создавать файлы .diffs, пересылать и применять их. Этот процесс называется «применением исправлений (патчей)», слово «патч» взято из названия программы «patch» (это ещё одна утилита командной строки, созданная специально для применения файлов различий).

Иногда люди работают над файлом одновременно; весьма вероятно, что изменения будут внесены в одну и ту же строку. В таких случаях возникает проблема — в результате применения полученных файлов различий может быть выполнена нежелательная перезапись изменений. К счастью, разработчики программ diff и patch предусмотрели этот момент; эти программы не позволяют применить такие изменения в автоматическом режиме. Состояние, в котором имеется два набора изменений одной и той же строки, называется «конфликт». Приложение Kompare показывает конфликты, что позволяет вручную разрешить их, то есть выбрать набор изменений, который следует применить.

Kompare также позволяет сравнить изменения в файлах на уровне папок. При сравнении папок Kompare рекурсивно анализирует вложенные папки и содержимое их файлов на предмет наличия различий. Каждый файл, в котором обнаружены различия, будет автоматически добавлен в список и открыт в Kompare (в приложении поддерживается навигация по списку файлов).