CVS.Система управления параллельными версиями

       

Ключи команды admin


Некоторые ключи имеют сомнительную полезность для CVS, но существуют по историческим причинам. Некоторые даже приводят к невозможности использования CVS, пока вы не отмените их действие! -Aстарый_файл Может не работать совместно с CVS. Добавляет список доступа старого_файла к списку доступа RCS-файла. -aимена Может не работать совместно с CVS. имена перечисляются через запятую. Добавляет имена к списку доступа RCS-файла. -b[ревизия] Устанавливает ветку по умолчанию& В CVS вы обычно не манипулируете ветками по умолчанию, вместо этого используются липкие метки (see section Липкие метки). Есть одна причина использовать cvs admin -b: вернуть обратно версию от поставщика при использовании веток поставщика (see section Возврат к последней версии от поставщика). Между `-b' и аргументом не должно быть пробела. -cстрока Делает строку префиксом комментария. Этот префикс не используется ни в текущей версии CVS, ни в RCS 5.7, таким образом, о нём можно не беспокоиться. See section Подстановка ключевых слов. -e[имена] Может не работать совместно с CVS. имена перечисляются через запятую. Удаляет имена из списка доступа RCS-файла. Если имена не заданы, очищает весь список доступа. -I Выполняется интерактивно, даже если стандартный ввод не является терминалом. Этот ключ не работает с сетевой версией CVS и, скорее всего, исчезнет в будущих версиях CVS.


-i Бесполезный ключ. Создает новый RCS-файл, не создавая новой ревизии. Файлы можно добавлять в репозиторий с помощью команды cvs add (see section Добавление файлов в каталог). -ksubst Устанавливает режим подстановки ключевых слов по умолчанию. See section Подстановка ключевых слов. Явное указание режима подстановки при использовании команд cvs update, cvs export и cvs checkout переопределяет этот режим по умолчанию. -l[rev] Блокировать ревизию с номером rev. Если указан номер ветки, заблокировать самую последнюю ревизию на ветке. Если rev опущено, заблокировать последнюю ревизию на ветке по умолчанию. Между `-l' и аргументом не может быть пробела.
Этот ключ можно использовать в сочетании со скриптом `rcslock.pl', находящимся в каталоге `contrib/' в дистрибутиве CVS, для того, чтобы пользоваться блокированными извлечениями (когда только один пользователь в каждый момент времени может редактировать данный файл). Смотрите комментарии в этом файле за дальнейшей информацией (а также файл `README' в каталоге `contrib/', где содержится уведомление об отсутствующей поддержке для содержимого этого каталога.) В соответствии с вышеупомянутыми комментариями следует установить жесткий режим блокировки (по умолчанию это именно так). -L Установить жесткий режим блокировки. Это означает, что владелец RCS-файла наравне со всеми прочими должен блокировать файл перед внесением в него изменений. Для работы с CVS жесткий режим блокировки должен быть установлен; смотри обсуждение этого вопроса в описании ключа `-l'. -mrev:msg Заменить журнальное сообщение ревизии rev на msg. -Nимя[:[rev]] Действует так же, как `-n', переопределяя уже существующее имя. Об использовании с волшебными ветками смотри section Волшебные номера веток. -nимя[:[rev]] Связывает алфавитное имя с веткой или ревизией rev. Обычно вместо этого ключа лучше использовать `cvs tag' и `cvs rtag'. Если двоеточие и rev опущены, удаляет имя; в противном случае сообщает об ошибке, если имя уже связано с каким-либо номером. Если rev является алфавитным именем, то оно перед связыванием заменяется на соответствующий номер. Если rev состоит из номера ветви, за которым следует точка, то это означает самую свежую ревизию на ветке. Двоеточие с отсутствующим rev означает самую свежую ревизию на ветке по умолчанию, или на стволе. Например, `cvs admin -nname' связывает name с последней ревизией всех RCS-файлов; подобно этому `cvs admin -nname:$' связывает name с номерами ревизий, извлеченных из содержимого ключевых слов в соответствующих рабочих файлах. -oдиапазон Удаляет (делает устаревшими) ревизии, заданные диапазоном. Заметьте, что эта команда может быть весьма опасна, если только вы не знаете точно, что именно вы делаете (например, смотрите предупреждения о возможной путанице в синтаксисе rev1:rev2).


Если вам не хватает дискового пространства, то эта команда может вам помочь. Подумайте дважды перед её использованием: отменить действие этой команды нельзя никак, кроме восстановления с резервных копий. Вероятно, неплохо будет сначала поэкспериментировать на копии репозитория. диапазон задаётся одним из нескольких способов: rev1::rev2 Уничтожить ревизии между rev1 и rev2, так что CVS будет хранить только изменения между rev1 и rev2, но не промежуточные изменения. Например, после выполнения команды `-o 1.3::1.5' можно извлечь ревизию 1.3, ревизию 1.5, разницу между 1.3 и 1.5, но не ревизию 1.4 или разницу между 1.3 и 1.4. Другой пример: `-o 1.3::1.4' и `-o 1.3::1.3' не совершат никакого действия, потому что удалять в данных случаях нечего. ::rev Удаляет ревизии между началом ветки, содержащей rev, и самой rev. Точка начала ветки и rev остаются нетронутыми. Например, `-o ::1.3.2.6' удаляет ревизию 1.3.2.1, ревизию 1.3.2.5 и все ревизии в промежутке между ними, но не трогает 1.3 и 1.3.2.6. rev:: Удаляет ревизии между rev и концом ветки, содержащей rev. Ревищия rev остается нетронутой, но головная ревизия (HEAD) удаляется. rev Удаляет ревизию rev. Например, `-o 1.3' эквивалентно `-o 1.2::1.4'. rev1:rev2 Удаляет ревизии от rev1, включительно, до rev2, включительно, находящиеся на одной ветке. После выполнения команды нельзя будет извлечь ревизии rev1, rev2, а также все ревизии в промежутке между ними. Например, команда `cvs admin -oR_1_01:R_1_02 .' редко бывает полезна. Она означает "удалить ревизии вплоть до метки `R_1_02', включительно". Осторожно! Если есть файл, которые изменились между `R_1_02' и `R_1_03', то в файле соответствующим меткам будут присвоены одинаковые номера ревизии. Из-за этого не только нельзя будет извлечь `R_1_02', но и `R_1_03' потребуется восстанавливать с резервных копий. В большинстве случаев следует использовать вариант `rev1::rev2'. :rev Удалить ревизии с начала ветки, содержащей rev, вплоть до самой rev, включительно. rev: Удалить ревизии от rev, включительно, до конца ветки, содержащей rev.


