Я пытаюсь разветвить файл в удаленном клиенте ClearCase. У меня настроена ветка, и спецификация конфигурации обновлена для обработки ветки. Но я не могу найти вариант, и гугление не очень помогает.
Ветвление с помощью удаленного клиента с прозрачным регистром
Ответы (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-й столбец).
Вы можете сделать много сложных вариантов выбора с помощью спецификаций конфигурации. Пожалуйста, дайте мне знать, если вы хотели бы получить более подробную информацию или подробности.
Вот спецификация конфигурации, которую я использовал для исправления конкретной ошибки, с измененными именами, чтобы замаскировать некоторых виновных.
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
строкам.