Управление исходными текстами. Часть 1. Краткое руководство по CVS - страница 3
Рисунок 2.
Кроме цифровых номеров редакций, которые для простоты можно рассматривать как внутренний механизм CVS, можно использовать и символические имена. Вы можете присвоить символическое имя отдельной редакции отдельного файла, группе файлов или всему проекту сразу. Для выполнения этой функции используются «метки» (tags), которые подробно обсуждаются во второй части статьи при описании работы с редакциями и в третьей части при описании управления ветвями.
Репозиторий
Как уже говорилось, в репозитории хранятся все файлы и каталоги, которые участвуют в проекте, все их редакции и даже уже удалённые файлы. Обычно при работе с CVS у Вас не будет прямого доступа к репозиторию. Вместо этого вы будете использовать cvs-команды для получения, обновления и других манипуляций с файлами, находящимися под управлением системы контроля версий. Каталог, в котором находятся рабочие файлы, называется рабочим каталогом.
ПРЕДУПРЕЖДЕНИЕ. Рабочий каталог – не то же самое, что репозиторий, и он не может быть подкаталогом репозитория. И наоборот, репозиторий не может находиться в подкаталоге рабочего каталога. В противном случае последствия непредсказуемы.
Чтобы указать системе, где находится репозиторий, необходимо указать его идентификатор (CVSROOT). Это строка, однозначно определяющая репозиторий, однако её формат зависит от того, как система получает доступ к репозиторию. Существуют разные методы доступа к репозиторию – локально, по сети, с разным уровнем защиты и по разным протоколам. Чтобы сообщить CVS, каким конкретно методом пользоваться, используется нотация метода доступа (access method notation). В общем виде CVSROOT выглядит следующим образом:
>:метод-доступа:некоторые-данные-специфичные-для-метода
Рисунок 3.
Например, если ваш репозиторий находится на локальном или сетевом диске, вы можете использовать метод доступа local. Тогда CVSROOT будет выглядеть так (для Windows):
>:local:c:/cvs/repository/
или так (для UNIX):
>:local:/usr/local/cvsroot
ПРЕДУПРЕЖДЕНИЕ. Обратите внимание, что для Windows слэши всё равно должны быть прямыми, а не обратными, как это принято в самой операционной системе. Кроме того, в CVS имена файлов чувствительны к регистру символов (case sensitive), тогда как Windows игнорирует регистр. Это может привести к проблемам, если у вас в репозитории находятся файлы File.h и file.h. Старайтесь использовать нижний регистр для имен файлов при работе с Windows.
Примеры CVSROOT с комментариями:
>:pserver:user@megasoft.com:/cvsroot
> Метод доступа pserver – простая авторизация паролем
> Сервер находится по адресу megasoft.com
> Имя пользователя “user”
> Локальный путь на сервере к репозиторию - /cvsroot
> Пользователь должен выполнить команду login перед доступом к серверу
>:sspi:dev-server:/projects
> Метод доступа sspi – использование авторизации в Windows-домене
> Сервер – dev-server в текущем домене
> Имя пользователя – текущий пользователь Windows
> Условное имя репозитория на сервере – projects
>:method:[[user][:password]@]hostname[:[port]]/path/to/repository
> Общий вид для удалённого репозитория
> Использовать открытый пароль в CVSROOT крайне не рекомендуется, лучше пользоваться командой cvs login
Совмещение и обновление
CVS всегда помнит, какие редакции у вас находятся в рабочем каталоге. Для изменённых файлов он помнит, какие редакции у них были до того, как вы начали изменять эти файлы. Это необходимо, чтобы правильно совместить несколько изменений, произошедших с файлом одновременно.
Предположим, что два разработчика одновременно начали работать над одним и тем же файлом, и в момент начала этого процесса в репозитории была редакция 1.1. По истечении определенного времени мы имеем в репозитории редакцию 1.1 и в двух рабочих каталогах изменения к этой редакции. Предположим также, что работа в каталоге №2 закончена и изменения отправляются в репозиторий (детали этой операции мы рассмотрим в следующей части статьи). В репозитории появляется новая редакция файла и ей присваивается номер 1.2. В каталоге №2 тоже содержится редакция 1.2. Однако в каталоге №1 по-прежнему находятся изменения