How do you use VCS and tags?

We build our test environment off of a tag rather than a branch. When setting up the VCS I noticed the warning about only using a branch. Is there a way to use a tag? Why limit it to branches only?

6 comments
Comment actions Permalink

Hello Peter,

Well, cvs branch is the way to work with some specific project version, make
some modifications into it and so on, while tag is just a way to mark some
files. What is the reason to use tag here?


--
Olesya Smirnova
JetBrains, Inc
http://www.jetbrains.com
"Develop with pleasure!"


"Peter Thistleton" <no_reply@jetbrains.com> wrote in message
news:10579259.1159440863266.JavaMail.itn@is.intellij.net...

We build our test environment off of a tag rather than a branch. When
setting up the VCS I noticed the warning about only using a branch. Is
there a way to use a tag? Why limit it to branches only?



0
Comment actions Permalink

I think your use of the terms branch and tag are left for interpretation. For us a branch is a specific grouping of files that allow developers to make changes and tag equates more closely to a version or label (a point in time snapshot). We tag files ready to be tested on a branch and continue to allow developers to commit untested code so our QA build only accesses those files tagged as being ready for QA. Since the syntax is identical for tags and branches does TeamCity really block the use of tags.

0
Comment actions Permalink

We also use CVS tags to identify a set of files that comprise a specific release. Whether this is right or wrong, it sounds like we won't be able to use TeamCity in our environment.

Todd

0
Comment actions Permalink

It is reasonably easy, if ugly, to create a dummy branch off a tag that you simply do not touch. This can then be entered into the branch entry.

So for example, if you have a module "mod1" and you want to build off of tag "tag1", you could do:

cvs rtag -b -r tag1 dummybranch1 mod1

Then enter dummybranch1 in the configuration page.

This is what we do.

As for an example of why one might want to use tags, we have several modules, some which are application specific and some which are common amongst projects. While we want to catch all updates to the app modules, we want to use a fixed version of the common modules (the fix version may get updated upon a new release, but stays generally constant). So we'd want a branch for the app modules and a tag for the common modules.

--Tim

0
Comment actions Permalink

Unfortunately, our tags are very dynamic. We've had discussions several times over the last couple of years on using branches vs. tags, but there does not appear to be any momentum to make a change, so we are stuck with tags.

Todd

0
Comment actions Permalink

Tim McNerney wrote:

It is reasonably easy, if ugly, to create a dummy branch off a tag that you simply do not touch. This can then be entered into the branch entry.

So for example, if you have a module "mod1" and you want to build off of tag "tag1", you could do:

cvs rtag -b -r tag1 dummybranch1 mod1

Then enter dummybranch1 in the configuration page.

This is what we do.

As for an example of why one might want to use tags, we have several modules, some which are application specific and some which are common amongst projects. While we want to catch all updates to the app modules, we want to use a fixed version of the common modules (the fix version may get updated upon a new release, but stays generally constant). So we'd want a branch for the app modules and a tag for the common modules.


Looks like a reasonable use case.
Please watch/vote for http://www.jetbrains.net/jira/browse/TW-914

Regards,
KIR


--
Kirill Maximov
Software Developer
JetBrains, Inc.
http://www.jetbrains.com
"Develop with pleasure!"

0

Please sign in to leave a comment.