Скрипты оболочки

Ниже приведены внешние скрипты к базовым командам 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 пользователя.

  1. sget [-r номер_редакции] <файл/каталог> Для получения файла или целого каталога из CVS в режиме только для чтения. Скрипт Разд. sget.

  2. sedit [-r номер_редакции] <файл> Для редактирования файла с целью внесения изменений в код. Блокирует файл, так что никто не сможет его извлечь. Конечно, Вы можете изменить скрипт по своему усмотрению -- убрать блокировку, предупредительные сообщения или сильную блокировку. Скрипт Разд. sedit.

  3. scommit [-r номер_редакции] <файл> Для фиксации Ваших изменений файла или целого каталога. Загружает Ваши изменения в CVS. Скрипт Разд. scommit.

  4. supdate <файл/каталог> Для обновления файла или целого каталога, получением новейших файлов из CVS. Скрипт Разд. supdate.

  5. sunlock [-r номер_редакции] <файл> Для разблокирования файла, полученного с помощью sedit. Убирает блокировку. Скрипт Разд. sunlock.

  6. slist Для просмотра списка файлов, редактируемых Вами в настоящий момент. Выполняет команду "ls -l | grep | ...". Скрипт Разд. slist. Заметим, что есть еще другая команда Unix с именем slist (список доступных серверов Netware), следует убедиться, что CVS-скрипт slist встречается раньше другого в переменной окружения PATH.

  7. sinfo <файл/каталог> Для получения информации об изменениях/редакциях файла. Скрипт Разд. sinfo.

  8. slog <файл> Для получения от CVS истории изменений/редакций файла. Скрипт Разд. slog.

  9. sdif <файл>

    sdif -r ред1 -r ред2 <файл> Для получения отличий Вашего файла от CVS. Скрипт Разд. sdif.

    Заметьте, что в sdif одна "f", потому что есть другая Unix-команда "sdiff".

  10. sadd <файл> Для добавления нового файла в репозиторий CVS. Скрипт Разд. sadd.

  11. sdelete <файл> Для удаления файла из репозитория CVS. Скрипт Разд. sdelete.

  12. sfreeze <редакция> <каталог> Для замораживания кода, то есть выпуска редакции всего дерева исходного кода. Скрипт Разд. sfreeze.

    Например:
            cd $HOME;   
            sfreeze REVISION_1_0  srctree  
    Это замораживает код с меткой "REVISION_1_0", так что позже Вы можете извлечь целое дерево с помощью имени редакции.

                ******************************************************