[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Problems with tagging files
Problems with tagging files
Thu, 22 Jul 2010 17:30:32 +0100
I am having some trouble with checkout out files using a release tag and
hope someone here can help.
Basically my repository is structured like this
A release can include changes in either module1 or module2 or both. There
are several developers that could be working on any files in any of the
To work on a new release, we checkout the latest release (e.g. LIVE-REL-2.4)
using the following command
cvs checkout –r “LIVE-REL-2.4” moduleName
Note that we dont check out from trunc. The reason for this is that if you
checkout from trunc you are including files which other developers have
checked in but you dont want to include in the next release.
After we've checked out the latest release, we make the changes and check
back in the new files. For the delivery, we label all the new files we've
checked in with a bug specific tag.
cvs tag BUG434 file1
cvs tag BUG435 file2
We then apply a new label to every file that is on the current release.
cvs tag – r “LIVE-REL-2.4” “LIVE-REL-2.5”
We then add the new release tag for the new files we've checked in
cvs tag –r “BUG434” “LIVE-REL-2.5”
cvs tag –r “BIG435” “LIVE-REL-2.5”
The above ensures that the new release will include all the files from the
"latest delivered release" plus bug fixes that we want to include in the
release. To checkout the new release we just do this
cvs checkout –r “LIVE-REL-2.5” moduleName
There is a bit of a confusion as to whether this process actually work.
We've suddenly had people complain that they cant check in any new files if
they check out by tag. The error that is generated is shown below
sticky tag `LIVE-REL-2.5' for file `DatabaseFacade.java' is not a branch
I have been doing some reading on this error but i havent been able to find
a solution to it. From what i gather from googling around, the solutions
available are as follows
- run "cvs update -A" on these files to revert the working copy to the head.
This wouldnt work for me because i dont want to release the changes that are
on the "head". The revision that i want to release is an updated version
from the previous release. The one on the 'HEAD' could be one that someone
has updated and is not to be release for the next 3 release.
- The tag needs to be made into a branch
I wish i can do this but i cant seem to be able to convince any of my bosses
that we should support branching. We dont support it because it apparently
makes things a lot more complicated than they need to be.
- Prevent people from checking in files that are not ready to be delivered
in the next release.
This might work as i would then be able to just checkout from 'HEAD'
everytime there is a new release.
Now my questions are as follows,
- Is there some way i can checkout using the above procedure without coming
across the "sticky tag is not a branch" error?
- Is there a better way i can achieve the same steps above without having to
- This sounds to like its one of the most common situations in a development
environment. How do other people do it without using branching?
- And finally if you have any knowledge of subversion, do you know if it
works the same way and i will have the same problems if i change to
Any help will be greatly appreciated.
- Problems with tagging files,