Имеются различные способы синхронизации с исходными текстами FreeBSD. В этом разделе сравниваются основные из них, Subversion и CTM.
Хотя возможно частичное обновление дерева исходных
текстов, единственной поддерживаемой процедурой обновления
является обновление всего дерева и перекомпиляция всех
программ, работающих в контексте пользователя, например тех,
что находятся в каталогах /bin
и
/sbin
, а также исходных текстов ядра.
Обновление только части дерева исходных текстов, только ядра
или только программ часто приводит к возникновению проблем от
ошибок компиляции до аварийных остановов системы или потери
данных.
Subversion для обновления
исходных текстов использует модель pull.
Пользователь или сценарий cron
запускают
программу svn
, которая обновляет локальную
версию исходных текстов. Subversion
является предпочтительным способом обновления локального дерева
исходных текстов, поскольку обновления являются актуальными с
точностью до минуты и пользователь управляет временем их
загрузки. Загрузку определённых файлов и каталогов легко
ограничить, а запрашиваемые обновления формируются на лету на
стороне сервера. О том, как актуализировать исходные тексты с
использованием Subversion, описано в
Раздел A.4, <<Использование Subversion>>.
CTM не выполняет интерактивное
сравнение имеющихся исходных текстов с находящимися в главном
архиве, и не выполняет их загрузку.
Вместо этого несколько раз в день на главной машине CTM
запускается скрипт, находящий изменения в файлах с момента
своего предыдущего запуска. Все обнаруженные изменения сжимаются,
помечаются последовательным номером и кодируются для передачи по
электронной почте в печатном формате ASCII.
После получения эти <<дельта-файлы CTM>> могут быть
переданы утилите ctm.rmail
, которая
осуществляет автоматическое декодирование, проверку и применение
изменений к пользовательской копии исходных текстов. Этот
процесс более эффективен по сравнению с используемым в
Subversion и требует меньше ресурсов
сервера, так как он выполнен по модели push,
а не pull. Инструкции по использованию
CTM для синхронизации исходных
текстов даны в Раздел A.3, <<Использование CTM>>.
Если пользователь случайно уничтожил часть своего архива, Subversion обнаружит и перестроит повреждённую часть. CTM этого не делает, поэтому если пользователь удалил часть дерева исходных текстов и не имеет архивной копии, то нужно будет начать с самого начала (с последнего <<базового дельта-файла>>), перестроив всё с помощью CTM.
Этот, и другие документы, могут быть скачаны с https://download.freebsd.org/ftp/doc/.
По вопросам, связанным с FreeBSD, прочитайте
документацию прежде чем писать в
<questions@FreeBSD.org>.
По вопросам, связанным с этой документацией, пишите в рассылку
<doc@FreeBSD.org>.