[cvsnt] Re: Branch merging - this seems wrong...

Tony Hoyle tony.hoyle at march-hare.com
Tue Jun 6 17:44:13 BST 2006


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.


Tony Eva wrote:
  > 'Development' = a branch used essentially as a place for a
> developer to save their working copy while they are in the
> process of writing and testing their code.  The code

That's called a sandbox.

> committed to a development branch is work in progress:
> highly unstable and subject to change.  Development branches
> are short-term and related to a single feature or bug.

There should be *a* development branch.

Producing a branch per bug reduces communication and is extremely wasteful.

It's important that developers always know the current state of the module 
they're working on.  Multiple development branches make this impractical.

At the bug level it'll affect two or three files but those files aren't 
independent of the whole - they should be tested and developed within that not 
separate from it.

If you end up with developers working away from the main codebase then you get 
increasing problems as the code diverges.. I've seen this and it isn't pretty 
- I once saw a 3 month project virtually trashed because of this (we 
eventually had to hardcopy print out all the changes and work out what they 
were doing because the branches weren't even remotely similar.. took longer 
than it originally took to develop to actually merge it).

> 
> 'Stable' = a branch used as a collection point for code that
> developers are satisfied is complete and working as far as
> they can test. It is stable in the sense that it compiles,
> and probably will pass any automatic testcases.  Developers

That's testing normally - it would be unusual to promote direct to stable 
(although some work like that).

> So in these terms, a development branch is right down at the
> bottom of the pecking order.  Because of its instability, it
> isn't practical or desirable for developers to share a
> development branch.  Each developer is working towards

Actually it is necessary *precisely* because of its instablility.

The developers need to work together to produce the product, not pretending 
that all the other people don't exist.  They're part of a team producing a 
single product.

If they start acting as independent agents then the development and debug time 
is going to go through the roof as you're just spending half the time merging 
conflicts instead of actually writing code.  Which is exactly the issue you 
started with in fact.

Tony



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