В таком режиме система CVS запросит ваш пароль при каждом обращении к утилите cvs . Есть люди, которых это раздражает, поэтому они генерируют авторизиро-ванный ключ. Эта функция присуща SSH, а не CVS, и подробнее о ней можно узнать на Web-узле OpenSSH (<http://www.openssh.org/>).
Для создания проекта в вашем репозитории воспользуйтесь командой import. Эта команда создает каталог в репозитории и рекурсивно копирует все файлы в текущий каталог. Например, был начат новый проект в каталоге myproject, в котором находится один-единственный сценарий PHP. Для того чтобы создать каталог в репо-зитории, можно воспользоваться командами, показанными на рис. 27.3. Обратите внимание на то, каким образом здесь используются символы обратной косой черты, позволяющие избежать переноса строк.
Параметр -d определяет путь к репозиторию. Параметр -m применяется к команде import и задает комментарий, ассоциирующийся с работой системы CVS. Этот комментарий может быть таким длинным, как это нужно, и если не задать параметр -m, то система CVS запустит для вас редактор. Последние три команды задают имя проекта, тег производителя и тег версии. Эти имена полностью отдаются на откуп разработчику. Имя проекта - это имя, которое используется для обозначения каталога на сервере и имя, по которому делаются ссылки на проект, поэтому по возможности выбирайте краткие имена. Имена, которые выбираются для описания производителя и версии, обычно большого значения не имеют. Я обычно использую название компании и слово start.
Проэктирование
Системой CVS на сервере был создан каталог, но не был изменен ни один файл из импортированных файлов. Для того чтобы обработать файлы в репозитории, необходимо выполнить отладку.
Команда checkout копирует файлы с сервера на вашу локальную машину, а также создает каталоги CVS в каждом подкаталоге проекта. Эти подкаталоги отслеживают состояние файлов и их происхождение. После проверки путь к репозиторию указывать больше не требуется - CVS сама найдет нужный каталог CVS.
На рис. 27.4 показано, каким образом можно проверить новый проект.
Проэктирование
После проверки проекта можно приступать к редактированию файлов. Другие разработчики могут приступать к осуществлению автономных проверок. После завершения работы с файлом для интеграции всех внесенных изменений задайте команду commit. При этом система CVS проверит все файлы в текущем каталоге и во всех его подкаталогах. После этого система CVS синхронизирует состояние своих файлов с сервером. На рис. 27.5 показаны результаты работы команды commit.
Участники разработки проекта могут по мере необходимости синхронизировать данные, хранящиеся в файлах, сохраняя тем самым на сервере самые актуальные версии файлов. Ваши файлы не будут обновлены, если не получить их явным образом с помощью команды update. CVS проверяет все файлы рекурсивно, и если на сервере есть более новая версия, ваши файлы будут синхронизированы с ней. Внесенные вами изменения не будут утеряны, поскольку CVS позволяет совместить изменения, внесенные вами, с изменениями, внесенными после последнего изменения файлов.
Проэктирование
Модификация ваших файлов поможет синхронизировать работу с другими разработчиками и избежать конфликтов. Конфликт происходит тогда, когда два разработчика не могут договориться по определенной части исходного кода. Рассмотрим, например, следующую последовательность событий. В начале имеем следующую строку исходного кода: $a=3. Позднее другой разработчик изменяет эту строку на $a=5 и синхронизирует данный файл. Таким образом, задается официальная версия данной строки. Если синхронизировать эту строку на локальном компьютере перед изменением этой строки - все будет нормально. Однако изменение этой строки до синхронизации своих файлов с файлами сервера приводит к конфликту. Система CVS отметит конфликтный фрагмент кода и вставит обе версии в исходный код. Для разрешения конфликта необходимо отредактировать файл и выбрать одну из версий.
Регулярная синхронизация файлов позволяет избежать возникновения новых конфликтов. Это также поставит вас в известность о последних изменениях, внесенных в файлы. В момент синхронизации CVS предупредит вас о том, в каких файлах произошли изменения с момента последнего обновления версий. CVS можно настроить таким образом, чтобы она сообщала обо всех изменениях по почтовой рассылке. Если все разработчики подписаны на список рассылки, то они смогут контролировать ход работы над проектом. Это ни в коем случае не заменит обычного общения между членами группы разработки, но существенно снизит необходимость постоянно "расследовать", кто является автором последней редакции определенного файла.
Когда проект уже запущен в работу, существуют две возможности. Если нововведения являются нечастыми, можно экспортировать проект и заменить существующие файлы на работающем сервере. Для синхронизации без просмотра каталогов CVS необходимо использовать команду export.
Для Web-узла, который претерпевает частые обновления, я предпочитаю делать обычную синхронизацию системы CVS на работающем сервере. При обновлении версии на работающем сервере необходимо зарегистрироваться на рабочем сервере и ввести команду update. Это сделать быстрее и проще, чем замещать все существующие файлы, а, кроме того, позволяет избежать возникновения ошибок, связанных с утерей файлов или заданием ошибочных путей.