2010-04-07 2 views
7

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

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

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

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

ответ

3

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

IE под корень у меня есть/Dev, /releases/0.1, /releases/0.2, /releases/1.0 и т.д.

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

+0

Мой опыт в том, что это лучший способ. – NotMe

1

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

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

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

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

+0

Значит, номера сборки для ветви dev и ветви релиза не будут связаны? –

+0

Major.Minor.Release.BuildNumber они не связаны Major.Minor.Release.CheckinNumber они связаны и связаны –

0

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

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

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

Смежные вопросы