June 25, 2003

How to save yourself from CVS branching hell : cvsgraph & viewcvs

One of the things I miss most from working with Clearcase at my previous company is branching information (I currently use CVS)

We use CVS with a "product development" philosophy : the HEAD branch has all the main development. At some point, we create a maintenance branch which has the first release for that version. For exemple we have an Xxx_5_2 branch which has all the maintenance version for the software : 5.2.0, 5.2.1, etc... This means that we can have one person fixing a bug, put it into production while at the same time developping new features.
When such a fix occures, we then merge back into HEAD... typical config management...

However, I find it fairly difficult to track what branches exist for a given file or, worst even, what merges occured. Imagine, one of those bug fixes is not merged... that would be very bad.
Up until now, we've been getting around that by being extra careful about how we run things around bug fixes and by commenting commits subsequent to a merge explicitly. But it's still not too great.

I happened to stumble across viewCVS and the latest cvsgraph and I finally have what I've been missing :) viewCVS is just a cvsweb clone into which you can plug cvsgraph.
CVSgraph displays a graph of all reversion, branches and tags very cleanly, it has lots of nice features like branch folding, only showing tagged revisions, etc...

The one thing that really got me going is automatic branching detection based on tag names. Suppose that when you release version 4.2.1 for example (remember it has to be on the maintenance branch for us) you tag it somehting like release_MYSOFTWARE_4_2_1. It's then easy to check it out cleanly.
Then you switch to your HEAD branch and merge it. You commit those changes and tag that branch merged__MYSOFTWARE_4_2_1. cvsGraph will then draw a little line between those two tag boxes to let you know that a merge occured.

The matching uses regular expressions so I suppose you can make up even more intricated schemes but I haven't fooled with that yet. I'd like to find a way to tag temporary branches and merges differently but that will be another post...

Posted by pgirolami76 at June 25, 2003 10:51 AM | TrackBack
Comments

Hello, I just wanted to say you have a very informative site which really made me think, thanks very much! Have a nice Day!!

taylor

Posted by: taylor at May 25, 2004 12:06 PM

interesting info about car rentals

Posted by: Valley Car at July 22, 2004 03:14 PM

interesting info

Posted by: Shannon Valtrex at July 25, 2004 04:10 PM

interesting info

Posted by: Shannon Fioricet at July 26, 2004 08:51 AM

hello. i just wanted to give a quick greeting and tell you i enjoyed reading your material.

カジノ

Posted by: カジノ at July 27, 2004 07:47 AM

thank you, i just wanted to give a greeting and tell you i like your website.

best online casinos

Posted by: best online casinos at August 1, 2004 05:30 AM

interesting info

Posted by: Vilgelm Celebrex at August 2, 2004 09:04 AM

interesting info

Posted by: Vilgelm Pala at August 7, 2004 09:26 AM

my friend told me about your web site and i really enjoyed it. very nicely done. very interesting!

grants

Posted by: grants at August 7, 2004 08:42 PM
Post a comment









Remember personal info?