What the hell is going on? I am totally for competition, variety and completeness, but the surge of source code management tools is getting out of hand!
- Git: According to Linus and some kernel developers, it’s IT. There is nothing better, oh and SVN and CVS suck and you are either a sucker or a moron if you are using CVS or SVN! (That’s the gospel of Linus, not mine.) I agree with him that merging is the key.
- Darcs: Is another distributed SCM, this one uses, smart; which according to the site, is a unique algebra of patches.
- Mercurial: Yet another distributed SCM, there are quite a few projects using it.
- Bzr: Which is yet another, though I find it quite nice in Linux, because it lets you work with existing CVS and SVN repositories, of course you need a plugin that only works in Linux.
And there are many, many, more, commercial, shareware, open source, etc.. The premise of all this, is that CVS sucks, and SVN is not good enough, to tell you the truth I feel these guys are making CVS a more desirable alternative, because while CVS has a lot of issues, they are well known and documented issues, with well known and documented work arounds. I feel more attached to CVS every passing day, It’s true that I’m used to CVS, but I have and still am giving the SCM mention above a shot, and I’m currently using SVN too.
I used to love SVN, until I had to do some real work, that needed to use the full power of the SVN, and it worked ok, but things that I was told were easy, were in fact hackish, and not all that simple. Setting SVN up is a simple affair, but the way to manage keywords and properties is not trivial, as it should be, and there are a few others things that should be simple and easy to use or administer, but in turn are quite difficult.
CVS is alive and well on many projects, both Open and closed, and I believe, it will keep a good share of the market. I’m not saying the above software is not good, it is, but they are bombarding us, and some projects are using different SCM for different modules for reasons I don’t know and will probably wont understand.
I do agree that the distributed model is very appealing and in theory is ideal, that git and the others like it, make merging trivial, and it’s quite smart too.
But that does not mean CVS or SVN is less than the above, in fact some of the largest code bases are served and managed in CVS and SVN (Yes code bases bigger than the linux kernel, a lot bigger), without problems, yes they have policies and standards in place to minimize issues, but that’s not because of CVS, it’s the nature of a big project, you need consistency, and safe guards. So in a organized work model, the distributed system may be more chaotic, and inefficient than CVS or SVN.
The sad part, is the new crop of SCM looks more of a recursive re-envention of the wheel, with very little new or unique features, that would merit one over the other. It’s like a collective exercise on how to make a distributed SCM.
Let’s see what will come out of all this SCM crazyness, hopefully something will make our collective life easier.
Here is the video of Linus on Git.
[youtube=http://www.youtube.com/watch?v=4XpnKHJAok8]
2 Comments
I doubt the result of this feud will be an easier life for developers. I mean, all of the projects stated here are open source projects. Maybe with different ideals and/or communities backing them, but still open source projects. If the objective was to make a SCM better for the community, why not collaborate on an existing project? Why not work on top of what has been done and make it better? Are CVS and SVN so fundamentally screwed up that the only alternative was to create something from scratch?
Everyone wants to pimp their implementation. I have not yet seen the video with Torvalds, but I doubt his case is any different.
Right now, I will stick with what I now how to use and solves my problems, which is SVN. It’s not perfect, I have had some troubles with it in the past, but it’s not half bad most of the time. I am also forced to used a proprietary and sucky SCM at work, but that is another story all together. Let’s let these guys fight it out. Whenever they decide what’s the next de facto standard, please let me know, and I’ll consider switching. In the mean time, got too much coding to do to pay attention.
Well, the main problem is that merging with SVN and CVS can, and in most
cases it’s a pain, so this tools make merging quite simple, intelligent and fast, I know the OpenBSD guys are working hard on their own CVS, and hopefully they will find a way to make merging, moving files, etc.. less traumatic.
The problem with SVN, is that to some SVN as a project failed (and Linus agrees with that) I don’t have an opinion on the matter, however it is true that what it is now, it’s just a SCM that makes some things that are hard to do in CVS, easier, and vice-versa, then there is the small issue that merging in SVN is as painful or more so than with CVS.
So the premise of all the tools above, is that both SVN and CVS have been badly design, and because of this, starting from scratch is the way to go, to avoid repeating the same problems.
Post a Comment