Как автоматически создавать представления ClearCase? - PullRequest
1 голос
/ 27 декабря 2008

Я менеджер конфигурации и работаю в среде Windows и UNIX. В настоящее время я должен сам создавать представления для разработчиков и инженеров QA. Есть ли лучший подход?

Спасибо.

Ответы [ 3 ]

2 голосов
/ 28 декабря 2008

Да: сценарий создания представления ClearCase или объяснение им использования mkview. Каждый пользователь может затем создать собственный вид.

Создание представлений определенно не является ролью менеджера конфигурации.

1 / Определение соглашения об именах представлений

  • username_viewPurpose: динамическое представление не-UCM
  • username_viewPurpose_snap: представление снимка без UCM
  • username_streamname: динамическое представление UCM
  • username_streamname_snap: представление снимка UCM

Я бы порекомендовал все-крошечный регистр для имен представлений.

Я действительно рекомендую всегда включать имя пользователя (в качестве префикса) в имя представления. Управлять / администрировать так легко, когда вы знаете, кому принадлежит представление, без необходимости его "ct lsview".

2 / Определение соглашения о хранении представления

  • либо одно централизованное хранилище с общим именем хранилища, либо общий UNC-путь
  • или один просмотр хранилища на рабочий стол разработчика.

Я использую второе соглашение, потому что я рассматриваю их вид как временные пространства для их создания / удаления / воссоздания по мере необходимости.

3 / "уполномочить" пользователя

  • Создайте сценарий (как у Джонатана, но с чуть большим количеством опций и способный работать для Windows или Unix)
  • Опишите команду mkview на вики-странице

Я на самом деле использую второе соглашение, потому что каждый пользователь может довольно легко набрать mkview и принять во внимание детали его / ее среды (Windows / Unix, центральное хранилище / локальное хранилище, ...)

Вам также нужно научить их, как настраивать спецификацию конфигурации (даже в UCM), чтобы:

  • не выбирать каталоги "lost + found" (полезно при объединении в UCM)
  • не выбирать ничего, что еще не было выбрано в предыдущих правилах спецификации конфигурации, что означает добавление при необходимости 'element /aVob/* -none' (полезно в режиме моментального снимка, чтобы не иметь много пустых каталогов)
0 голосов
/ 28 декабря 2008

Я думаю, что самый простой и удобный способ - использовать новую надстройку ClearCase - «ClearEnv», которая автоматически сделает это за вас. Проверьте здесь: http://gomidjets.com/ClearEnv.html

Вы также можете контролировать методологии с помощью этого дополнения.

BR,

Тамир Гефен

СМ и ALM

GoMidjets - автоматизируйте ваши преимущества

0 голосов
/ 28 декабря 2008

Неужели разработчики и инженеры QA не способны сами создавать виды? Если так, некоторое обучение (разработчиков и инженеров QA) в порядке.

На работе мы создаем собственные рабочие представления. Это сценарий, который я использую. По умолчанию я запрашиваю его для создания представления, такого как bug129201, и оно создает представление с моим именем пользователя и хостом как часть имени: bug129201.jleffler.black (где чёрный - мой основной компьютер). Хранилище представлений поступает из текущего каталога, если я не укажу альтернативное местоположение (что я почти всегда делаю):

newview -p /work5/atria bug129201

Сценарий принимает опцию '-x', чтобы избежать расширенного имени; в этом случае он создает представление (или представления) именно с тегом командной строки. Кроме того, по соглашению, ct - это не античная Unix-программа 'терминал вызова', а псевдоним для 'cleartool' (или, в моем случае, сценарий оболочки, который выполняет программу cleartool).

Затем я могу установить в спецификации конфигурации все, что мне нужно в данный момент. Я также довольно быстро избавляюсь от видов, чтобы они не накапливали нежелательный мусор.

#!/bin/ksh
#
#   @(#)$Id: newview.sh,v 1.8 2008/03/14 23:56:28 jleffler Exp $
#
#   Create a new view

usage(){
echo "`basename $0 .sh`: [-x] [-p path] view-tag" >&2; exit 1
}

umask 002
xflag=yes
path=`pwd`
while getopts xp: option "$@"
do
    case "$option" in
    p)  path="$OPTARG";;
    x)  xflag=no;;
    *)  usage;;
    esac
done

((x=OPTIND-1))
shift $x

[ $# -eq 0 ] && usage

umask 0

if [ $xflag = yes ]
then extn=$LOGNAME.`uname -n`
fi

for view in $*
do
    if [ $xflag = yes ]
    then
        # Check whether user added the extension already and forgot to
        # use -x option.
        case $view in
        *.$extn)    : OK;;
        *)          view=$view.$extn;;
        esac
    fi
    ct mkview -tag $view $path/$view.vws
done
...