2010-02-05 1 views
1

У нас есть модель патча, в которой мы намерены использовать cset.pl -findmerge <activity> для выборочного объединения накопленных действий в поток патчей (поток интеграции в поток интеграции). Обратите внимание, что мы используем модель с одним потоком; хотя поддержка групп, работающих со своим собственным потоком dev, будет поддерживаться (т. е. когда они присоединяются к проекту, они будут работать с интеграцией по умолчанию).Clearcase: зависимости активности для слияния интегральных потоков (патчи)

Однако есть проблема зависимостей действий, которые мы пытаемся решить.

Так что у вас есть integration stream A,

file a.txt  
-> Change 1 (baselined ReleaseA)-> Change 2 -> Change 3 

fileb.txt 
-> Change 1 (baselined ReleaseA)-> Change 2 

интеграция потока B и конфигурации. менеджер решает, что они хотят включить «Change 3» в новый патч (поток интеграции патчей - поток интеграции C).
Выполнены cset.pl fetchmerge по отношению к Change 3 (сюда входят изменения для Change 2).
Change 2 для fileb не получает, поэтому проблема идентифицирует эти зависимости активности.

У кого-нибудь есть идеи?

+0

Поставлять деятельность может осуществляться между любыми 2 потоками, включая поток интеграции в поток интеграции. Любая причина, по которой простой 'deliver -act' здесь невозможен? – VonC

+0

Я попробовал «cleartool -act Test2 @ \ TestProjVOB -stream Proj2_Integration @ \ TestProjVOB -target Proj1_Integration @ \ TestProjVOB», и он жалуется, что «операция доставки из потока интеграции должна указывать базовые линии для доставки». –

ответ

0

Приходилось использовать различные cctool команды для просмотра текущей версии в поле зрения и толкнул его в сценарий, чтобы получить список зависимостей активности

0

Если Change3 является перебазироваться/доставить активности вы можете использовать

%ct lsact -contrib Change3
для получения списка содействия деятельности , а затем пройти любой из перебазирования/поставляют виды спорта перечисленные в качестве вклада деятельности проследить, если какой-либо из в них участвует Change2.

Также предполагается, что базовая линия фундамента для потока исправлений является той, которая используется для RelaseA, не нужно ли вам перечислять действия с Change1 и далее, когда вы выполняете слияние?

т.е. не ваш findmerge призывания быть что-то вроде

%findmerge ... Change2,Change3 -fcsets ...

+0

Спасибо за быстрый ответ, но я должен был указать, что потоки были потоками интеграции. поэтому эти команды не работают –

+0

команда 'ct lsact -contrib ' будет работать неважно, является ли поток потоком интеграции или нет. Вероятно, вы не указали PVOB. Вызов должен выглядеть примерно так: % cleartool lsact -contrib activity @ PVOB. – sateesh

+0

Говорит «ошибка: активность не является интеграционной деятельностью по доставке или восстановлению –

0

Примечания (в дополнении к sateesh's answer), deliver -act Chaange3 (вместо findmerge) будет перечислена Change2 и Change1 как деятельность включить в своем доставить.
Он будет подбирать эти зависимые действия, возможно, следуя алгоритму, близкому к алгоритму, описанному sateesh.

См «About activity dependencies in the deliver operation»

alt text http://publib.boulder.ibm.com/infocenter/cchelp/v7r0m0/topic/com.ibm.rational.clearcase.hlp.doc/cc_main/images/deliver_depnd.gif

+0

Спасибо за быстрый ответ, но я просто отредактирую этот вопрос еще раз. –