Geek quote of the day: Git and Home Depot
Git is intimidating. It’s a distributed revision-control system, so it’d work online or off, and it’s got tons of cool toys (like git-bisect to automatically figure out which commit introduced a bug). But good luck figuring out which of the umpteen zillion commands you actually need to get something done. (I cheat — I IM my friend Sam and say, “Help?”)
Git has everything from fine-grained commands to handle a tiny part of a single commit, up through high-level commands that mow your lawn and make Julienne fries, and I have no idea how to tell which is which. Like I said, intimidating. Git has been described as not so much a revision-control system, but rather as a toolkit you can use to build your own revision-control system that works exactly the way you want it to. Which is kind of like writing your own lexer, parser, keyhole optimizer, runtime library, memory allocator, JIT compiler, and IDE, and designing custom hardware while you’re at it, and mining the silicon yourself, so you can write a programming language that works exactly the way you want it to.
And it doesn’t help that Git’s Windows support has been very slow in coming, though apparently now it’s mostly as good as on other platforms.
Yesterday I was working on a toy project that might amount to something someday, but that I was more likely to lose interest in after a few days. And I wanted revision control for it (I like diffs). But it didn’t feel worth creating a Subversion repository for something potentially throwaway. Git stores your repository right there in your working copy, which felt like a good fit. So I finally installed msysgit, and promptly found that it’s got some awesome features (I was skeptical of the index when I first heard about it, but it’s actually very cool, especially through the GUI — you can commit just certain lines from a file!… not sure how you run the unit tests on them, though), but that it’s got some stuff that truly sucks (the people who wrote the Git GUI have never heard of window resizing, word-wrapping, or context menus — and the terminology is deliberately confusing. If I can’t figure out how to revert a file, there’s a problem somewhere.)
While reading around, I happened across a mention of Mercurial, another distributed revision-control system, and I started sniffing around for comparisons between Mercurial and Git.
I hardly ever laugh out loud, but Jennie, from another room, called, “What’s so funny?”
From Use Mercurial, you Git!:
I ordered a version control system, not a toolkit for building one! If I’d wanted building blocks for rolling my own, I’d have gone to Home Depot and bought a 1 and a 0.
May 22nd, 2009 at 2:11 am
Ever tryed Bazaar , is very simple to use and set up! Windows support is not as complete as other platforms, anyway…
May 22nd, 2009 at 2:46 am
Well if you find git intimidating, perhaps you should start with some tutorials?
Here are a few links to get you started
http://www.gitcasts.com/ — To se git in action.
http://kylecordes.com/2008/04/30/git-windows-go/ — Install git on windows.
http://git.or.cz/course/svn.html — If you already know SVN
http://jonas.nitro.dk/git/quick-reference.html — A quick refrence
http://www.kernel.org/pub/software/scm/git/docs/gittutorial.html — Official git tutorial.
The only commands you really need are add, commit, pull and push.
Git is the best VCS I’ve used so far. It’s very popular in the Ruby community and I would very much like to see it adopted in Delphi community as well.
The branching an merging support is awesome and can really change your workflow.
Best regards,
Ajasja
May 22nd, 2009 at 7:48 am
[...] Geek quote of the day: Git and Home Depot (Joe White) [...]