Ветвление с удаленным клиентом clearcase - PullRequest
1 голос
/ 11 июня 2009

Я пытаюсь разветвить файл в ClearCase Remote Client. У меня настроена ветка и спецификация конфигурации обновлена ​​для обработки ветки. Но я не могу найти вариант, и поиск в Google не очень помогает.

Ответы [ 2 ]

4 голосов
/ 18 июня 2009

Как я понимаю ваш вопрос, звучит так, как будто вы хотите каким-то образом выбрать команду из меню (ов) Clearcase RC и явно создать ветку (?)

У Clearcase нет явной команды «Создать ветвь для этого файла»; Вы хотели бы команду «Оформить заказ» в этом случае. Ветвление является косвенным и является результатом проверки версии файла в представлении, в котором есть спецификация конфигурации с операцией '-mkbranch'. То есть следующая спецификация конфигурации создаст dev_1.0_branch, как только я его проверю (для любых и всех vobs и файлов):

element * CHECKEDOUT
element * .../dev_1.0_branch/LATEST
element * /main/LATEST -mkbranch dev_1.0_branch

Первая строка стандартна для представлений, в которых вы разрабатываете, строка 2 будет гарантировать, что я вижу любой файл с dev_1.0_branch (особенно важно, чтобы checkout + mkbranch работал должным образом :-), и строка 3 выберет самую последнюю версию любого файла, который не имеет dev_1.0_branch , а создаст ветвь, если (и только если) версия файла, выбранная этим правилом, извлечена.

Пожалуйста, дайте мне знать, звучит ли вам что-либо из перечисленного выше, в частности, какие-либо из правил спецификации конфигурации. Поработав с ClearCase в течение длительного времени, я предполагаю и использую многие термины и понятия, как если бы это было общеизвестно: -P.

Одно замечание: если вы извлекаете файл, а затем сразу снимаете флажок с этого файла, вы оставляете пустую ветвь для этого файла (т. Е. В приведенном выше у вас будет файл с такой версией, как: foo.c @@ / main / dev_1.0_branch / 0, но нет / main / dev_1.0_branch / 1 версия). Многие сайты предпочитают содержать дерево версий в чистоте и удалять пустые ветви (об этом можно прочитать в этой технической статье IBM Rational )

Просто чтобы прояснить ситуацию, я знаком с ClearCase Base и ClearCase MultiSite, но еще не работал с удаленным клиентом.

--- Обновление 2009-июнь-29 В ответ на комментарий Павла ниже, если вы хотите быть разборчивыми в том, какие файлы разветвляются, вы можете изменить «*», чтобы быть более конкретным. Например, если вы хотите разветвлять foo.c в VOB FOODEV, но все остальное оставьте на main:

Конфигурация UNIX:

element * CHECKOUT 
element * .../my_dev_branch/LATEST
element /vobs/FOODEV/src/foo.c -mkbranch my_dev_branch 
element * /main/LATEST

(Для окон вы хотели бы использовать соглашения Windows. I.e. \ FOODEV \ src \ foo.c).

Вы также можете выбрать каталог и все элементы ниже каталога (снова спецификации конфигурации UNIX):

element * CHECKOUT
element * .../my_dev_branch/LATEST
element /vobs/FOODEV/src/mycomponent/... -mkbranch my_dev_branch
element * /main/LATEST

Главная страница для конфигурации _ spec (cleartool man config_spec из командной строки в Windows или Unix) содержит подробное руководство в разделе «Шаблон» о том, как написать селектор элемента / версии (2-й столбец).

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

0 голосов
/ 18 июня 2009

Вот спецификация конфигурации, которую я использовал для исправления конкретной ошибки, с именами, измененными для маскировки некоторых виновных.

element * CHECKEDOUT

element * .../TEMP.bugnum171238.jleffler/LATEST
mkbranch -override TEMP.bugnum171238.jleffler

include /clearcase/cspecs/project/version-1.23.45

Чтобы создать ветку, в каждом VOB я использовал команду:

ct mkbrtype -c 'Branch for bug 171238' TEMP.bugnum171238.jleffler@/vobs/project

Ранее мы использовали спецификации конфигурации с правилами -mkbranch, добавленными к различным строкам element.

...