Почти все подкоманды CVS работают рекурсивно, если вы укажете в качестве аргумента каталог. Например, представим себе такую структуру каталогов:
$HOME | +--tc | | +--CVS | (служебные файлы CVS) +--Makefile +--backend.c +--driver.c +--frontend.c +--parser.c +--man | | | +--CVS | | (служебные файлы CVS) | +--tc.1 | +--testing | +--CVS | (служебные файлы CVS) +--testpgm.t +--test2.t
Если `tc' -- это текущий рабочий каталог, то верны следующие утверждения:
- `cvs update testing' эквивалентно
cvs update testing/testpgm.t testing/test2.t
tc
Если команде update
не было дано ни одного аргумента, то она обновит все файлы в текущем рабочем каталоге и во всех его подкаталогах. Другими словами, `.' является аргументом по умолчанию для update
. Это также истинно для большинства подкоманд CVS, а не только для команды update
.
Рекурсивное поведение подкоманд CVS может быть отключено с помощью ключа командной строки `-l', и наоборот, ключ командной строки `-R' может использоваться для принудительной рекурсии, если `-l' был указан в `~/.cvsrc' (see section Ключи по умолчанию и файл ~/.cvsrc).
$ cvs update -l # Не обновлять файлы в подкаталогах