Ветвление с помощью удаленного клиента с прозрачным регистром

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


person Paul Nathan    schedule 11.06.2009    source источник
comment
Было бы проще, если бы у вас было немного больше информации... например, имя вашей ветки и спецификация конфигурации.   -  person Jonathan Leffler    schedule 18.06.2009


Ответы (2)


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

Для ясности: я знаком с ClearCase Base и ClearCase MultiSite, но еще не работал с удаленным клиентом.

--- Обновление от 29 июня 2009 г. В ответ на комментарий Пола ниже, если вы хотите быть избирательным в том, какие файлы являются разветвленными, вы можете изменить "*", чтобы быть более конкретным. Например, если вы хотите разветвить 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 лучше использовать соглашения Windows. Например, \FOODEV\src\foo.c).

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

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

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

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

person PerplexedMind    schedule 18.06.2009
comment
В этом есть смысл. Но предположим, я хочу разветвляться только на один или два файла, которые я извлекаю? Например, часть моей работы выполняется в main/ для некоторых файлов, а другая работа — в моей ветке .../paulnath/. - person Paul Nathan; 19.06.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 строкам.

person Jonathan Leffler    schedule 18.06.2009