разница3
Разработчик(и) | AT&T Bell Laboratories |
---|---|
Первоначальный выпуск | январь 1979 года |
Операционная система | Unix и Unix-подобные |
Тип | Команда |
diff3 — это утилита Unix для сравнения трех файлов и выявления различий между ними. diff3 также может объединять файлы, реализуя трехстороннее слияние .
История и реализации
[ редактировать ]В этом разделе отсутствует информация об алгоритме и сходстве с diff. ( июнь 2020 г. ) |
diff3
Первоначально появился в версии 7 Unix 1979 года. Очень похожая версия была найдена в Berkeley Software Distribution (BSD) и была унаследована от OpenBSD и, возможно, от Solaris . [ 1 ] [ 2 ]
В большинстве современных Unix-подобных систем, даже в системах, производных от BSD, таких как FreeBSD и NetBSD, предоставляемый файл diff3 представляет собой GNU версию в diffutils (ранее GNU Tools ). Эта версия имеет возможность объединять файлы самостоятельно, не полагаясь на ed
. Он внутренне вызывает diff
для сравнения, но можно использовать и любой другой совместимый инструмент. [ 3 ]
Команда доступна в виде отдельного пакета для Microsoft Windows как часть UnxUtils коллекции , состоящей из собственных Win32- портов распространенных GNU Unix-подобных утилит. [ 4 ]
«Diff3» также стало общим названием для алгоритма трехстороннего слияния, в частности, основанного на согласовании двух разных различий, происходящих из первого источника.
Слияние от общего предка
[ редактировать ]Когда два человека вносят изменения в копии одного и того же файла, diff3 может создать объединенный вывод, содержащий оба набора изменений вместе с предупреждениями о конфликтах. diff3 может объединить три или более наборов изменений в файл, объединяя два набора изменений одновременно.
diff3 может включать изменения из двух модифицированных версий в общую предыдущую версию. Это позволяет пользователям объединять наборы изменений, представленные двумя новыми файлами. Это можно включить с помощью такой команды: diff3 mine older yours
.
Это похоже на вычитание файла older
из файла yours
и добавляем результат в файл mine
или как слияние в mine
изменения, которые превратят older
в yours
. Это слияние четко определено до тех пор, пока mine
и older
совпадение в окрестности каждого такого изменения. Это неверно, если все три входных файла различаются или когда только older
отличается; это конфликт. Когда все три входных файла различаются, конфликт является перекрытием.
В diff3 есть несколько методов для обработки перекрытий и конфликтов. Он может опускать совпадения или конфликты, выбирать только совпадения или отмечать конфликты специальными <<<<<<<
и >>>>>>>
линии.
diff3 может выводить результаты слияния в виде сценария редактирования , который можно применить к первому файлу для получения объединенного вывода. Однако непосредственная генерация объединенного вывода позволяет обойти некоторые проблемы с ed.
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ OpenBSD по общим командам Руководство –
- ^ «diff3 — раздел 1 страниц руководства: Пользовательские команды» . Документация по Солярису 11.3 .
- ^ Linux по основным командам Руководство –
- ^ «Собственные порты Win32 некоторых утилит GNU» . unxutils.sourceforge.net .
Внешние ссылки
[ редактировать ]- Формальное расследование Diff3
- Руководство по GNU diffutils, «Сравнение трех файлов» и «Объединение от общего предка»