Log in

No account? Create an account

Fri, May. 6th, 2005, 07:24 pm
More version control stuff

Linus Torvalds thinks that Git is already better at merging than everything else. In the sense that Linus personally has a magic merge algorithm knows as 'Andrew Morton' that's correct, but for everybody else this claim is completely false. (I asked around about what he could mean, and some people suggested that 'better' might have meant 'faster', which is the only explanation which doesn't involve Linus being delusional or lying.)

Unfortunately Linus's stated plans for Git are that it should only ever have whole tree three way merging (because that's the simple, practical, expedient way) and that it will have implicit renames and moves of lines between files (because that's the 'right' way). The resulting approach isn't workable even on paper. Whether the plans will be changed in advance of a disaster remains to be seen.

Meanwhile, we recently made a big advance in merge algorithms, you can read the latest about the upcoming new Codeville merge algorithm in this post.

Wed, May. 11th, 2005 04:56 pm (UTC)
(Anonymous): Re: 3-way merge

He probably thinks that.

Remember, he's a "unixy" guy. Multics was "better" than Unix, it was funded by MIT, AT&T, IBM, it had the best experts in the OS area, lots of money and programmers. And then a couple of young programmers who knew nothing about operating systems thought that it was just too complex and decided to do his own thing, and the rest is story. Sometimes knowing nothing is just better.

So I'm not comparing you with multics, maybe you're right and he isn't I'm just saying that he is _not_ going to listen you if he thinks there's a way of doing things simpler. You may think that the "move lines between files" is crazy, but it's what programmers actually _do_, so I'm not suprised he said that and that he thinks he's the "right way".

It's not the first time he has been told he's wrong. People said spinlocks were a crappy way of doing a scalable kernel, that linux should follow the Solaris/irix/etc pathlike all unixes had done, that it wouldn't work well. And now Linux is running in 512-cpu boxes with much less complexity in its locking than other OSes. The same happened with "memory zones", the same happened with debuggers (he is never going to include a in-kernel debugger like everybody does because he doesn't likes them) and with lots of things. Arrogance is not what drives himself - he often changes his mind and contradicts himself just because he was "wrong before".

So, I'm not saying he's right with git, but he's just a weird guy. Try to live with it :)