только на филиале - PullRequest
       4

только на филиале

1 голос
/ 16 января 2012

Я использую ClearCase 7.1.2 и работаю над проектом.В какой-то момент задолго до того, как я пришел, появилась ветка (назовем это «пилотной»), которая в итоге стала рабочим кодом, а главное дерево осталось позади.На данный момент мне нужно сделать ветку пилота для реализации новой функции, но я столкнулся с проблемой.

Я сделал свою ветку, и все кажется, что все идет хорошо при фиксации изменений в существующих файлах, но когда я делаю mkelem, новый файл заканчивается на главном.Я хочу это на пилота.Как будет выглядеть конфигурация для этого или какую комбинацию команд я могу собрать вместе, чтобы это стало реальностью?

Прямо сейчас моя спецификация конфигурации выглядит примерно так (исходя из памяти):

elements * CHECKEDOUT
elements * main/0 -mkbranch pilot
elements * main/pilot
elements * main/LATEST

Я обновлю, как только увижу, что у меня там происходит.

Ответы [ 2 ]

2 голосов
/ 16 января 2012

Примеры вы найдете на справочной странице config_spec , а также Правила настройки конфигурации для элементов в подветвлениях .

Что вам нужно сделать, это сначала поставьте метку на pilot ветви (то есть на всех элементах, присутствующих в вашем представлении на pilot ветви), чтобы создавать новые версии с фиксированного момента времени.

Тогда:

elements * CHECKEDOUT
elements * .../my_feature_branch/LATEST
elements * LABEL_ON_PILOT -mkbranch my_feature_branch
elements * main/LATEST -mkbranch my_feature_branch

Попытка сделать ветку из "ПОСЛЕДНЕЙ" версии другой ветки на самом деле не рекомендуется: вы просто не знаете, над чем работаете над своим новымветви.

1 голос
/ 16 января 2012

Думаю, я бы ожидал увидеть cspec, подобный этому:

elements * CHECKEDOUT
elements * .../my_feature_branch/LATEST
elements * .../pilot/LATEST -mkbranch my_feature_branch
elements * /main/LATEST -mkbranch my_feature_branch

-mkbranch в последней строке отвечает на ваш вопрос. Строка 2 гарантирует, что вы используете свою ветвь функций, когда она существует. Изменения в строке 3 должны работать лучше, чем в строке 2 (если только в CC 7.1.2 нет новых сокращений, позволяющих работать вашей старой версии; похоже, я использую 7.0.x).


Относитесь к моему ответу с некоторой осторожностью - см. ответ по VonC для альтернативного способа сделать это. Ясно, что есть некоторая проблема, которую VonC видит при таком подходе. Тем не менее, команда, над которой я работаю, занималась именно этим в течение многих лет (примерно с 1994 года), не сталкиваясь с проблемами, которые так взволновали VonC. Кроме того, для нанесения полной метки на набор VOB, составляющих наш набор продуктов, требуется около 12 часов (где-то около дюжины крупных многобайтовых VOB, как нам кажется). Я проверил время с нашим гуру CC, и он отметил, что мы не будем в ближайшее время переходить на UCM, частично из-за этой проблемы с маркировкой.

Итак, лучшая современная практика с небольшими VOB может использовать метку, созданную специально в качестве отправной точки для ветви функций, но не все системы используют их. Опытным путем метка не нужна. Я не уверен, какие другие «лучшие практики» (или «худшие практики, которые компенсируют недостаток лучших практик») у нас могут помешать нам столкнуться с проблемами.

...