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

так что у вас есть структура каталогов, выбрав метку и ваши файлы из ветви.

Другие вопросы по тегам