[cvsnt] Branching/Tagging Best Practices

Ryan Parlee 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 
"rtag" ?

2) Have I properly created a DEVELOPMENT, TEST, STABLE style release system?
  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 mailing list