On Wed, Mar 5, 2008 at 4:51 PM, David Brown <lisp@davidb.org> wrote:
On Wed, Mar 05, 2008 at 11:24:42AM -0800, Steve Morin wrote:

>I have worked on branches in cvs svn and perforce.  I don't know so please
>educate me how do these other version control systems make a marked
>improvement in branching and distributed development?

They're all broken in different ways, but it all boils down to not storing
enough metadata with the branch/merges.  CVS and Perforce share in that
they track files individually, not directories.  This breaks down when
there are renames and such in one branch.  SVN doesn't store merge history,
so has to be told what might be a common ancestor for a merge.

I agree with you here.  For just about everyone merging is always a frustrating process.  Currently I am working on a project with svn where I have to merge with 3 seperate branches and trunk not fun.   This I don't know much about other techniques but, here I would need the ability to make a change in one branch and apply it to the two other branches and trunk.  This needs to be very flexible.


None of them do distributed development, they only let other developers
connect remotely.  Each still checks out and checks into a single repo.  A
distributed system allows me to create my own branches without even needing
write permission on a central repo.

Without using and understanding a distributed revision control system, it's
hard to understand why it is so much more powerful and useful.  It is
really a much better way of working.

I have done to a couple presentations on Mecurial but If people are working on a common project  I am not sure there is a usual need to create your own branch.  If I am doing work I am not sharing with others I get my own copy or setup my own repository.  Otherwise I am usually commiting to the main project, and work the with project maintainer for a branch if it's a serious effort that needs that or else you for the project if you can't see eye to eye with the "establishment"

We use Perforce at my work.  Most of us on my team use a Perforce->git
gateway to be able to do useful tracking and distributed development.

David