views:

45

answers:

2

We have a repository with the following structure:

repos
  trunk
    module1
    module2
    ...
  tags
  branches

We usually release individual modules to the customer and sometimes the whole application.

Now we are going to deliver module1 and I'm trying to decide between these two options:

  • a) tag module1 (i.e. copy trunk/module1 to tags/module1_v1.00)
  • b) tag the full trunk (i.e copy trunk to tags/v1.00)

Is there any convention that all tags should include the full trunk? Is there any good reason to do one thing or the other?

Thank you!

+4  A: 

if there are inter-dependencies then you should tag all, otherwise tagging just one is fine. Either way, you want to be consistent.

If you tag a module, the path should be:

/tags/rel_1.0/module1

not

/tags/module1_v1.0

Of course you can make it whatever you want, but it's best to follow SVN recommendations.

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

Sam
I can't find the svn recommendation for this particular issue. If I follow your advice, then when creating v1.00 of module2 maybe two weeks later, it will live in the same rel_1.0 directory... and I can't tell whether it is v1.00 of the whole project or v1.00 of module1 and then v1.00 of module2
tato
if your "modules" are that disjointed then you should not keep them all within one trunk and instead each should have it's own set of tags/branches/trunk directories.
Sam
+1  A: 

You could have something like

trunk
  module1
  module2
tags
  fullProject
  components
    module1
    module2

That way you can label your module releases independently of your full project releases. For example tags/components/module1/20091217.

Michael Hackner