svn merge sucks
I'm actually typing this while waiting for svn to merge a branch back to the trunk of rosegarden source tree...
Anyway, a while ago, I watched this talk by Linus at Google about his own Version Control System, git. I'll skip the comments about his attitude and mention a few points I felt like commenting about.
- When Linus says that KDE should have split its repository into multiple ones, I don't see how that would make things any easier for devs. KDE has a base dependency, namely the KDE libs. How would you split KDE's code into several repository while avoiding the problem of keeping them in sync ? Doesn't that break the whole idea of a version control system ? "Hey, I need to backtrack kmail's code to a week ago to check for a regression, now what version of kdelibs do I need to get it to compile, mhhh, let's see...". Yeah, that's bright.
- I wish Linus would show a basic workflow of how git works
- And to the point of this post : Linus really does have a point when he says that a version control system really must make merging an easy operation. Yeah, even if branching is cheap (and remembering having to lock a cvs repository for hours just to make a tag or a branch, I can appreciate how important that is), if merging is a headache, it does defeat the whole purpose of it. That is, branches will still be seen as something you use only when you really have no other choice. And merging in svn really is a headache, simply having to find the version number of the branch's origin is dull enough, but merge tracking is way too error-prone. Fortunately it should be part of the next version of svn, but I'm not sure leaving it out was the right decision. Then again they had to cut the feature list somewhere...