Невозможно создать ветку в одном правиле выбора.
Идея, лежащая в основе спецификации конфигурации, заключается в том, что ClearCase будет пытаться применять каждое правило по порядку, пока оно не подойдет (затем оно останавливается для этого элемента, файла или каталога, и пробует тот же набор правил, снова по порядку, для следующего элемента - файла или каталог).
Таким образом, следующая упорядоченная комбинация правила выбора будет:
- отображать все элементы в их
LATEST
версии новой ветки
- или, если нет новой ветви, отобразится
LATEST
версия main
, готовая создать новую ветку в случае извлечения,
- или, если это совершенно новый элемент («добавить в систему контроля версий»), создаст версию
/main/0
, а затем сразу же ответвится, чтобы создать версию 1 в новой ветви:
(опять же, эти 3 правила применяются по порядку, останавливаясь на первом подходящем, именно поэтому они упорядочены таким образом)
Это будет означать следующую конфигурационную спецификацию:
element * .../karthik_4/LATEST
element * /main/LATEST -mkbranch karthik_4
element /main/0 -mkbranch karthik_4
Примечание: синтаксис ... / karthik_4 / LATEST существует для того, чтобы не связывать ветку karthik_4
с основной: даже если karthik_4
был создан сверху на любой другой ветке, main
(что и есть .../
означает), он по-прежнему будет выбирать ПОСЛЕДНЮЮ версию этой новой ветви (если она существует, если нет, ClearCase пробует следующее правило)
Создание ветки всегда включает 3 правила, а не только одно.
Теперь, как вы видели ранее , это не создаст ветку из определенной версии (например, '4').
Он будет создавать ветвь только в той версии, в которой файл находится в последней версии в основной ветке: LATEST называется смещающей меткой: он перемещается автоматически при каждой новой версии.
Вы можете указать для одного файла точную версию, из которой вы хотите создать ветку:
element * .../karthik_4/LATEST
element /path/to/myFile /main/4 -mkbranch karthik_4
element * /main/LATEST -mkbranch karthik_4
element /main/0 -mkbranch karthik_4
Но это будет нелегко масштабировать, поскольку файл рядом с myFile
может иметь другую историю, и его версия 4 могла быть создана задолго до или после myFile@@/main/4
(или версия 4 еще не существовала для других файлов!).