SVN разветвление и маркировка лучшие практики - PullRequest
1 голос
/ 29 июля 2010

У меня есть проект, для которого я готов создать ветку, которая будет веткой 1.0.x для всех изменений 1.0.x. Я также хочу иметь набор тегов, соответствующих изменениям в этой ветви, то есть 1.0.1, 1.0.2 и т. Д. Когда я впервые создаю эту ветку 1.0.x, я также создаю тег с именем 1.0. На этом этапе ветвь и тег имеют одинаковое содержимое (так как я делаю изменения в ветке 1.0.x, я создам новые теги для 1.0.1, 1.0.2, как я упоминал выше). Кажется, что в том, как svn хранит ветки и теги, есть некоторое дублирование. Это хорошая практика для создания веток и тегов? Или есть лучший способ сделать это?

спасибо, Джефф

Ответы [ 2 ]

1 голос
/ 29 июля 2010

Похоже, что svn хранит ветки и теги в некоторой степени дублирует

Ветвление и тегирование в SVN одинаковы.

Звучит таквы разветвляете ветку для каждой минорной версии в ветке основной версии.В основном ветвь функций в ветке версий.

Если вы вносите изменения в тег, я бы не использовал тег для обеспечения его согласованности.Если вы помечаете ветку, чтобы сохранить точки маркеров второстепенных версий для дальнейшего использования (например, возможность получить снимок кода, используемого, например, для сборки 1.2.7), то теги верны.

Iобычно помечают транк (если вы используете транк в качестве «стабильной ветви»).Я разветвляюсь из магистрали для версии / функций, и после завершения и прохождения QA я объединяю эти ветви обратно в ствол.Затем я помечаю trung, чтобы пометить его как код, используемый для создания версии.Затем я удаляю ветвь объекта, так как она была объединена обратно в ствол.

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

1 голос
/ 29 июля 2010

svn действительно не волнует, как хранятся проекты, макет грузовика, тегов, веток - это всего лишь предложение. Похоже, что вы собираетесь использовать свою ветку для разработки основной линии, а затем пометить ветку для развертывания в качестве версии. Мне кажется, вы используете разветвленную ветку в том, что традиционно делается в багажнике. Вот довольно стандартный цикл разработки:

создание новых функций -> остановка новых функций, стабилизация транка -> версия тега -> создание новых функций в транке (повтор)

Затем, если вам нужно исправить какие-либо ошибки в теге, убедитесь, что перенесли их в транк.

Это упрощенно, но является хорошей отправной точкой.

...