Git and CVS

Posted on Thu 30 November 2006 in geek

Given we have shipped 1.0 the pressure to get changes into the code base has abated a little. I've spent a large chunk of the day trying to work out how to get Git and CVS to play well together. I'm convinced by the power of mini atomic commits and bisect that git brings when trying to pin down regressions. However due to the way CVS works using cvs tag as frequently isn't an option. I've written a little script to import our CVS tree's into git and maintain some degree of baseline information with the changes while ignoring the CVS gubins. However maintaining this all in one "tree" is suboptimal when it comes to checking stuff into CVS. I think the solution is going to involve having a master git tree (with it's hidden CVS context pointing at the baselines) tracking that while using "git clone -s" to make shallow copies for each change-set which can have their own CVS related meta-data for their commits. Ultimately I hope to convince the powers that be that a more modern revision control system will be a beneficial solution for the whole company. In the meantime it will be good to get some decent work-flow going to actually demonstrate it's a good idea.