У меня следующая ситуация с ветвями в репозитории Perforce: есть магистраль «trunk» и две ветви релиза «1.0» и «1.1». Филиал «клиент» с конкретными изменениями клиента был разветвлен с ветвью 1.0. Теперь клиент хочет перейти к версии 1.1. Как я могу объединить ветку 1.1 в ветку клиента? Конкретные изменения клиента должны оставаться «сверху» 1.1.Perforce: Как интегрировать несколько ветвей?
Вот диаграмма для одного инфицированного файла:
1.1 -(1)---(2)---(3)
/ \ \
/ \ \
trunk 100--(101)-(102)--103---104---105---106---107
\
\
1.0 ---1-----2--...
\
\
customer ---1-----2----*3*
Текущая версия файла, который я смотрю на это пересмотр 3 на отрасли клиента.
Если я решил интегрировать ветвь «1.1» с целевым «клиентом», я бы ожидал, что общий предок обоих найден (версия 100 на главной линии), и все изменения оттуда, ведущие к концу ветки 1.1, (в скобках).
Вместо этого Perforce предлагает только объединить ревизии с 1 по 3 ветки 1.1, которая не работает, поскольку она пропускает необходимые изменения, которые произошли на главной линии раньше.
Как я могу убедить Perforce сделать это, не просматривая каждый файл вручную и не выбирая варианты для слияния? Может быть, стратегия ветвления непригодна? Что еще мне делать?
Если я пытаюсь «p4 integ -b 1.1_to_customer», я получаю «не может интегрироваться из ... без -i-флага» для каждого файла, который имеет изменения в ветке клиента. Если я добавлю «-i», слияние завершится неудачно, потому что только ревизии на ветке 1.1 интегрированы, а не те, которые находятся на магистрали. – hfs
Perforce не знает, что изменения 101 и изменения 102 необходимы для того, что произошло на ветке 1.1. Поэтому сначала вам необходимо интегрировать ствол до 102 в клиент, прежде чем интегрировать 1.1. –
Да, это то, что я сделал в конце: у меня было две метки на главной линии, которые обозначали базы ветвей 1.0 и 1.1. Я сначала объединил «туловище» между этими ярлыками, разрешил все, а затем слил 1.1 поверх этого и снова разрешил.Это сработало. – hfs