ClearCase Ветвление с использованием configspec
Я очень мало знаю о ClearCase и хотел бы узнать больше.
Я создал ветку BR_PHASE2
под /main
,
Я использовал следующую команду для извлечения файлов в ветке:
element * CHECKEDOUT
element * .../BR_PHASE2/LATEST
element * /main/LBL_MS_PHASE2_04-NOV-2010 -mkbranch BR_PHASE2
Проблема сейчас в том, как мне получить доступ к файлам из ветки??
Я не могу даже открыть VOB, если я переключаюсь на эту конфигурационную спецификацию:
element * CHECKEDOUT
element * /main/BR_PHASE2/LATEST
Я неправильно пишу спецификацию конфигурации? Ошибка, которую я получаю, когда пытаюсь установить спецификацию конфигурации, как указано выше:
Предупреждение: новая спецификация конфигурации делает текущий рабочий каталог невидимым.
Каковы шаги для фактического доступа к ветви, которую я создал?
2 ответа
Проблема в:
Какие каталоги на самом деле имеют:
- версия в ветке
BR_PHASE2
? - версия с надписью
LBL_MS_PHASE2_04-NOV-2010
?
Если вы только разветвляете / помечаете все файлы в /myVob/myDirectory
тогда каталог /myVob
само по себе никогда не будет разветвленным / маркированным.
Это означает, что следующая спецификация конфигурации не сможет выбрать любую версию для /myVob
, делая все остальные правила для любого файла в /myVob
бесполезный:
Пока ClearCase не сможет выбрать по крайней мере одну действительную версию /myVob
, он не сможет выбрать любую версию для любого файла в /myVob
,
element * CHECKEDOUT
element * /main/BR_PHASE2/LATEST
Вы всегда должны заканчивать свою конфигурационную спецификацию "config stop-rule" как:
element * /main/LATEST
или по крайней мере:
element /myVob /main/LATEST
Добавьте один из них в конце своей спецификации конфигурации, и представление должно работать как положено.
Механизм спецификации конфигурации ClearCase основан на композиции: для получения дополнительной информации см. Ответ SO " Гибкое и статическое ветвление (GIT против Clearcase / Accurev) ".
ОП добавляет:
Вы упомянули всегда заканчивать CS с:
element * /main/LATEST
,
Не обязательно:
Если вы хотите быть уверенным, что просматриваете только файлы в / myVob / myDir с правильной веткой / меткой, вы можете использовать, как я упоминал выше:
element /myVob /main/LATEST
Правило применяется только к /myVob
(не к чему-либо под /myVob
).
Это позволяет ClearCase пройти /myVob
(потому что он может по крайней мере выбрать для него действительную версию) и начать применять другие правила выбора к подкаталогам.
но если я хочу проверить файлы только из ветки
BR_PHASE2
Разве это не создает ошибку. Я говорю, что когда я заканчиваю его /main/LATEST и извлекаю и проверяю файлы, он обновляется в основной ветке. что мне с этим делать?
Это зависит от используемой вами конфигурации:
element * CHECKEDOUT
element * /main/BR_PHASE2/LATEST
element * /main/LATEST
действительно создаст новую версию в основной ветке
element * CHECKEDOUT
element * .../BR_PHASE2/LATEST
element * /main/LBL_MS_PHASE2_04-NOV-2010 -mkbranch BR_PHASE2
element * /main/LATEST
не будет, потому что третье правило будет применяться первым, если элемент был помечен LBL_MS_PHASE2_04-NOV-2010
,
Ваша первая спецификация конфигурации, кажется, в порядке. Это говорит о том, что все файлы, которые вы пытаетесь изменить с метки 'LBL_MS_PHASE2_04-NOV-2010', будут разветвлены на BR_PHASE2. Просто попробуйте оформить заказ и посмотрите дерево версий.
Кроме того, вторая спецификация конфигурации говорит, чтобы увидеть все файлы, которые принадлежат ТОЛЬКО к ветви, но если у вас нет извлечения для ветвления, то вы ничего не увидите.
Попробуйте следующее:
element * CHECKEDOUT
element * /main/LBL_MS_PHASE2_04-NOV-2010
element * /main/BR_PHASE2/LATEST
так что у вас есть структура каталогов, выбрав метку и ваши файлы из ветви.