views:

118

answers:

4

Hi,

If you have a version 1.0 of a product, or say 1.1 or even a patch, do you create a tag/label or a branch?

+3  A: 

Eric Sink wrote a great series of articles about the ins and outs of version control. I'd suggest using those as a starting point.

Tim Lentine
+1  A: 

Depends on the version control system. I'd branch for incompatible (major version number) changes, and tag for compatible (minor version number) changes. That leads to a whole discussion about what's compatible and what isn't, though...

Or, just use Subversion, where you'd normally use "svn copy" for either.

+1  A: 

I usually don't branch but only label the releases. This way, I can branch later when the need arises. Since branches are so expensive in CVS, try to avoid them until you really need them. For all other VCS tools, branching is so cheap that you can do it as you need it, so no need for premature actions, either.

Aaron Digulla
A: 

It depends a bit on the tool (version control system) you use, if it has sane branching and tagging.

In Git I would use tags such as v1.0, v1.1 to point to exact version (tags do not change), so if somebody would tell you that there is a bug in version 1.0, you would know exactly what it contains. If there would be a need for long-term maintenance, I would use branches such as maint-1.0 and maint-1.1 to gather maintenance bugfixes for past version, and from time to time tag new minor release such as v1.0.1, or v1.1.5.

HTH

Jakub Narębski