Using the CVS
What is CVS ?

CVS это сокращение для Concurrent Versions System; это система для синхронизации набора файлов, помещенных в иерархическое дерево каталогов. Люди могут обновить свои локальные копии иерархического дерева с CVS сервера и, в свою очередь, прислать изменения или новые файлы; можно также удалить старые файлы.
Эта клиент-серверная модель делает его многопользовательским, работающим по сети. Эти возможности позволяют выбрать CVS для проектов для которых несколько человек в разных местах должны работать вместе над файлами данных, особенно над исходными кодами программ.
Все важные проекты free software используют CVS как центральное место, в котором программисты собирают свои улучшения и изменения: Gnome, KDE, The GIMP, Wine, и др.
И, конечно, так делает MandrakeSoft для своих разработок.

Как использовать CVS сервер Mandrake Linux-а

Для использования CVS вы должны подсоединиться (connect) к серверу и сделать локальную копию необходимого вам модуля CVS. В следующий раз вам надо будет только сделать обновление чтобы получить отличия со времени последнего подсоединения.
Это просто. Вам только нужен пакет cvs (входящий в стандартный дистрибутив Mandrake) и место на диске, достаточное для того, что вы хотите скачать.

Чтобы сообщить cvs к какому серверу вы хотите подсоединиться, под каким идентификатором, и какой заголовок CVS нужен, надо задать переменную CVSROOT, непример так:

export CVSROOT=:pserver:[email protected]:/home/cvs/cooker
если вы хотите подсоединиться к серверу linux-mandrake.com, идентифицировать себя на сервере как anoncvs, и делать запросы относительно заголовка CVS /home/cvs/cooker (на данном сервере их может быть больше одного).

После того как переменная установлена можете подсоединяться; это делается командой cvs login. После этого у вас спросят пароль и voilЮ! вы подсоединены.

Следующий шаг необходим только для первого раза; вам надо создать свежую копию нужной вам иерархии. Скажем, если вы хотите взять иерархическое дерево po , наберите:

cvs -z3 checkout po
( -zX означает использование сжатия; поскольку обмен идет в основном плоскими текстовыми файлами, для которых это полезно; можно увеличить число для большего сжатия, или уменьшить для меньшего. (Имейте однако в виду, что увеличение сжатия увеличит загрузку процессора у вас и на сервере) Вы увидите множество сообщений на stdout, по мере получения файлов и записи их на локалбный диск.as files are get and copied

В следующий раз уже не надо будет делать cvs checkout; просто cvs login (не забудьте о переменной окружения CVSROOT), после чего обновите cvs, вроде следующего:

cd po
cvs -z3 upgrade -d
Обратите внимание, что я перешел в каталог po; мне это кажется проще. -d означает, что надо создать и забрать все каталоги, которые сервер CVS мог создать с прошлого соединения. -zX имеет то же значение, что и в cvs checkout

При помощи этих простых команд вы всегда можете получить последние материалы по любому проекту к CVS которого вы имеете доступ на чтение. Но используйте эти возможности по назначению: требуется значительная пропускная способность и ресурсы сервера для организации этого сервиса; если вам не требуются исходные тексты, не пользуйтесь этим. С другой стороны, если вы всерьез намерены внести вклад в мир free software, (а для этого не обязательно быть программистом; есть жесточайшая потребность в переводчиках, авторах текстов, дизайнеров,...) вам нужны инструменты для получения файлов до их официального выпуска возможность посылать ваши предложения, исправления, и т.п.

Если у вас есть доступ на запись к CVS вы можете также напрямую выкладывать изменения.
Вам доступны три вида изменений:

  • изменение существующих файлов:просто измените файл (отредактируйте его, или скопируйте другой файл поверх него).
  • добавление новых файлов/каталогов:Их надо скопировать (в случае каталогов - создать их) затем вызвать cvs add newfileordir чтобы сообщить, что вы хотите создать объект.
  • remove files/dirs:You need to first remove them locally, then call cvs delete removedfileordir (yes, it is a little annoying, as you can't use completion or shell special chars *? in the cvs delete command line (as you can do with cvs add for exemple)
Затем вы набираете cvs -z3 commit (-zX снова имеет привычное значение) и только после этого сделанные вами изменения попадут на сервер. Вы должны будете в своем любимом редакторе (заданном переменной окружения EDITOR) составить некоторое описание, к чему ваши изменения (это будет храниться в протоколах сервера CVS и позволит упростить откатку в случае возникновения проблем)
Имейте в виду. что если сервер имеет более свежую версию файлов, которые вы хотите положить, произойдет ошибка; так что рекомендуется обновлять cvs прежде всего.

Доступные в настоящее время модули CVS на сервере mandrake-linux.com

  • po: дает доступ к переводам описаний, используемых в пакетах rpm (можно подсоединиться анонимно с именем (login) anoncvs и паролем cvs; если вам нужен доступ на запись, обратитесь к Chmouel Boudjna)
  • .... (эта страница еще не закончена :) )