ClearCase: создание нового базового уровня со старыми базовыми действиями - PullRequest
1 голос
/ 26 марта 2009

В потоке интеграции Int, A1, A2, A3 являются действиями, B1 является базовым уровнем, который включает действия A1, A2, A3.

(Int Stream) ----- A1 ------ A2 ------------------ A3 ------ [B1] - -------------->

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

Можем ли мы создать новый базовый уровень B2, который включает только действия A1 и A3 в ClearCase?

(Int Stream) ----- A1 ------------------------ A3 ------ [B2] --- ------------->?

1 Ответ

1 голос
/ 26 марта 2009

Нет: поскольку B1 существует, все действия «связаны» общей «временной шкалой», и ClearCase попросит вас также включить A2.

Возможным решением будет создание подпотока и создание findmerge только с A1 и A3
(findmerge - это слияние без UCM, которое может принимать список действий UCM в качестве входных данных)

Базовая линия накопления для подпотока должна быть последней базовой линией (созданной в IntStream) , а не , включая A1, A2 и A3.

Тогда:

ct findmerge activity:A1@\pvob activity:A3@\pvob -fcsets -c "report for delivery" -merge -gmerge

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

Родительский поток (IntStream) продолжает свою роль в интеграции всех усилий по разработке (поступающих из других подпотоков)


Примечание:

  • "pvob" должен заменяться именем вашего проекта vob (vob, содержащий все данные UCM, такие как проекты, потоки, базовые показатели, действия, ...)
  • "ct" означает "cleartool": это alias (Unix) или doskey (версия псевдонима для Windows: doskey ct=cleartool $*)

Зависимость активности : в этом случае A3 может иметь несколько версий, основанных на версиях A2.

Команда

findmerge использует действия только для объединения их changeset (список версий):

Каждая версия, указанная в наборе изменений, становится исходной версией в операции слияния. Как всегда, версия на ваш взгляд.

A3, включая изменения, внесенные в A2, окончательный результат будет включать изменения A1, A2 и A3, за исключением случаев, когда изменения A1 и A3 являются «одновременными» (изменения в похожих строках): в этом случае потребуется нетривиальное объединение должно быть выполнено.


Так как вы не хотите изменений A2, вам нужно, как вы упомянули в комментариях, завершить эту findmerge операцию с утилитой Perl cset.pl:

ccperl cset.pl -undo A2

Он выполнит «отрицательное слияние» (или «субстративное слияние»), удалив любые изменения для A2.

...