14.32 update - синхронизировать рабочий каталог и хранилище contents

Подраздел



14.32 update - синхронизировать рабочий каталог и хранилище

  • Формат вызова:
    cvs update [-AdflPpR] [-d] [-r tag|-D] files ...
  • Требуется: хранилище, рабочий каталог.
  • Изменения: рабочий каталог.

После того как вы выполнили команду checkout, чтобы создать рабочий каталог, который содержит вашу персональную копию исходных текстов из общего хранилища, другие разработчики продолжают работать над содержимым хранилища. Естественно, при этом меняются исходные тексты в общем хранилище, в том числе и те тексты, которые вы используете в своей работе. Это означает, что время от времени, когда вам это удобно, необходимо приводить содержимое вашего рабочего каталога (включая содержание файлов) в соответствие с состоянием общего хранилища.

Эта операция производится с помощью команды update.

14.32.1 Параметры команды update

Здесь приведены стандартные параметры команды update.

-D date
Использовать наиболее свежую версию, но не позже даты date. Этот параметр липкий и подразумевает -P.

-f
Полезно только вместе с параметрами -D date или -r tag. Если не найдено подходящих версий, то производится поиск наиболее свежих версий.

-k kflag
Обрабатывать ключевые слова RCS в соответствии с kflag. Смотрите описание co(1). Этот параметр липкий: будущие изменения этого файла в этом рабочем каталоге будут использовать то же значение kflag. Команда status показывает установленные значения липких (sticky) тегов. Например,
cvs status CVS_cvscat.tex
в ответ будет напечатано что-то похожее на следующее.


===================================================================

File: CVS_cvscat.tex Status: Up-to-date



 Working revision: 1.1  Wed Feb 24 18:09:45 1999

 Repository revision: 1.1  /home/shevel/WorkCVS/BOOK/CVS_cvscat.tex,v

 Sticky Tag:   MyCVS (revision: 1.1)

 Sticky Date:   (none)

 Sticky Options:  (none)

-l
Локально; выполнять только в текущем рабочем каталоге (без подкаталогов).
-P
Удалить пустые каталоги.
-p
Вывести файлы на стандартное устройство вывода, например, направить в следующий фильтр.
-R
Выполнять рекурсивно. Это есть умолчание.

-r tag
Найти версию tag. Этот параметр связан; предполагает использование -P.

Далее следуют специальные параметры, которые могут использоваться с командой update.

-A
Сбросить (reset) липкие значения: tag, date или значения установленные параметром -k.

-d
Создать любые каталоги, которые имеются в общем хранилище, но отсутствуют в вашем рабочем каталоге. Обычно, update воздействует только на те каталоги и файлы, которые уже находятся в вашем рабочем каталоге.

Такая возможность полезна для приведения вашей собственной копии рабочего материала (программ, описаний, прочего) в соответствие с общим хранилищем. Если вы намеренно избегаете копирования определ©нных каталогов из общего хранилища в ваш рабочий каталог посредством использования имени модуля или точным перечислением им©н файлов и каталогов в командной строке команды checkout, то использование параметра -d в команде update привед©т к копированию всех каталогов. Может оказаться, что копирование всех каталогов и файлов из хранилища совсем не входит в ваши планы.

-I name
Игнорировать файлы, чь© имя удовлетворяет строке name (в вашем рабочем каталоге) во время выполнения команды update. Вы можете использовать параметр -I несколько раз в одной команде, чтобы указать несколько файлов, которые вы хотели бы пропустить. Чтобы отменить игнорирование всех файлов, следует использовать -I !.

-Wspec
Определить имена файлов, которые (имена) должны быть отфильтрованы во время выполнения команды update. Этот параметр может применяться несколько раз в одной команде.

-jrevision
Если параметр -j используется однократно, то следует выполнить слияние предыдущей версии с версией, которая описывается параметром -j. Результат поместить в рабочий каталог. Термин предыдущая версия означает общего предка версии, которая находится в рабочем каталоге и версии, которая указана параметром -j.

Два параметра -j означают, что следует выполнить слияние изменений в версии, описываемой первым параметром -j, с изменениями в версии, описываемой вторым параметром -j, а результат записать в рабочий каталог.

В дополнение, каждый параметр -j может специфицировать дату, которая при использовании с ветвями может ограничить выбранные версии определ©нными датами. Дату можно задать в следующем виде:
-jsymbolic_tag:date
Как видно, дата (date) отделяется от тега (symbolic_tag) двоеточием.

14.32.2 Описание диагностики команды update

Команды update и checkout информируют вас о выполняемых действиях пут©м вывода сообщений (по одной строке на обработанный файл). В качестве первого символа в строке используются несколько букв для обозначения состояния файла:

U FILE
- Файл в вашем рабочем каталоге привед©н в соответствии с состоянием файла в общем хранилище. Это делается для всех файлов, которые уже имеются в вашем рабочем каталоге, но не в хранилище. Даже если вы не изменяли какой-то файл в вашем рабочем каталоге, но он был измен©н в хранилище, то он будет также привед©н в соответсвие с состоянием в хранилище.

A FILE
- Файл был добавлен к вашей рабочей копии исходных текстов. Он будет записан в хранилище когда вы выполните команду commit.

R FILE
- Файл был удал©н из вашего рабочего каталога (из вашей рабочей копии исходных текстов) и будет удал©н из хранилища, когда вы выполните команду commit.

M FILE
- Файл был модифицирован в вашем рабочем каталоге. Обозначение M может означать одно из двух состояний, в котором находится файл, с которым вы работаете:
  • не было никаких модификаций этого файла в хранилище, а имеют место только те изменения, что вы сами внесли в вашу копию файла в вашем рабочем каталоге;

  • имели место как изменения в хранилище так и изменения в вашем рабочем каталоге, однако эти обе версии изменений были объединены без конфликтов в вашем рабочем каталоге.

CVS будет выводить ряд сообщений, если она выполняет слияние вашей работы и делает резервную копию (backup) вашего рабочего файла, сохраняя тот вид, который он имел до выполнения команды update.

C FILE
- Встречен конфликт (перекрывающиеся изменения) во время выполнения слияния ваших изменений в вашем рабочем каталоге в файле с именем FILE с изменениями, которые имели место в хранилище. Файл с именем FILE в вашем рабочем каталоге представляет собой вывод команды rcsmerge(1) и имеется в двух версиях. Немодифицированная копия файла с именем FILE также находится в вашем рабочем каталоге и имеет имя .#FILE.REVISION, где REVISION есть версия в стандарте RCS, с которой вы начали модификации. Разрешить конфликт можно так, как объяснено в разделе 14.18.

? FILE
- Файл с именем FILE в вашем рабочем каталоге не соответствует ничему в общем хранилище и не находится в списке файлов, которые следует игнорировать в параметре -I. Иными словами, система CVS ничего о н©м не знает.

Заметим, что не выводится никаких сообщений по поводу ложных каталогов, которые CVS просто игнорирует.

14.32.3 Примеры использования команды═update

Нижеследующая строка является неплохим примером использования команды update, чтобы посмотреть сразу все файлы в текущем рабочем каталоге без какого бы то ни было изменения.
cvs -n -q update
Это может служить неплохим средством, чтобы понять, что происходит с проектом.


contents Обновлено: 16.03.2015