I just spent a few hours trying to do a release and repeatedly having
tag problems, and it turns out to be what I would call a bug in the
rtag command.  I thought I would document it here for posterity.

The situation arises when you are trying to put a tag on a branch using
rtag, and new files have been added to the mainline (HEAD) since the
time the branch was made.  The new files get the tag even though they
have no branch revision!

Here's a concrete example:

Assume you start with a module fooproj checked out.  It has file1.txt
and file2.txt in it, and they are in revision control.  Your checked
out project is on the mainline.

You use "cvs tag -b BRANCH-1 ." to create a branch on fooproj.  So far,
so good.

Now you cvs add file3.txt to fooproj.  Then, you decide you need a tag
on BRANCH-1 indicating a snapshot of the latest progress.  You don't
have BRANCH-1 checked out, so you use "cvs rtag -r BRANCH-1 TAG-1
fooproj" to create the tag.

The result is that the correct version of file1.txt and file2.txt are
tagged, but the latest revision of file3.txt is also tagged!  If, for
example, file3.txt is source code that depends on the latest changes in
HEAD to compile correctly, my release process (sorry, I mean YOUR
release process) is screwed.

Hope that saves someone a headache.
Bobby Martin

_______________________________________________
info-cvs mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/info-cvs

Reply via email to