Наши партнеры








Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

Введение в команды CVS

CVS предоставляет широкий диапазон команд (cvs_command in the Synopsis), каждая из которых, как правило, имеет богатый набор опций, призванные удовлетворить многие потребности управления исходным кодом в распределенных окружениях. Однако, Вы не обязаны овладеть каждой деталью чтобы делать полезную работу с помощью CVS; на самом деле, достаточно пяти команд для использования репозитория исходного кода. Команды CVS, используемые чаще всего: checkout, update, add, remove, commit и diff.

checkout

cvs checkout модули... Необходимая подготовка для выполнения большинства последующей работы CVS: создает Вашу личную копию исходного кода для "модулей" (именнованного набора исходных кодов; здесь можно также использовать путь относительный к местоположению репозитория). Ваша работа с этой копией никак не будет пересекаться с работой других разработчиков. Всегда создается по меньшей мере один уровень подкаталогов. (Для Вашего удобства вывод программы также переведен на русский язык. -- Прим. перев.)
bash$ cvs --help checkout
Вызов:
  cvs checkout [-ANPRcflnps] [-r rev | -D дата] [-d dir]
    [-j rev1] [-j rev2] [-k kopt] модули...
        -A      Сбросить липкие тэги/дату/kopts.
        -N      Если задано -d, не укорачивать пути модулей.
        -P      Удалять пустые каталоги.
        -R      Обрабатывать каталоги рекурсивно.
        -c      "cat" базу данных модулей.
        -f      Вынудить совпадение редакции, если тэг/дата не найдена.
        -l      Только локальный каталог, не рекурсивно.
        -n      Не запускать программу модуля (при ее наличии).
        -p      Извлечь файлы и отправить на стандартный вывод (избегает липкость).
        -s      Подобен -c, но включает статус модуля.
        -r rev  Извлечь редакцию или тэг. (включает -P) (липкий)
        -D date Извлечь редакцию указанной даты. (включает -P) (липкий)
        -d dir  Извлечь в каталог dir вместо каталога с именем модуля.
        -k kopt При извлечении использовать опцию RCS kopt -k.
        -j rev  Объединить изменения, сделанные между текущей редакцией и rev.
(Задайте глобально опцию --help для получения списка остальных опций справки)

update

cvs update Выполните эту команду находясь в Вашем личном каталоге исходных кодов, когда Вы хотите обновить Ваши копии исходных файлов после изменений, внесенных другими разработчиками в исходный код внутри репозитория.
bash$ cvs --help checkout
Вызов:
  cvs checkout [-ANPRcflnps] [-r rev | -D дата] [-d dir]
    [-j rev1] [-j rev2] [-k kopt] модули...
        -A      Сбросить липкие тэги/дату/kopts.
        -N      Если задано -d, не укорачивать пути модулей.
        -P      Удалять пустые каталоги.
        -R      Обработать каталоги рекурсивно.
        -c      "cat" базу данных модулей.
        -f      Вынудить совпадение редакции, если тэг/дата не найдена.
        -l      Только локальный каталог, не рекурсивно.
        -n      Не запускать программу модуля (при ее наличии).
        -p      Извлечь файлы и отправить на стандартный вывод (избегает липкость).
        -s      Подобен -c, но включает статус модуля.
        -r rev  Извлечь редакцию или тэг. (включает -P) (липкий)
        -D date Извлечь редакцию указанной даты. (включает -P) (липкий)
        -d dir  Извлечь в каталог dir вместо каталога с именем модуля.
        -k kopt При извлечении использовать опцию RCS kopt -k.
        -j rev  Объединить изменения, сделанные между текущей редакцией и rev.
(Задайте глобально опцию --help для получения списка остальных опций справки)

