Имеются различные способы использования Интернет (или почтового) подключения для того,
чтобы иметь самые последние версии исходных текстов любого проекта FreeBSD, в зависимости
от того, чем вы интересуетесь. Основной сервис, который мы предлагаем, это Анонимный CVS, CVSup и CTM.
Внимание: Хотя имеется возможностью обновлять только часть дерева исходных
текстов, процедурой, которую мы настоятельно советуем, является обновление всего дерева и
перекомпиляция пользовательских программ (то есть тех, которые работают в пространстве
имен пользователя, например те, что находятся в каталогах /bin
и /sbin) и ядра. Обновление только части дерева исходных
текстов, только текстов ядра или только текстов пользовательских программ часто приводит
к возникновению проблем. Эти проблемы могут варьироваться от ошибок компиляции до
аварийных остановов системы или порчи данных.
Анонимный CVS и CVSup используют
модель pull обновления исходных
текстов. В случае CVSup пользователь (или скрипт программы cron) вызывают cvsup, а она работает с
каким-либо сервером cvsupd, чтобы выполнить обновление ваших
файлов. Обновления, которые вы получаете, актуальны с точностью до минуты, и вы получаете
их тогда и только тогда, когда сами захотите. Вы можете с легкостью ограничить обновления
конкретными файлами или каталогами, которые представляют для вас интерес. Обновления
создаются на лету сервером согласно тому, что у вас есть и что вы хотите иметь. Анонимный CVS гораздо проще, чем CVSup
в том смысле, что он представляет собой всего лишь расширение CVS, позволяющее загрузить изменения непосредственно с удаленного
хранилища CVS. CVSup может делать это гораздо более
эффективно, однако анонимным CVS легче пользоваться.
CTM, с другой стороны, не сравнивает последовательно
исходные тексты, имеющиеся у вас, с теми, что находятся в главном архиве и вообще ни коим
образом не касается наших серверов. Вместо этого несколько раз в день на главной машине
CTM запускается скрипт, находящий изменения в файлах с момента своего предыдущего
запуска; все замеченные изменения сжимаются, помечаются последовательным номером и
кодируются для передачи по электронной почте (в форме печатаемых символов ASCII). После
получения эти ``дельта-файлы CTM'' могут быть переданы утилите ctm_rmail(1), которая
осуществит автоматическое декодирование, проверку и применение изменений к
пользовательской копии исходных текстов. Этот процесс гораздо более эффективен, чем CVSup, и требует меньше ресурсов нашего сервера, так как он
сделан по модели push, а не pull.
Несомненно, есть и минусы. Если вы случайно уничтожили часть вашего архива, то CVSup обнаружит и загрузит поврежденную часть. CTM этого делать не будет, и если вы уничтожили какую-то часть
вашего дерева исходных текстов (и у вас нет архивной копии), то вам нужно будет начать с
самого начала (с последнего ``базового дельта-файла''), перестроив всё с помощью CTM, или, используя анонимный CVS,
просто удалить повреждённую часть и пересинхронизироваться.