Repository revision: 1.1 d:\temp\rep/test/readme.txt,v
Sticky Tag: 1.1
Sticky Date: (none)
Sticky Options: (none)
Теперь рассмотрим команды, которые помогут получить самые различные редакции файлов.
Чтобы получить конкретную редакцию по номеру или метке для отдельного файла, подкаталога или всего проекта, используется ключ -r для команды update, параметром к которому должен быть либо номер редакции, либо ранее присвоенная метка. Следующая команда приведёт рабочий каталог к состоянию, в котором эта метка была присвоена:
› cvs update -r release-1-0
А эта команда достанет из репозитория самую первую редакцию файла readme.txt - то состояние, в котором он был добавлен в репозиторий:
› cvs update -r 1.1 readme.txt
Параметр -r создаёт липкую метку для файлов. Если вы получили конкретную редакцию или набор файлов по метке, вы больше не будете получать обновлений, пока не сбросите липкие метки или кто-то их не передвинет.
ПРЕДУПРЕЖДЕНИЕИспользование номера редакции при обновлении каталога относительно бессмысленно. Редакции файлов независимы, поэтому команда cvs update -r 1.2 достанет из репозитория все файлы, которые вообще хоть раз обновлялись, и именно их вторую редакцию. Скорее всего, это будет несовместная сборка файлов из разных периодов жизни проекта, в том числе и уже удалённых. Пользуйтесь символическими метками (тегами) для установления логической связи между редакциями файлов.
Ключ -D поможет получить состояние исходных текстов по дате создания редакции. Выбирается самая последняя редакция, созданная не позже указанной даты. Например, можно получить вчерашние файлы, если вчера всё работало, а сегодня что-то сломалось. Можно просто посмотреть какой-то старый код, в котором была нужная сегодня функция.
› cvs update -D date_spec
Такое обновление также создаёт липкие метки на файлах - пока они их не сброшены, Вы не получите обновлений с датой позже указанной. Формат даты ( date_spec) может быть очень разным, CVS поддерживает многое из спецификации ISO8601, но вам, скорее всего, понадобится всего несколько вариантов, которые я здесь приведу в качестве примера:
2002-12-06 // дата в формате YYYY-MM-DD
2002-12-06 18:22 // дата в формате YYYY-MM-DD HH:MM
6 Dec 2002 // дата в формате DD MMM YYYY
yesterday // вчера
1 hour ago // час назад
7 days ago // неделю назад
В этой статье я попытался рассказать о базовых возможностях работы с CVS с тем, чтобы любой программист мог непосредственно начать использовать это мощное средство. Тем не менее, возможности CVS не ограничиваются описанными в этой статье. В следующей статье о CVS мы продолжим изучение этой системы.