Управление версиями в среде непрерывной интеграции - PullRequest
7 голосов
/ 08 апреля 2010

Как вы работаете с версиями в среде непрерывной интеграции, где есть ветка разработки и ветка выпуска? Я использую git, поэтому нет никакой инкрементной версии репозитория для использования. Похоже, что будут ветвящиеся версии, такие как 1.1.0 в ветке dev и 1.1.0 в ветке релиза. Вы просто добавляете текст "dev" или "release"?

Кроме того, когда вы создаете ветку релиза, вы сразу увеличиваете ветку разработки до следующего "предложенного" номера релиза? Возможно, вы еще не знаете номер следующего релиза, но если вы не увеличите его, то у вас есть 1.1.0 dev, содержащий новую работу, не включенную в релиз 1.1.0.

Итак, мой главный вопрос: какова связь между последовательностями версий между этими двумя ветвями?

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

Ответы [ 3 ]

3 голосов
/ 08 апреля 2010

Я не делаю версию ветки dev. Devline - это ствол, и я периодически переключаюсь с dev на новую папку выпуска. Таким образом, ветвь релиза полна папок, которые в основном представляют собой снимки устройства.

IE, под root у меня есть / dev, /releases/0.1, /releases/0.2, /releases/1.0 и т. Д.

Я не уверен, что это действительно отвечает на ваш вопрос.

1 голос
/ 08 апреля 2010

Я бы порекомендовал установить последнее действие для вашей среды CI для создания тегов. Я считаю, что команда git выглядит так: тег git -a имя

Мы используем Major.Minor.Release.BuildNumber

хотя в некоторых местах используется Major.Minor.Release.CheckinNumber

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

0 голосов
/ 05 сентября 2010

Если у вас есть только одна ветвь разработки, более эффективно сделать ее ветвью и отделять ветвь релиза каждый раз, когда вы просто хотите стабилизировать релиз.Если у вас есть несколько проектов объектов, вы можете создать ветку для каждого из них с настройкой CI.Как только они сделаны, вы объединяете их один за другим в транк, и как только все объединяются, вы попадаете в первый сценарий, где вы снова разветвляете ветвь релиза из транка.

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

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

...