ClearCase — слияние родительской и дочерней ветвей с основной (ответвления от ветвей)

Предположим следующий сценарий. Допустим, у вас есть файл с именем foo.bar. Он имеет основную ветку и ветку выпуска (назовем ее r1). r1 еще не выпущен, но разработчику нужно работать над новым проектом, основанным на r1. Таким образом, мы ответвляем r2 от r1. r1 завершает работу и должен быть слит с main для освобождения. Можете ли вы объединить r1 с основным перед завершением/объединением r2 (необходимо ли объединить все дочерние ветки с родительским до того, как родитель объединится с основным)? Наша текущая политика не позволяет нам объединять содержимое r2 с r1. Таким образом, нам придется объединить r1 с main, а затем r2 с main. Можно ли пропустить слияние из r2 в r1 и сразу перейти к основному, если r1 находится в основном?

Мы не уверены, возможен ли этот сценарий ветвления/слияния. В настоящее время мы разветвляем все от основного (без ответвлений от веток), но это вызывает проблемы, когда ветки выпуска зависят друг от друга. Например, r2 нуждается в коде r1 для компиляции, но не требует изменения кода r1. В настоящее время мы объединяем код из r1 в r2, даже если нам не нужно менять код. Мы надеялись, что можно будет отделить ветку, чтобы r2 мог наследовать от r1 без слияний, но мы не можем объединить r2 обратно в r1. Они оба должны сливаться непосредственно с main. Хотя родительская ветвь всегда будет сливаться с основной перед дочерней.


person user2951117    schedule 04.11.2013    source источник


Ответы (1)


Можете ли вы объединить r1 с main перед завершением/объединением r2?

Да, r2 имеет начальную точку с r1, но любая операция, выполненная с r1 (новая версия, слияние, ...), не имеет последствий для r2.

Нужно ли объединять все дочерние ветки с родительской до того, как родитель объединится с main?

Нет.
Они называются "дочерними ветвями", потому что они начинаются с другой "родительской" ветки, но эта ассоциация не имеет отношения к этим дочерним ветвям.
Даже с ClearCase UCM (где иерархия ветвей обеспечивается Иерархия потоков), вы можете объединить r1 без необходимости сначала объединять r2.

Мы надеялись, что можно будет отделить ветку, чтобы r2 мог наследовать от r1 без слияний, но мы не можем объединить r2 обратно в r1.

Я согласен. Это возможно (сначала установить метку на r1 и перейти от этой метки)

Они оба должны слиться прямо с main

Хорошо, но вы можете сначала объединить main с r2, проверить, что все еще работает, а затем объединить r2 с main.

person VonC    schedule 04.11.2013