Нужна помощь с разветвленной структурой - PullRequest
3 голосов
/ 20 мая 2011

Мы только что переключились с SVN на HG и обсуждали ветвящиеся структуры.Мы придумали следующую структуру, нам нужны некоторые обзоры и мы хотим знать, не вызовет ли эта структура проблемы в будущем.

                  * Tag v1.2.0
                  |
                  * Merge Branch v1.2.0 into Default 
                 /|
                / | 
               *  |
               |\ |
Merge v1.1.2   | \| 
 fixes into    |  * Tag v1.1.2
 v1.2.0 branch |  |
               |  * Merge Branch v1.1.2 into Default
               |  |\
               |  |  \
   Commit code *  |   * Commit a bug fix
               |  |   |
               |  |   |
Merge v1.1.1   *  |   * Branch v1.1.2
 fixes into    |\ |  /
 v1.2.0 branch | \| /
               |  * Tag v1.1.1
               |  |
               |  * Merge Branch v1.1.1 into Default
   Commit code *  |\
               |  |  * Commit a bug fix
               |  |  |
 Branch v1.2.0 *  |  * Branch v1.1.1
                \ | /
                 \|/
                  * Tag v1.1.0
  • Каждый тег представляет выпуск версии.
  • Исправления ошибок происходят только в ветках v0.0.x
  • Незначительные улучшения и незначительные новые функции (косметические обновления пользовательского интерфейса и т. Д.) Происходят только в ветках v0.xx
  • Ветвь по умолчанию (center) всегда имеет стабильный и проверенный код

Вопросы:

  • После слияния v1.2.0 с веткой по умолчанию мы сможем создать ветку для v1.1.3 из тегаv1.1.2 и relay / tag v1.1.3?
  • Является ли эта структура действительной структурой или мы пытаемся придумать что-то нелепое, и уже есть решение / ответ на этот вопрос?

ОБНОВЛЕНИЕ: После обсуждения решения, предоставленного Лассе В. Карлсеном, мы, наконец, согласились, что нам не нужно выпускать v1.1.3 после выпуска v1.2.0.Наши пользователи должны обновиться до версии v1.2.0, если они хотят получать обновления, а версия v1.1.2 будет последним обновлением для линии v1.1.x.Таким образом, первый вопрос устраняется.Спасибо за отличный совет и чаевые Лассе.

Спасибо всем!

1 Ответ

3 голосов
/ 20 мая 2011

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

  1. Обновление до значения по умолчанию в точке, где вывыпущено 1.1.2
  2. Разветвление для 1.1.3 и фиксация
  3. Объедините это с тегом 1.1.2 по умолчанию, это создаст еще один заголовок в ветви по умолчанию, параллельно временной шкале 1.2, которую вывы работаете над тегом
  4. для 1.1.3 и выпуском
  5. Объедините эту новую голову с предыдущей, получив исправление в 1.2.x

Предостережение : Одна вещь, которую я обнаружил при тестировании, это то, что .hgtags нужно было объединить, когда я слил контент по умолчанию 1.1.3 в контент по умолчанию 1.2.0.Поскольку теги всегда читаются из самого последнего набора изменений (я могу ошибаться здесь), это может указывать на то, что это не лучший способ сделать это.По крайней мере, я бы, возможно, подождал с тегами, пока я не объединю 1.1.3 с временной шкалой 1.2.0 (т. Е. Самое верхнее слияние на диаграмме ниже.)

Мой тестовый репозиторий можно найти здесь: https://lassevk.kilnhg.com/Repo/StackOverflow/answers/SO6071322

Это выглядело бы примерно так:

                  * Merge Branch 1.1.3 into Default
                  |\
                  | \
                  |  * Tag v1.1.3
                  |  |
                  |  * Merge Branch v1.1.3 into 1.1.x Default 
                  |  |\
                  |  | \
Tag v1.2.0        *  |  * Commit a bug fix
                  |  |  |
                  |  |  |
Merge Branch      *  |  * Branch v1.1.3
v1.2.0 into      /|  | /
Default         / |  |/
               *  |  +
               |\ | /
Merge v1.1.2   | \|/ 
 fixes into    |  * Tag v1.1.2
 v1.2.0 branch |  |
               |  * Merge Branch v1.1.2 into Default
               :  :

Является ли это хорошей идеей, не уверен, мне еще предстоит управлять проектом с множеством параллельных выпусков, подобных этомув Mercurial.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...