Сравнение файлов - File comparison

В KDE разница инструмент Kompare

В вычисление, сравнение файлов вычисление и отображение различий и сходств между объектами данных, обычно текстовые файлы Такие как исходный код.

Методы, реализации и результаты обычно называются разница,[1] после Unix разница полезность. Результат может быть представлен в виде графический интерфейс пользователя или используется как часть более крупных задач в сети, файловые системы, или же контроль версий.

Некоторые широко используемые программы сравнения файлов: разница, cmp, FileMerge, WinMerge, Вне всякого сравнения, и Сравнение файлов.

Много текстовые редакторы и текстовые процессоры выполнить сравнение файлов, чтобы выделить изменения в документе.

Типы методов

Большинство инструментов сравнения файлов находят самая длинная общая подпоследовательность между двумя файлами. Любые данные, не входящие в самую длинную общую подпоследовательность, представляются как вставка или удаление.

В 1978 году Пол Хекель опубликовал алгоритм, который определяет наиболее перемещаемые блоки текста.[2] Это используется в Инструмент IBM History Flow.[3] Другие программы сравнения файлов находят перемещения блоков.[требуется разъяснение ]

Некоторые специализированные инструменты сравнения файлов находят самая длинная возрастающая подпоследовательность между двумя файлами.[4] В rsync протокол использует скользящий хеш функция сравнения двух файлов на двух удаленных компьютерах с низкими издержками связи.

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

Отображать

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

Рассуждение

Инструменты сравнения используются по разным причинам. Когда кто-то хочет сравнить двоичные файлы, вероятно, лучше всего использовать байтовый уровень. Но если хочется сравнить текстовые файлы или же компьютерные программы, параллельное визуальное сравнение обычно лучше. Это дает пользователю возможность решить, какой файл предпочтительнее сохранить, следует ли объединить файлы для создания файла, содержащего все различия, или, возможно, сохранить их оба как есть для дальнейшего использования с помощью некоторой формы " контроль версий.

Сравнение файлов - важная и, скорее всего, неотъемлемая часть синхронизация файлов и резервный. В методологиях резервного копирования проблема повреждение данных важный. Коррупция происходит без предупреждения и без нашего ведома; по крайней мере, обычно до тех пор, пока не поздно восстановить недостающие части. Обычно единственный способ узнать наверняка, был ли файл поврежден, - это когда он будет использоваться или открыт в следующий раз. Если этого не сделать, нужно использовать инструмент сравнения, чтобы хотя бы распознать разницу. Следовательно, все программы синхронизации файлов или резервного копирования должны включать сравнение файлов, если эти программы действительно полезны и заслуживают доверия.

Историческое использование

До сравнения файлов существовали машины для сравнения магнитных лент или перфокарт. В Устройство воспроизведения карт IBM 519 может определить, есть ли колода перфокарты были эквивалентны. В 1957 г. Джон Ван Гарднер разработал систему для сравнения проверить суммы загруженных секций Фортран программы для отлаживать проблемы с компиляцией на IBM 704.[5]

Смотрите также

Рекомендации

  1. ^ "diff", файл жаргона.
  2. ^ Хекель, Пол (1978), «Методика выявления различий между файлами» (PDF), Коммуникации ACM, 21: 264–268, Дои:10.1145/359460.359467, получено 2011-12-04
  3. ^ Viégas, Fernanda B .; Ваттенберг, Мартин; Кушал, Кушал Дэйв (2004), Изучение сотрудничества и конфликта между авторами с помощью визуализации потока истории (PDF), 6, Вена: CHI, стр. 575–582., получено 2011-12-01
  4. ^ Ливэй Рен; Цзиньшэн Гу; Луошэн Пэн (18 апреля 2006 г.). «Алгоритмы блочного выравнивания кода двоичных файлов программного обеспечения». Патенты Google. USPTO. Получено 10 мая 2019.
  5. ^ Джон Ван Гарднер. «Фортран и происхождение проекта Intercept» (PDF). Получено 2011-12-06. Цитировать журнал требует | журнал = (помощь)

внешняя ссылка