Как я должен разветвлять и помечать до и после выпуска?

StackOverflow https://stackoverflow.com/questions/1028169

Вопрос

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

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

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

  • Даете ли вы названия ветвям выпуска или каждый раз используете одну и ту же ветвь выпуска с новым кодом?
  • Удалять ветви выпуска, как только они будут существовать в виде тегов?
  • Как вы называете свои ветви / теги?
Это было полезно?

Решение

Я предлагаю прочитать этот ответ

Управление выпусками в SVN

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

Что касается наименования релиза, то:это зависит от того, что подходит вам больше всего и кто те люди, которые видят номер релиза.

Подумайте об использовании MajorRelease.MinorRelease затем, возможно, где-нибудь для технически заинтересованных вы могли бы даже указать номер выпуска исправления (e.gg приложение автоматически обновляется, а major.minor остается неизменным).

Майор:большие изменения -> новая функциональность / нарушает совместимость Незначительные:совместимость с интерфейсом (например,производительность) Исправление:исправлены ошибки

Другие советы

Вы можете использовать приведенную здесь информацию в качестве руководства, даже если вы не используете TFS.

Руководство по ветвлению

Есть много способов работать.Тот, который я использую, является следующим:

проект_репозитарий
|
|- багажник //Where the current in support release is.
|
|- ветви //Where new features/big fixes or refactors are made.
|
|- Теги //Where all releases are tagged.
     |
     |- РЕЛИЗЫ //where all release tags are located
     |- ежедневно //where all daily tags are located.

Именование, которое мы используем, является следующим:

  • Для филиалов мы называем ветку по тому, какие основные задачи будут в ней выполняться (например:admin_module_refactor).
  • Для тегов мы присваиваем тегам имена с номером версии (mayor.minor.micro.например:1.0.2), когда они соответствуют тегу выпуска.Или с датой для ежедневных рабочих меток (например:YY_MM_DD).

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

Я автоматизировал процесс сборки, используя CruiseControl.Net .У нас были сборки, соответствующие номерам сборок, поэтому версия dll была бы 6.5.4.1234.6 и 5 всегда обновлялись вручную, когда у нас были основные и второстепенные выпуски.4 был обновлен вручную после сборки (и 1234 тогда тоже был сброшен на 0).Процесс сборки всегда обновлял 1234 до 1235.

Когда мы выпускали из магистрали (версия всегда была 6.0.0.x), мы вручную выполняли ветвление и называли его Branch_6_0.Затем ветвь будет построена как 6.0.1.Магистраль переместилась бы на 6.1 или 7.0.

CruiseControl имел два режима (разработка и тест).Тест всегда создавался по запросу и создавал ветвь, соответствующую версии сборки.

В какой-то момент я хочу создать ветку в качестве ветки выпуска и внести любые последние изменения в ветку и выпустить ее

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

Не пытайтесь вносить изменения в ветку выпуска, так как вы можете их потерять или у вас возникнут проблемы с их объединением обратно в магистраль.

Альтернативный подход к разветвлению выпуска заключается в том, чтобы внести все изменения в trunk, а когда вы будете готовы, создать ветвь release / tag.Для небольшого магазина разработчиков это, как правило, самый простой способ.(Другой подход хорошо работает, когда вы вносите большие изменения в продукт, в который все остальные тоже вносят изменения).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top