[cvsnt] Branching/Tagging Best Practices

Ryan Parlee rparlee-cvsnt at flyinghippo.com
Fri May 16 06:56:53 BST 2008

Community technical support mailing list was retired 2010 and replaced with a professional technical support team. For assistance please contact: Pre-sales Technical support via email to sales@march-hare.com.


Your setup is similar to ours. Except that we practice a 2 week sprint cycle 
in which we "release" every 2 weeks.  Once we make a release, this goes to 
testing.  During the next 2 week period, the previous feature set is tested 
and any bug fixes are made on the branch.  Simultaneously, the new feature 
set is committed to HEAD.  I think what I'm describing is exactly like what 
you are describing except that we force ourselves to release every 2 weeks 
instead of just focusing on the next minor/major release.

Does it cause problems having lots of tags?  In our system, we are creating 
2 tags and 1 new branch every 2 weeks:

So every two weeks:
1. HEAD is tagged as "release-1_0_3-tag"
2. HEAD is branched as "release-1_0_3"
3. Branch "release-1_0_1" is tagged as "release-1_0_2-tag" and released to 
our deployment server to be sent to our customer.


"Andreas Tscharner" <andy at vis.ethz.ch> wrote in message 
news:g0gjjv$u80$1 at paris.nodomain.org...
> Ryan Parlee wrote:
>> 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:
>> ## Rule 3: Once formal testing period is complete, tag the TEST branch 
>> using a "stable" release number and release to clients:
> As Arthur has already said: Your best parctise depends on your workflow. 
> Here is how what we do:
> We are about 13 developers working on one product. We commit all new stuff 
> to HEAD. At some point, when we are getting closer to the release and one 
> part of the team starts working on stuff that gets to the next (not the 
> coming) release, we make a branch for the release, e.g. the new stuff for 
> the next release still goes to HEAD, the bugfixes for the coming release 
> go to the branch _AND_ to the HEAD (merge). This branch is also used after 
> the release for our service packs and it's also the same policy: Bugfixes 
> for the service pack go the the branch and to the HEAD.
> We used to tag every installable release (also internal ones), but this 
> might change in the future as it turned out that we get way to many tags 
> and most of them are never used again, so I think we're going to tag 
> releases that gets out, e.g. betas.
> Long story short: New stuff to HEAD, for every release a branch. Tags for 
> external releases.
> Best regards
> Andreas
> -- 
> Andreas Tscharner                                   <andy at vis.ethz.ch>
> ----------------------------------------------------------------------
> "Intruder on level one. All Aliens please proceed to level one."
>                                       -- Call in "Alien: Resurrection" 

More information about the cvsnt mailing list
Download the latest CVSNT, TortosieCVS, WinCVS etc. for Windows 8 etc.
@CVSNT on Twitter   CVSNT on Facebook