По необходимости практическое руководство? Синхронизация/Слияние файлов между ответвлениями

(A) ------- (B) ----------- (C)
 |           |               |
Trunk  ReleaseBranch   DeveloperBranch

Разработчики работают в ответвлении C и регистрации все файлы. Измененные файлы затем маркированы в ответвлении C. Двоичные файлы, которые развертываются, созданы из ответвления B и маркированы. В настоящее время все это является ручным.

В По необходимости, там простой способ выполнить это как слияние Ответвлений на основе маркировок и т.д.?

5
задан Commodore Jaeger 17 April 2010 в 18:07
поделиться

1 ответ

Не сразу понятно, какой уровень автоматизации у вас уже есть или какой уровень автоматизации вам нужен. Сам Perforce предоставляет инструменты для отслеживания интеграции и ветвления, но если вы хотите делать такие вещи, как автоматическая сборка и маркировка, вам нужно смотреть за пределы мира управления исходным кодом в мир управления выпусками / автоматизации.

Я предполагаю, что у вас есть две ветки:

(B) //depot/yourcode/rel/...
(C) //depot/yourcode/dev/...

Внутри этих веток структура кода примерно аналогична, хотя dev будет новее (и, возможно, более ошибочно), чем rel. (Ваш текст не объясняет, что вы делаете с trunk, поэтому я его игнорирую.)

Допустим, вы разрабатываете dev и хотите выпустить код. Вы создаете ярлык (назовем его MYCODE_DEV.1.0 ) с файлами, которые хотите выпустить. Вы можете интегрировать его в rel с помощью:

p4 integrate //depot/yourcode/dev/...@MYCODE_DEV.1.0 //depot/yourcode/rel/...

Это интегрируется из метки MYCODE_DEV.1.0 в ветку выпуска. Perforce отслеживает, какие версии файлов вы объединили, а какие не объединяли, поэтому объединяет только новый код. Если вы внесли изменения в rel, которых не было в dev, вам необходимо разрешить изменения (автоматически или вручную). Затем вы можете зарегистрировать изменения в rel, создать новую метку и оттуда выпустить.

(Поскольку Perforce отслеживает то, что вы объединили, если вы снова попытаетесь интегрировать тот же ярлык, Perforce вежливо откажется что-либо делать, хотя вы можете отменить это, если считаете, что знаете лучше.)

( Если вы прочитаете документацию Perforce, вы найдете ссылки на «спецификации веток», которые позволяют вам объявить именованную ветвь как сокращение для указания исходной и целевой ветвей в вашей команде интеграции. Спецификации веток особенно полезны для поддержки сложных веток с исходными файлами, разбросанными по нескольким каталогам, но на самом деле это не добавляет ценности этому простому примеру.)

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

13
ответ дан 18 December 2019 в 14:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: