CVS Strategy

During the past few years I have had occasion to work on several large parallel development projects, all of them have use CVS for there source control, in a recent project I’ve been working on in my spare time I have started to use subversion (and I think it is fantastic!). Whilst getting to grips with subversion I thought about the different problems I have come across with source control and parallel development, and the different opinions people have had about the best way to manage source control. I think people can be divided in to two types.

The Mergephobic

A typical mergephobic is genuinely scared to branch because they are terrified of running in to problems later down the line when they have to merge two concurrent developments back together. These people have often been victims of multiple merges that went bad but often can’t see that their merge aversion is a self-fulfilling prophecy. They will put off a merge siting reasons like “We are to busy right now� or “best leave it until after the next Integration build� this only leads to the inevitable situation of the branch becoming so out of step with the trunk that the inevitable merge is a order of magnitude more difficult that it should be and therefore an order of magnitude more likely to fail.

The Branchaholic

The contrasting individual to the mergephobic is the branchaholic. They are ready to branch at the drop of a hat without any consideration as to where the development they are branching from is headed and what state it is likely to be in when they need to merge there changes back to that development. They have seen small successes with parallel development using branches and are keen to apply what they learnt to every project they work on from then on. Often this is a false view of when branching is the right way to go, they use branching as if it where a bucket of water in an attempt to make every problem look like a fire.

Both are bad – they put little thought in to why they do what they do and the consequences can be dire. I’m sure there are more types; perhaps I will list them as I come across them :-)

Posted: 17/10/2005 in: