Содержание
В репозитории CVS хранит полные копии всех файлов и каталогов, находящихся под контролем версий.
Обычно вам никогда не придется напрямую обращаться к файлам в репозитории. Вместо этого вы будете использовать команды CVS для получения вашей собственной копии файлов в вашем рабочем каталоге, а затем будете работать с этой копией. Когда вы внесли определенные изменения, вы помещаете (или фиксируете) их в репозиторий. Теперь в репозитории хранится информация о сделанных вами изменениях: что именно и когда было изменено и прочая подобная информация. Заметьте, что репозиторий не является подкаталогом рабочего каталога, и обратное также неверно; они находятся в совершенно разных местах.
CVS может обращаться к репозиторию множеством способов. Репозиторий может находиться на локальной машине, на соседней машине или же на машине, находящейся на другом континенте. Чтобы различать способы доступа к репозиторию, его имя начинается с метода доступа. Например, метод доступа :local: означает, что репозиторий находится в локальном каталоге. Например, :local:/usr/local/cvsroot' означает, что репозиторий находится в каталоге /usr/local/cvsroot на компьютере, на котором используется CVS. Другие методы доступа описаны в разделе “Сетевые репозитории”.
Если метод доступа не указан, и имя репозитория не содержит :, то предполагается метод :local:. Если в имени содержится :, то предполагается метод доступа :ext: или :server:. Например, если ваш локальный репозиторий находится в /usr/local/cvsroot, то вы можете использовать /usr/local/cvsroot вместо :local:/usr/local/cvsroot. Но если, например, под Windows NT ваш локальный репозиторий находится в c:\src\cvsroot, то вы должны указать метод доступа, то есть :local:c:\src\cvsroot.
Репозиторий делится на две части. $CVSROOT/CVSROOT содержит административные файлы CVS. Все прочие каталоги содержат модули, определенные пользователем.
Существует несколько способов сообщить CVS, где искать репозиторий. Вы можете явно задать репозиторий в командной строке с помощью ключа -d (“directory”, каталог):
cvs -d /usr/local/cvsroot checkout yoyodyne/tc
Другим вариантом является установка переменной окружения $CVSROOT в полный путь до корня репозитория, например, /usr/local/cvsroot. Чтобы установить $CVSROOT, пользователи csh и tcsh должны поместить в свой файл ~/.cshrc или ~/.tcshrc такую строку:
setenv CVSROOT /usr/local/cvsroot
Пользователи sh и bash должны поместить в свой файл .profile или .bashrc такие строки
CVSROOT=/usr/local/cvsroot export CVSROOT
Имя репозитория, указанное с помощью -d, будет использоваться вместо указанного в переменной окружения $CVSROOT. Когда вы извлечете рабочую копию из репозитория, эта копия будет помнить, из какого именно репозитория ее извлекли (эта информация хранится в файле CVS/Root в рабочем каталоге).
Ключ -d и файл CVS/Root переопределяют репозиторий, заданный в переменной окружения $CVSROOT. Если репозиторий, заданный ключом -d, отличается от репозитория, указанного в файле CVS/Root, используется первый из них. Конечно же, для правильного функционирования в обоих местах должен быть упомянут один и тот же репозиторий.