A.3. Анонимный CVS

A.3.1. Введение

Анонимный CVS (известный также как, anoncvs) это возможность, предоставляемая утилитами CVS, поставляемыми с FreeBSD для синхронизации с удаленным CVS репозиторием. Помимо прочего, он позволяет пользователям FreeBSD без специальных привилегий (с правами только на чтение) выполнять CVS операции на одном из официальных anoncvs серверов проекта FreeBSD. Для использования этой возможности, просто установите переменную CVSROOT на соответствующий сервер anoncvs, введите общеизвестный пароль ''anoncvs'' в ответ на приглашение команды cvs login, а затем используйте cvs(1) для доступа к репозиторию как к обычному локальному CVS.

Замечание: Команда cvs login сохраняет пароли, использованные для авторизации на сервере CVS в файле с именем .cvspass в каталоге HOME. Если этот файл не существует, вы можете получить сообщение об ошибке при первом запуске cvs login. Просто создайте пустой файл .cvspass и попробуйте еще раз.

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

Anoncvs напротив может использоваться для получения как одного файла, так и всей программы (например ls или grep), с помощью ссылки на имя модуля CVS. Конечно, anoncvs хорошо подходит только при операциях на чтение CVS репозитория, поэтому если вы намереваетесь производить локальную разработку в одном из репозиториев проекта FreeBSD, вам подойдет только CVSup.

A.3.2. Использование анонимного CVS

Настройка cvs(1) для использования анонимного CVS репозитория означает установку переменной окружения CVSROOT на один из anoncvs серверов проекта FreeBSD. На момент написания этого документа доступны следующие сервера:

Поскольку CVS позволяет выполнить ''check out'' практически любой версии исходных текстов FreeBSD, которые когда-либо существовали (или, в некоторых случаях, будут существовать), вам необходимо познакомиться с флагом cvs(1) для ревизий (-r) и с параметрами, которые могут быть использованы с этим флагом в репозитории проекта FreeBSD.

Есть два вида тегов, теги ревизий и теги ветвей. Теги ревизий отвечают за определенную ревизию. Их значение остается прежним изо дня в день. Теги ветвей сопоставляются последней ревизии определенной ветви разработки, в любой момент времени. Поскольку теги ветвей не сопоставлены какой-то определенной ревизии, завтра они могут означать совсем не то, что сегодня.

Разд. A.7 содержит теги ревизий, которые могут заинтересовать пользователей. Опять же, ни один из них не подходит для коллекции портов, поскольку в коллекции портов нет разнообразия ревизий.

Если вы указываете тег ветви, то обычно получаете последнюю версию файлов этой ветви разработки. Если вы хотите получить предыдущую версию, это можно сделать путем указания даты флагом -D дата. Обратитесь к странице справочника cvs(1) за более подробной информацией.

A.3.3. Примеры

Хотя перед тем, как что-то делать, рекомендуется полностью прочесть страницу справочника cvs(1), вот несколько кратких примеров использования Anonymous CVS:

Пример A-1. Извлечение кода из -CURRENT (ls(1)):

% setenv CVSROOT :pserver:anoncvs@anoncvs.jp.FreeBSD.org:/home/ncvs
% cvs login
At the prompt, enter the password ''anoncvs''.
% cvs co ls
     

Пример A-2. Использование SSH для извлечения дерева src/:

% cvs -d freebsdanoncvs@anoncvs.FreeBSD.org:/home/ncvs co src
The authenticity of host 'anoncvs.freebsd.org (128.46.156.46)' can't be established.
DSA key fingerprint is 52:02:38:1a:2f:a8:71:d3:f5:83:93:8d:aa:00:6f:65.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'anoncvs.freebsd.org' (DSA) to the list of known hosts.

Пример A-3. Извлечение ls(1) из ветви для 6-STABLE:

% setenv CVSROOT :pserver:anoncvs@anoncvs.jp.FreeBSD.org:/home/ncvs
% cvs login
At the prompt, enter the password ''anoncvs''.
% cvs co -rRELENG_6 ls
     

Пример A-4. Создание списка изменений ls(1) (в виде unified diff)

% setenv CVSROOT :pserver:anoncvs@anoncvs.jp.FreeBSD.org:/home/ncvs
% cvs login
At the prompt, enter the password ''anoncvs''.
% cvs rdiff -u -rRELENG_5_3_0_RELEASE -rRELENG_5_4_0_RELEASE ls
     

Пример A-5. Поиск доступных имен модулей:

% setenv CVSROOT :pserver:anoncvs@anoncvs.jp.FreeBSD.org:/home/ncvs
% cvs login
At the prompt, enter the password ''anoncvs''.
% cvs co modules
% more modules/modules
     

A.3.4. Другие ресурсы

В изучении CVS могут помочь следующие дополнительные ресурсы:

Этот, и другие документы, могут быть скачаны с ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.