Файл modules хранит ваши определения символических им©н (модулей) для группы исходных текстов, находящихся в хранилище. Система CVS будет также использовать эти определения, если вы вызовете CVS для обновления самого файла modules.
Файл modules может содержать пустые строки и комментарии (строки начинающиеся знаком # - реш©тка) и строки с определением файлов, которые входят в объект (модуль). Длинные определения можно продолжать на другой строке, указав обратный слеш в конце той строки, которую хотите продолжить.
Имеется три типа объектов, которые могут быть описаны в файле modules:
Алиасный объект - это простейший вид объекта в хранилище.
Общий вид этого описания (строки) привед©н ниже.
MNAME -a aliases ...]
Это простейший способ
определения
модуля с именем MNAME. Параметр -a означает, что CVS будет воспринимать MNAME, если встретит в качестве аргумента команды, как список им©н
файлов aliases .... Список aliases ... может содержать другие
имена модулей или пути.
Когда вы используете имя пути в качестве элемента aliases ..., то команда checkout созда©т промежуточный каталог в вашем рабочем каталоге, как будто вы использовали имя пути явно в командной строке checkout.
Например, если файл modules содержит строку:
amodule -a first-dir
тогда следующие две команды просто эквивалентны по своим результатам:
cvs checkout amodule
cvs checkout first-dir
и они произведут вывод похожий на тот, что привед©н ниже:
cvs checkout: Updating first-dir U first-dir/file1 U first-dir/file2 cvs checkout: Updating first-dir/sdir U first-dir/sdir/sfile
Общий вид строки файла modules описывающей регулярные модули
представлен ниже
MNAME [ options ] dir [files ...]
В простейшем случае эта форма записи редуцируется до
MNAME DIR
Эта строка определяет все файлы в каталоге dir как
модуль с именем MNAME. Имя dir является относительным к $CVSROOT. Во время
выполнения команды checkout одиночный каталог с именем MNAME
будет создан как рабочий каталог. Не будет использовано никаких
промежуточных каталогов, даже если dir включает несколько
промежуточных каталожных уровней.
Например, если модуль определ©н как
regmodule first-dir
то regmodule будет содержать файлы из каталога first-dir.
Тогда выполнение показанной ниже команды даст следующее
cvs checkout regmodule cvs checkout: Updating regmodule U regmodule/file1 U regmodule/file2 cvs checkout: Updating regmodule/sdir U regmodule/sdir/sfile
Явно описывая файлы в определении модуля после dir, вы можете
выбрать отдельные файлы из каталога dir.
Например,
regfiles first-dir/sdir sfile
С этим определением получение модуля
с именем regfiles создаст одиночный
рабочий каталог с именем regfiles, содержащий перечисленные файлы,
которые будут взяты из нижележащего каталога хранилища CVS.
cvs checkout regfiles U regfiles/sfile
Модульное определение может ссылаться на другие модули включением строки
"&module" в определение:
MNAME [ options ] &module ...
Тогда получение модуля созда©т подкаталог для каждого такого модуля в
каталоге, содержащем модуль.
Например, если модули содержат
ampermod &first-dirтогда команда checkout создаст каталог с именем ampermod, который содержит подкаталог с именем first-dir, который, в свою очередь, содержит все каталоги и файлы живущие там. Например, команда
$ cvs checkout ampermodсоздаст следующие файлы:
ampermod/first-dir/file1 ampermod/first-dir/file2 ampermod/first-dir/sdir/sfileИмеется небольшая огрех в диагностике: сообщения, которые выводит CVS не содержат слова ampermod, т.е. положение создаваемых файлов указывается не совсем корректно.
$ cvs co ampermod cvs checkout: Updating first-dir U first-dir/file1 U first-dir/file2 cvs checkout: Updating first-dir/sdir U first-dir/sdir/sfile $
В будущем это, видимо, будет изменено.
Алиасный модуль может исключать отдельные каталоги из других модулей посредством указания восклицательного знака перед именем каждого исключаемого каталога.
Например, если файл modules содержит
exmodule -a !first-dir/sdir first-dir ,тогда создание рабочих копий по команде checkout для модуля exmodule будет создавать рабочие копии всех файлов и каталогов из каталога first-dir исключая файлы из каталога first-dir/sdir.
Регулярные модули и амперсандные модули могут содержать параметры, которые обеспечивают дополнительную информацию, касающуюся модуля.