ClearCase Ветвление с использованием configspec - PullRequest
2 голосов
/ 22 ноября 2010


Я очень мало знаю о 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 ]

4 голосов
/ 22 ноября 2010

Проблема:

Что в действительности имеют каталоги:

  • версия в ветке 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.

0 голосов
/ 22 ноября 2010

Ваша первая спецификация конфигурации, кажется, в порядке.Это говорит о том, что все файлы, которые вы пытаетесь изменить с метки 'LBL_MS_PHASE2_04-NOV-2010', будут разветвлены на BR_PHASE2.Просто попробуйте извлечь что-то и посмотреть дерево версий.

Кроме того, вторая спецификация конфигурации говорит, чтобы увидеть все файлы, которые принадлежат ТОЛЬКО к ветви, но если у вас нет извлечения, чтобы ветвить любой, тоты ничего не увидишь.

Попробуйте выполнить следующее:

element * CHECKEDOUT
element * /main/LBL_MS_PHASE2_04-NOV-2010
element * /main/BR_PHASE2/LATEST

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

...