waider: (Default)
waider ([personal profile] waider) wrote2007-11-02 09:56 am

missing the point

Having watched about half of Linus' google video on git, wherein he eviscerates CVS and subversion, I figured I'd have a look:
Installing:
 git
[...]
Updating for dependencies:
 subversion

[identity profile] gaoithe.livejournal.com 2007-11-07 04:57 pm (UTC)(link)
Must go look at that video.
But, like, git is a totally different model I thought.
You have to use something appropriate to your process.

cvs and svn are really solid BUT people probably think svn especially does more than it does. Using svn with bloated repositories with a good few users I can see it's nice and robust even if a glitch on network causes something to be interrupted.

3 svn things

1. svn moves and renames are not version-tracked SO merging across branches with moves/renames will not do the right thing. However this is meant to be coming with next major svn release.

2. branch management is ALSO a feature coming native inside svn ... soon. But not in next major version I think. We're using svn with Trac and a mergebot and other bots which makes branch management nice & easy.

3. Also have found (because we're using branches very heavily and presumably most of the rest of the whole world actually are not) there is one simple behavioural thing that trips you up (until you know about it). http://subversion.tigris.org/faq.html#switch-problems

ext_181967: (Default)

[identity profile] waider.livejournal.com 2007-11-07 05:19 pm (UTC)(link)
I was working on some code merges yesterday (short version: vendor code, vendor code plus third-party patches, my code plus different third-party patches) and was briefly astounded when git noticed by itself that the bulk of Makefile had been transferred to Makefile.in. As noted more than once by Mr. Torvalds, git tracks content, not files, so you can even have it figure out when you moved that function from foo.c to bar.c.

Branches are pretty much instantaneous, and merging is also pretty immediate. Branching is also hugely trivial. And the default distibution comes with a Tk/Tcl front end that will graph your tree of branches for you (among other things) so you can figure out what the hell you're doing.

It's quite awesome. And yes, it will happily work in a centralised-server model just like CVS and SVN, but that's not really what it was built for.