[cvsnt] Branching/Tagging Best Practices
rparlee-cvsnt at flyinghippo.com
Wed May 14 16:49:42 BST 2008
Can someone please review my current tagging/branching methodology and make
sure I'm doing this right:
## Rule 1: Do all new (i.e. unstable) work on HEAD
## Rule 2: Do formal bug fixing on a branch:
a) tag/branch and release to testers...
cvs tag release-1_0_1-tag ## always has an odd 3rd number, tag instead
of rtag to keep sanity from concurrent commits
cvs rtag -b -r release-1_0_1-tag release-1_0_1 module1 ## rtag okay here
because we reference previous tag
b) move "MAKESTABLE" branch alias so that the testers can just do an
update on their MAKESTABLE working directory
cvs rtag -A -r release-1_0_1 MAKESTABLE module1
## Rule 3: Once formal testing period is complete, tag the TEST branch using
a "stable" release number and release to clients:
a) tag and release the previous MAKESTABLE branch using an *even* 3rd
number... even numbers represent stability
cvs rtag -r release-1_0_1 release-1_0_2-tag ## notice that "-r
release-1_0_1" refers to the branch
b) now that the branch release-1_0_1 is "stable" we can merge back to HEAD
cvs update -j release-1_0_1 ## using CVSNT mergepoints so I can simply
reference the branch name.
Here are my quesitons:
1) Am I correct that I should be using "tag" in the Rule 2: a) instead of
2) Have I properly created a DEVELOPMENT, TEST, STABLE style release system?
DEVELOPMENT = HEAD
TEST = release-1_0_1
STABLE = release-1_0_2 (which is a tag on release-1_0_1 branch)
3) Does anyone else use a "MAKESTABLE" sort of tag in a similar fasion?
More information about the cvsnt