Как автоматически создавать представления ClearCase?
Я менеджер конфигурации и работаю в среде Windows и UNIX. В настоящее время я должен сам создавать представления для разработчиков и инженеров QA. Есть ли лучший подход?
Благодарю.
3 ответа
Да: создайте сценарий создания представления 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), чтобы:
- не выбирать "потерянные + найденные" каталоги (полезно при объединении в UCM)
- не выбирать ничего, что еще не было выбрано в предыдущих правилах конфигурации, что означает добавление при необходимости
'element /aVob/* -none'
(полезно в виде снимка, чтобы не иметь много пустых каталогов)
Я думаю, что самый простой и удобный способ - использовать новое дополнение ClearCase - "ClearEnv", которое автоматически сделает это за вас. Проверьте здесь: http://gomidjets.com/ClearEnv.html
Вы также можете контролировать методологии с помощью этого дополнения.
BR,
Тамир Гефен
CM и ALM
GoMidjets - автоматизируйте ваши преимущества
Являются ли разработчики и инженеры QA неспособны самим создавать представления? Если так, некоторое обучение (разработчиков и инженеров QA) в порядке.
На работе мы создаем свои собственные рабочие взгляды. Это сценарий, который я использую. По умолчанию я запрашиваю его для создания представления, такого как bug129201, и оно создает представление с моим именем пользователя и хостом как часть имени: bug129201.jleffler.black (где 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