Experimenting with Git

I’ve been writing about Git a bit lately.

I’ve decided to switch some of my Debian work over to it to start with, as well as some of my other projects.

Although I was thoroughly frustrated with Git a year ago, now I am quite pleased with it. What’s different? The documentation is a LOT better. So far I have only found one manpage (git-show) that omits lots of its options. The system is friendlier, keystroke-happier, and powerful.

Compared to Mercurial, I’ve found some nice things:

In-directory branching. I didn’t expect to care about this, since both git and hg permit lightweight clones. But it turns out to be so easy to use that it is great. Especially since I don’t have to setup multiple branch repos on the server. I really like this. Note that “hg branch” is not the same as a git branch, and see the discussion on the hg lists about renaming that before 1.0.0 for why.

Flexibility in getting things around. Plain HTTP works fine (no static-http:// hack). ssh. git daemon. rsync. Very slick.

Performance. Surprisingly, git actually feels faster than Mercurial, especially when pushing or pulling. I didn’t expect that.

Tags. They seem smarter in git. No more merging of .hgtags all the time. Also I like that I can attach a message to a tag and sign it.

All that power. There is a *lot* that Git can do. I should have been taking notes about it all.

My main complaint is still that Git doesn’t have something as nice as “darcs send”. Mercurial doesn’t either, but it’s a bit closer. Git has moved closer, but still has room to improve on that.

So I have set up git.complete.org and am starting to publish my Debian stuff on Debian’s alioth server as well.

Also, hg-fast-export in the fast-export project is *awesome*. Branch-aware and everything. It made a perfect Git version of my Mercurial work.

3 thoughts on “Experimenting with Git

  1. My SCM usage has been as follows:

    cvs -> larch -> tla / svn -> baz -> git -> cogito (git interface was simply too painful back then) -> bzr -> cogito / stgit -> git.

    I’ve finally found a revision control system that a) is fast enough to handle kernel-sized trees, b) has a reasonable interface, and c) is distributed. The multiple-branches-in-a-repo thing, git-rebase –interactive, and various other features are simply bonuses that I never thought I’d care about, but have come to rely on.

  2. Git, Debien, Mercurial??!!

    I dunno a thing you are talking about.
    I am just a lowly blog buddy of Cliff’s.
    I am stopping by to say HOWDY to all those bloggers who are attending Blogstock ’08. I know some of them very well, but I don’t know you.
    You sound like you’re a guy who is using a higher percentage of his brain than I am. I am not a dolt, though. I am a wife and a mom, and I make a mean pot roast.
    Blogstock ’08 is going to be FUN!!

    1. Hi Jamie! Yes, it is about time I start writing about blogstock! We’re looking forward to it. I just haven’t had a lot of time to blog lately, and sometimes when I’ve got things I want to remember myself, I put them on the blog for others to see too.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

To respond on your own website, enter the URL of your response which should contain a link to this post's permalink URL. Your response will then appear (possibly after moderation) on this page. Want to update or remove your response? Update or delete your post and re-enter your post's URL again. (Find out more about Webmentions.)