Руководство FreeBSD

         

Синхронизация ваших исходных текстов


Имеются различные способы использования Интернет (или почтового) подключения для того, чтобы иметь самые последние версии исходных текстов любого проекта FreeBSD, в зависимости от того, чем вы интересуетесь. Основной сервис, который мы предлагаем, это Анонимный CVS, и 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, просто удалить повреждённую часть и пересинхронизироваться.



Содержание раздела