Stefano has written a great introspective post on his inner reactions to a Linus video on Git. It’s good to see people being more open minded about this. I’ve never understood the resistance to distributed version control, especially open source software development is itself an example of the success decentralization. Even the “social” argument that distributed version control would somehow destroy communities seems odd to me. This year at the OSCON Art of Community panel, Karl Fogel said that a tenet of the Subversion team is to avoid using technology to solve social problems. Yet insisting on a centralized version control system seems to me to be doing exactly that. I think its noteworthy that the Subversion team itself has a “hybrid distributed/centralized VC model” as a long term goal.
Centralization in open source projects is a “community smell” (think code smell). It’s best avoided.
Thanks Ted. Totally agree with you on this. We just recently had a conversation about this on the Flex Open Source Google Group. But it seems that since I was the only one advocating distributed VC, we will probably go with SVN. 🙁
-James
Our podcast, Industry Misinterpretations, just finished a 3 parter on version control where I heavily pushed the idea of distributed version control.
The Linus talk was a big turning point for me. I had tried distributed systems before (darcs) before, but never really saw much of an advantage.
Linus focusing so much of his time on the importance of branching, and the ease of merging, is what did it for me.
I don’t quite get how decentralized version control is going to make any project easier to manage and release. Philosophical reasons keeping an open unwalled garden of innovation aside, I don’t get the logistics. How does one manage to put a release together if everyone just pulls code out to their own branches? How does each person know what to integrate with before checking their own code – do they have a designated release branch? (It may not help that I use P4 in my day-to-day work, and only sometimes use SVN for personal projects – my thinking may be skewed due to that.)
> How does each person know what to integrate with before checking their own code – do they have a designated release branch?
Yes.
My only concern about distributed version control is the lack of tools. There is excellent SVN integration in IntelliJ IDEA and there is an excellent free SVN library (SVNKit) to interface to SVN with Java.
Hopefully SVN will close some gaps in merging when adding better merge algorithms and merge tracking this year.
With equally good IDE integration and a native Java library to git and others, probably I would jump ship. For most projects though, version control is a minor problem (and SVK can help to dezentralize SVN). And I’m not sure , how much distributed version control is modelled after the Linux development model and how other open source projects resemble that model.
Coming from some very big enterprise applications with big code bases and branches, I might see some benefit in distributed development.
Peace
-stephan
—
Stephan Schmidt :: stephan@reposita.org
Reposita Open Source – Monitor your software development
http://www.reposita.org
Blog at http://stephan.reposita.org – No signal. No noise.