частичное дерево тегов против полного ствола в svn

У нас есть репозиторий со следующей структурой:

repos
  trunk
    module1
    module2
    ...
  tags
  branches

Обычно мы выдаем заказчику отдельные модули, а иногда и все приложение целиком.

Теперь мы собираемся доставить модуль1, и я пытаюсь выбрать между этими двумя вариантами:

  • a) пометить module1 (т.е. скопировать trunk/module1 в tags/module1_v1.00)
  • б) пометить полный ствол (т.е. скопировать ствол в tags/v1.00)

Существует ли какое-либо соглашение о том, что все теги должны включать полный ствол? Есть ли веская причина делать то или иное?

Благодарю вас!


person tato    schedule 17.12.2009    source источник
comment
В любом случае нет никаких дополнительных затрат, есть ли что-то, что вам не нравится в маркировке всего багажника?   -  person Sander Rijken    schedule 17.12.2009
comment
Это не вопрос стоимости. Если я выпускаю модуль1, меня не волнует состояние, в котором может быть модуль2. Возможно, module2 находится в процессе какой-то работы и не должен быть помечен прямо сейчас. Также я хочу прояснить, что я выпускаю модуль1, а не какой-либо другой модуль.   -  person tato    schedule 17.12.2009


Ответы (2)


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

Если вы пометите модуль, путь должен быть:

/tags/rel_1.0/module1

нет

/tags/module1_v1.0

Конечно, вы можете сделать все, что захотите, но лучше следовать рекомендациям SVN.

http://svnbook.red-bean.com/en/1.5/svn.branchmerge.commonpatterns.html

person Samuel Neff    schedule 17.12.2009
comment
Я не могу найти рекомендацию svn для этой конкретной проблемы. Если я последую вашему совету, то при создании версии 1.00 модуля 2, возможно, через две недели, он будет жить в том же каталоге rel_1.0... и я не могу сказать, является ли это версией 1.00 всего проекта или версией 1. .00 модуля1, а затем v1.00 модуля2 - person tato; 17.12.2009
comment
если ваши модули настолько разрознены, то вам не следует хранить их все в одном стволе, вместо этого каждый должен иметь свой собственный набор тегов/веток/каталогов ствола. - person Samuel Neff; 22.12.2009

У вас может быть что-то вроде

trunk
  module1
  module2
tags
  fullProject
  components
    module1
    module2

Таким образом, вы можете помечать выпуски модулей независимо от выпусков полных проектов. Например tags/components/module1/20091217.

person Michael Hackner    schedule 17.12.2009