Ревизии не могут быть удалены, если они заблокированы или с них начинаются ветви. Если ревизии имеют алфавитные имена и вы используете эти имена в сочетании с синтаксисом `::', то CVS выдаст сообщение об ошибке и не будет удалять такие ревизии. Если вы действительно хотите удалить алфавитные имена и ревизии, то сначала удалите имена с помощью cvs tag -d, затем выполните cvs admin -o. Если вы не используете синтаксис `::', то CVS удалит ревизии, но оставит алфавитные имена, которые ссылаются на несуществующие ревизии. Такое поведение оставлено для совместимости с предыдущими версиями CVS, но так как оно не очень полезно, то в будущем может измениться, чтобы совпадать со случаем `::'. Из-за способа, которым CVS обрабатывает ветви, rev нельзя задавать в виде алфавитного имени, если эта ревизия находится на ветке. В section Волшебные номера веток объясняется, почему это так. Убедитесь, что никто не извлёк копию ревизии, которую вы делаете устаревшей. Могут произойти странные вещи, если кто-то редактирует эту ревизию и пытается зафиксировать её. Из-за этого ключ `-o' не следует использовать для отмены ошибочного фиксирования, вместо этого фиксируйте ещё одну ревизию, исправляющую ошибочное изменение (see section Слияние изменений между двумя ревизиями). -q Работать тихо, не выдавать сопроводительных сообщений. -sstate[:rev] Полезно использовать вместе с CVS. Устанавливает атрибут состояния ревизии rev в state. Если rev --- это номер ветви, то использовать последнюю ревизию на этой ветви. Если rev опущена, использовать последнюю ревизию на ветви по умолчанию. В качестве state можно использовать любой идентификатор. Полезным набором является `Exp' (экспериментальный), `Stab' (стабильный) и `Rel' (вошедший в конечный продукт). По умолчанию состояние новой ревизии при создании устанавливается в `Exp'. Состояние сообщается командой `cvs log' (see section Команда log: напечатать информацию о файлах) и в ключевых словах `$'Log$ и `$'State$ (see section Подстановка ключевых слов). Заметьте, что CVS использует состояние dead для своих внутренних нужд; для того, чтобы поместить файл в состояние dead или восстановить его из этого состояния, используйте команды cvs remove и cvs add, а не cvs admin -s. -t[файл] Полезно при использовании вместе с CVS.


Берёт из файла описание указанного RCS-файла, удаляя его старое описание. Имя файла не должно начинаться с минуса. Описание файла можно увидеть в выдаче команды `cvs log' (see section Команда log: напечатать информацию о файлах). Между `-t' и его аргументом не должно быть пробела. Если файл опущен, то описание берётся со стандартного ввода, завершённое символом конца файла или строчкой, состоящей из единственного символа "точка". При работе с терминала текст описания запрашивается у пользователя, смотри `-I'. Чтение со стандартного ввода не работает в клиент-серверной CVS и может измениться в будущей версии CVS. -t-строка Похоже на `-tфайл'. Текст описания берётся из строки, заменяя уже существующее описание. Между `-t' и его аргументом не должно быть пробелов. -U Устанавливает мягкий режим блокировок. Это означает, что владелец файла не обязан блокировать ревизию перед фиксированием. Для использования в CVS должен быть установлен жёсткий режим блокировок; смотри выше обсуждение ключа `-l'. -u[rev] Смотри выше описание ключа `-l', где обсуждается использование этого ключа в CVS. Разблокировать ревизию rev. Если дан номер ветки, разблокировать последнюю ревизию на этой ветке. Если rev опущена, удалить последнюю блокировку, сделанную пользователем в этом файле. Обычно только тот, кто сделал блокировку, может снять её. Если это делает кто-то другой, то это называется взломом блокировки. В этом случае владельцу блокировки отсылается уведомление по электронной почте. Почтовое сообщение может содержать комментарий, предоставленный тем, кто взломал блокировку. Комментарий завершается концом файла или строкой, состоящей из единственной точки. Между ключом `-u' и его аргументом не должно быть пробела. -Vn В предыдущей версии CVS этот ключ означал, что RCS-файл нужно создавать в формате, понимаемой программой RCS версии n. В настоящий момент этот ключ устарел и его использование приводит к сообщению об ошибке. -xsuffixes В предыдущих версиях CVS этот ключ можно было использовать, чтобы задать имена RCS-файлов.Однако, CVS требует, чтобы имена RCS-файлов оканчивались на `,v', поэтому этот ключ никогда не был полезен.

Содержание раздела