Ниже приведены внешние скрипты к базовым командам CVS. Они написаны для оболочки Korn, поскольку он всегда доступен на всех разновидностях Unix, но, в случае необходимости, Вы можете перевести их на Bash или PERL. Вы можете настроить скрипты на свой вкус. В основном они представляют собой команды CVS с деталями, добавленными для обеспечения нужд конкретной машины. Например, скрипт sedit осуществляет блокировку, давая пользователям знать, что кто-то уже редактирует файл. Безусловно, пользователи могут использовать непосредственно команды CVS, в обход этих скриптов. Эти скрипты лишь демонстрируют как в большой степени можно настроить CVS.
Заметьте: Скрипты оболочки принимают домашний каталог пользователя как корневой и извлекают дерево CVS внутрь него.
К сведению: В скриптах оболочки каждое целевое имя файла состоит из трех частей -- домашнего каталога, подкаталога и имени файла. Полный путь: $HOME/$subdir/$fname. В CVS сохраняется эта же структура каталогов (с помощью переменной $subdir), поэтому в CVS будет что-то вроде $CVSROOT/$subdir/$fname. Во всех стриптах эти четыре переменные -- $HOME, $CVSROOT, $subdir и $fname играют важную роль. Примерами их значений могут быть: HOME=/home/aldev, subdir=myproject/src, CVSROOT=/home/cvsroot и fname=foo.cpp.
Скопируйте скрипты оболочки в /usr/local/bin, который должен быть среди значений переменной окружения PATH пользователя.
sget [-r номер_редакции] <файл/каталог> Для получения файла или целого каталога из CVS в режиме только для чтения. Скрипт Разд. sget.
sedit [-r номер_редакции] <файл> Для редактирования файла с целью внесения изменений в код. Блокирует файл, так что никто не сможет его извлечь. Конечно, Вы можете изменить скрипт по своему усмотрению -- убрать блокировку, предупредительные сообщения или сильную блокировку. Скрипт Разд. sedit.
scommit [-r номер_редакции] <файл> Для фиксации Ваших изменений файла или целого каталога. Загружает Ваши изменения в CVS. Скрипт Разд. scommit.
supdate <файл/каталог> Для обновления файла или целого каталога, получением новейших файлов из CVS. Скрипт Разд. supdate.
sunlock [-r номер_редакции] <файл> Для разблокирования файла, полученного с помощью sedit. Убирает блокировку. Скрипт Разд. sunlock.
slist Для просмотра списка файлов, редактируемых Вами в настоящий момент. Выполняет команду "ls -l | grep | ...". Скрипт Разд. slist. Заметим, что есть еще другая команда Unix с именем slist (список доступных серверов Netware), следует убедиться, что CVS-скрипт slist встречается раньше другого в переменной окружения PATH.
sinfo <файл/каталог> Для получения информации об изменениях/редакциях файла. Скрипт Разд. sinfo.
slog <файл> Для получения от CVS истории изменений/редакций файла. Скрипт Разд. slog.
sdif <файл>
sdif -r ред1 -r ред2 <файл> Для получения отличий Вашего файла от CVS. Скрипт Разд. sdif.
Заметьте, что в sdif одна "f", потому что есть другая Unix-команда "sdiff".
sadd <файл> Для добавления нового файла в репозиторий CVS. Скрипт Разд. sadd.
sdelete <файл> Для удаления файла из репозитория CVS. Скрипт Разд. sdelete.
sfreeze <редакция> <каталог> Для замораживания кода, то есть выпуска редакции всего дерева исходного кода. Скрипт Разд. sfreeze.
Например:
cd $HOME; sfreeze REVISION_1_0 srctree |
****************************************************** |