2013-04-14 2 views
3

У меня есть крошечный вопрос о ClearCase. Помоги мне, пожалуйста! Когда запускается настройка конфигурации? Когда я нажимаю кнопку CHECK OUT или CHECK IN? У меня есть test.c и у меня есть конфигурации спецификацииКонфигурация спецификации в ClearCase

element * CHECKEDOUT 
element * .../branch_1/LATEST 
element * /main/LATEST -mkbranch branch_1 

я изменить test.c, то я изменить конфигурации спецификации:

element * CHECKEDOUT 
element * .../branch_2/LATEST 
element * /main/LATEST -mkbranch branch_2 

Тогда я Проверить в test.c и я: создал /main/branch_1/1. НО ПОЧЕМУ???

ответ

3

Спецификация конфигурации будет применять правила для каждого обновления и при оформлении заказа, а также при проверке (но не так, как вы думаете).

При проверке новая версия будет создана в ответвлении (здесь branch_1).
Эта новая версия может не быть выбрана по новой спецификации конфигурации, НО ветка, в которой она была извлечена, НЕ изменена упомянутой новой спецификацией конфигурации.

Изменение branch1 в branch2 в то время как test.c является уже проверил (в branch1) ничего не меняет. Он будет проверен в branch_1.

Теперь, когда вы будете создавать версию на branch1 на приезд для test.c (даже с вашей второй конфигурацией спецификацией), вы должны понимать, что все будущие кассовые/возвраты будут проходить на ту же ветку для test.c, потому что:

  • правило element * branch_1/LATEST сохранит новые версии на этой ветви
  • правило element * /main/LATEST -mkbranch branch_2 действительна только для версии извлечена из основных (и test.c уже не на /main, то на branch1: /main/branch1)

Эта конфигурация спецификации будет убедиться, что все новые версии (после первого оформленного в test.c на branch1) выполняются на branch2:

element * CHECKEDOUT 
element * .../branch_2/LATEST 
element * ../branch_1/LATEST -mkbranch branch_2 
element * /main/LATEST -mkbranch branch_2 

порядок правил имеет важное значение, так как первый который может быть применен «побеждает» (т.е. путники игнорируются).
См. Этот конкретный пример конфигурации конфигурации в «Config Spec to display labeled files from 2 branches».


Обратите внимание, что после первого оформленного в test.c, вы получите новую версию, созданную на branch1, как описано ранее.

Однако ваш второй вариант конфигурации выберет /main/1, а не /main/branch1/1.

Это происходит из-за неправильное правило в вашей второй конфигурации спецификации:

element * branch_1/LATEST 

Это можно было бы выбрать правильный вариант:

element * .../branch_1/LATEST 

Но если ваша вторая конфигурация спецификация не имеет правила в отношении branch1 , test.c по-прежнему будет выбран как /main/1: нет версии, созданной на branch2, поэтому element * /main/LATEST является только r ule, которые могут быть применены.

+0

спасибо! Я абсолютный новичок, и мне это трудно. я не понимаю «Изменение ветки 1 в ветке2, в то время как test.c уже проверен (в ветке 1) ничего не меняет. Он будет проверен в ветке_1.». когда я снова проведу test.c, что будет выбрано в поле зрения? – all

+1

@all * second * checkout будет выполнен в соответствии с текущей конфигурационной спецификацией (которую вы изменили), поэтому она будет по-прежнему 'branch1' (потому что только LATEST из main должны быть извлечены в' branch2'). Если вы хотите, чтобы верхняя часть отображалась в разделе second2 во втором контроле, вам нужно дополнительное правило выбора: 'element * .../branch1/LATEST -mkbranch branch2', поставить вторую позицию. – VonC

+0

Мне очень тяжело :) Спасибо, я хочу понять, но ... – all

Смежные вопросы