bash$ cvs --help update
Вызов: cvs update [-APdflRp] [-k kopt] [-r rev|-D дата] [-j rev]
    [-I ign] [-W spec] [файлы...]
        -A      Сбросить липкие тэги/дату/kopts.
        -P      Удалять пустые каталоги.
        -d      Создавать каталоги, как делает checkout.
        -f      Вынудить совпадение редакции, если тэг/дата не найдена.
        -l      Только локальный каталог, не рекурсивно.
        -R      Обработать каталоги рекурсивно.
        -p      Отправить обновления на стандартный вывод (избегает липкость).
        -k kopt При извлечении использовать опцию RCS kopt -k.
        -r rev  Обновить используя указанную редакцию/тэг. (липкий)
        -D date Указать дату с которой извлечь обновления. (липкий)
        -j rev  Объединить изменения, сделанные между текущей редакцией и rev.
        -I ign  Больше файлов для игнорирования (! для сброса).
        -W spec Строка задания оберток.
(Задайте глобально опцию --help для получения списка остальных опций справки)

add

cvs add файл... Воспользуйтесь этой командой для внесения новых файлов в CVS-записи Вашего рабочего каталога. Файлы будут добавлены в репозиторий в следующий раз, как Вы запустите "cvs commit". Заметьте, что для занесения новых исходных кодов в репозиторий следует использовать команду "cvs import". "cvs add" используется только для файлов, новых для уже извлеченного (checked-out) модуля.
bash$ cvs --help add
Вызов: cvs add [-k rcs-kflag] [-m сообщение] файлы...
        -k      Использовать "rcs-kflag" для добавления файла с указанным kflag.
        -m      Использовать "сообщение" для лога о создании.
(Задайте глобально опцию --help для получения списка остальных опций справки)

remove

cvs remove файл... Эта команда (после удаления перечисленных файлов) предназначена для заявления желания уничтожить файлы из репозитария. Для остальных разработчиков удаление возымеет действие после выполнения "cvs commit".
bash$ cvs --help remove
Вызов: cvs remove [-flR] [файлы...]
        -f      Удалить файл перед его исключением.
        -l      Обработать только этот каталог (не рекурсивно).
        -R      Обработать каталоги рекурсивно.
(Задайте глобально опцию --help для получения списка остальных опций справки)

commit

cvs commit файл... Воспользуйтесь этой командой, когда захотите "опубликовать" Ваши изменения для остальных разработчиков, посредством их включения в репозиторий исходных кодов.
bash$ cvs --help commit
Вызов: cvs commit [-nRlf] [-m msg | -F logfile] [-r rev] файлы...
        -n      Не запускать программу модуля (при ее наличии).
        -R      Обработать каталоги рекурсивно.
        -l      Только локальный каталог (не рекурсивно).
        -f      Вынудить фиксацию файла; отключает рекурсию.
        -F file Читать лог-сообщения из файла.
        -m msg  Лог-сообщение.
        -r rev  Фиксировать в этой ветке или этом стволе редакции.
(Задайте глобально опцию --help для получения списка остальных опций справки)

diff

cvs diff файл... Показывает различия между файлами в рабочем каталоге и репозитории исходных кодов. (Не изменяет ни репозиторий ни рабочий каталог.)
bash$ cvs --help diff
Usage: cvs diff [-lNR] [rcsdiff-options]
    [[-r rev1 | -D date1] [-r rev2 | -D date2]] [файлы...]
        -l      Только локальный каталог, не рекурсивно.
        -R      Обработать каталоги рекурсивно.
        -D d1   Редакция различий между указанной датой и рабочим файлом.
        -D d2   Различия между rev1/date1 и date2.
        -N      Включить различия между добавленными и исключенными файлами.
        -r rev1 Редакция различий между rev1 и рабочим файлом.
        -r rev2 Различия между rev1/date1 и rev2.
        --ifdef=arg     Вывести различия в формате ifdef.
(обратитесь к документации Вашей программы diff насчет rcsdiff-options.
Самым популярным является -c для получения различий с контекстом, но
существует много других опций).
(Задайте глобально опцию --help для получения списка остальных опций справки)

Редактор Emacs

Emacs -- мощный редактор и поддерживает CVS/RCS, особенно для объединения редакций и поиска различий. Основной сайт Emacs расположен здесь: http://www.emacs.org.