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.
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.
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