Основы программирования в Linux
Другим примером может служить указание на CVS-репозитарий Web-стандартов консорциума W3C, значение переменной
при этом должно быть равноCVSROOT. Оно информирует систему CVS о том, что для доступа к репозитарию применяется аутентификация (pserver) с паролем и что репозитарий находится на сервере по адресу dev.w3.org.:pserver:[email protected]:/sources/publicПрежде чем получить доступ к исходным файлам, следует зарегистрироваться следующим образом:
$ <b>export CVSROOT=:pserver:[email protected]:/sources/public</b>$ <b>cvs login</b>Когда появится приглашение для ввода пароля, введите
.anonymousТеперь вы готовы применять команды cvs во многом так же, как при работе с локальным каталогом, за исключением того, что следует добавлять опцию
ко всем командам-z3, чтобы добиться сжатия для экономии полосы пропускания сети.cvsЕсли вы хотите получить исходные файлы HTML-валидатора W3C (системы проверки допустимости HTML-файлов), наберите приведенную далее команду:
$ <b>cvs -z3 checkout validator</b>Если хотите сделать доступным в сети собственный репозитарий, необходимо запустить CVS-сервер на своей машине. Сделать это следует с помощью супердемона
илиxinetdв зависимости от конфигурации вашей ОС Linux. Для примененияinetdотредактируйте файл /etp/xinetd.d/cvs, указав в нем местоположение CVS-репозитария, и воспользуйтесь средством настройки системы для активизации и запуска сервиса cvs. Для применения супердемонахinetdпросто добавьте строку в файл etc/inetd.conf и перезапуститеinetd. Далее приведена необходимая строка:inetd2401 stream tcp nowait root /usr/bin/cvs cvs -b /usr/bin --allow-root=/usr/local/repository pserverОна информирует
об автоматическом запуске CVS-сеанса для клиентов, подключающихся к порту 2401, стандартному порту CVS-сервера. Дополнительную информацию о запуске сетевых сервисов с помощью супердемонаinetdсм. в интерактивном справочном руководстве кinetdи inetd.conf.inetdДля использования системы CVS с вашим репозитарием и сетевым доступом к нему вы должны задать соответствующее значение переменной окружения
. Например,CVSROOT$ <b>export CVSFOOT=:pserver:[email protected]:/usr/local/repository</b>В этом коротком разделе мы смогли дать лишь поверхностное описание функциональных возможностей системы CVS. Если вы хотите основательно познакомиться с этой системой, настоятельно рекомендуем установить локальный репозитарий для экспериментов, найти расширенную документацию по CVS и получать удовольствие! Помните, что это система с открытым кодом, поэтому, если вы столкнулись с непонятными действиями программы или (что невероятно, но возможно) думаете, что обнаружили ошибку, всегда можно получить исходный программный код и изучить его самостоятельно. Начальная страница CVS расположена по адресу http://ximbiot.com/cvs/cvshome/.
Внешние интерфейсы CVSДля доступа к CVS-репозитариям существует множество графических внешних интерфейсов. Может быть, их лучшую коллекцию для разных операционных систем можно найти на Web-сайте http://www.wincvs.org/. Там есть клиентское программное обеспечение для ОС Windows, Macintosh и, конечно, Linux.
Клиентская часть CVS позволяет создавать репозитарий и управлять им, включая удаленный доступ к репозитариям по сети.
На рис. 9.1 показана хронология работы с нашим простым приложением, отображенная WinCVS на сетевом клиенте под управлением ОС Windows.
Рис. 9.1
Subversion
Subversion разработана как система управления версиями, представляющая собой отличную замену системы CVS в сообществе разработчиков и пользователей программного обеспечения с открытым исходным кодом. Она проектировалась как "улучшенная CVS", о чем говорится на исходной странице Subversion Web-сайта http://subversion.tigris.org/, и, следовательно, обладает большей частью функциональных возможностей системы CVS и очень похожим работающим интерфейсом.
Популярность Subversion определенно растет, особенно в среде совместно разрабатываемых проектов, в которых над созданием приложения многие программисты работают вместе в Интернете. Большинство пользователей Subversion подключаются к сетевому репозитарию, настроенному менеджерами, разрабатываемого проекта. Эта система не так широко используется для управления индивидуальными или небольшими групповыми проектами, для них система CVS все еще остается основным применяемым средством.
В табл. 9.3 сравниваются основные команды в системах CVS и Subversion, эквивалентные друг другу.
Таблица 9.3
CVS Subversion cvs -d /usr/local/repository initsvnadmin create /usr/local/repositorycvs import wrox/chap9-cvssvn import cvs-sp file:///usr/local/repository/trunkcvs checkout wrox/chap9-cvssvn checkout file:///usr/local/repository/trunk cvs-spcvs diffsvn diffcvs rdiffsvn diff tag1 tag2cvs updatesvn status -ucvs commitsvn commitПолную документацию системы Subversion см. в интерактивной книге "Version Control with Subversion" ("Управление версиями с помощью Subversion") на Web-сайте http://svnbook.red-bean.com/.
Написание интерактивного справочного руководства
Если вы как часть задачи разрабатываете новую команду, вам следует создать интерактивное справочное руководство, описывающее ее работу. Как вы уже вероятно заметили, макет большинства страниц такого руководства следует жестко заданному шаблону следующего вида:
□ Header (Заголовок);
□ Name (Имя);
□ Synopsis (Краткий обзор);
□ Description (Описание);
□ Options (Опции);
□ Files (Файлы);
□ See also (См. также);
□ Bugs (Ошибки).
Вы можете пропустить разделы, которые не важны. Часто в конце справочного руководства появляется раздел "Author" (Автор).
Страницы справочного руководства в системах UNIX форматируются утилитой
или, как в большинстве систем Linux эквивалентом проекта GNU, утилитойnroff. Обе они — разработки на основе более ранней командыgroffилиroff. Вход утилитыrun-offилиnroff— обычный текстовый файл за исключением того, что на первый взгляд синтаксис его непостижимо труден.groff
