in reply to Thoughts on Git, Mercurial, Github, and Bitbucket.

I moved most of my code from self-hosted SVN to Mercurial repositories on bitbucket.org several months ago.

I always found git completely horrible to use, but switching from svn to hg has been a relatively simple matter.

Now that I've switched to hg, I feel I have a better understanding of git, as they're not a million miles apart, and I am reasonably comfortable working on other peoples' git projects. However, UX-wise I still think hg is streets ahead of git, and have no desire to switch away from hg.

The main advantage of distributed SCM for me personally (and I realise there are far bigger advantages that may be applicable to other people - they just don't necessarily apply to me!) is the ability to check in source code changes without an Internet connection, as I often code on trains, etc.

perl -E'sub Monkey::do{say$_,for@_,do{($monkey=[caller(0)]->[3])=~s{::}{ }and$monkey}}"Monkey say"->Monkey::do'
  • Comment on Re: Thoughts on Git, Mercurial, Github, and Bitbucket.

Replies are listed 'Best First'.
Re^2: Thoughts on Git, Mercurial, Github, and Bitbucket.
by Ralesk (Pilgrim) on Mar 30, 2012 at 22:54 UTC

    I’ve had a similar experience with these three.

    Originally a (mostly happy) SVN user, we didn’t branch unless really needed, and being a small bunch of coders usually not working on the same files back then, we didn’t conflict with each other. I’d heard of git (and a little later Mercurial), and in fact started storing my university stuff in a git repo on my computer(s), more or less successfully. I have lost some data with it, because it’s ridiculously easy to use git in a clumsy way. I ended up not liking its user interface due to the weird naming of commands and the relatively insane defaults — but I hear it has improved a lot since 2007.

    I ended up doing stuff in Hg instead, primarily because it felt so similar to SVN — if SVN is CVS Done Right, I’d say Mercurial is SVN Done Right (I’m sure this sets off alarms in git users’ heads :D). The user interface feels sane (albeit it’s not without slight pricks hidden here and there; but no software is perfect) and it’s very easy for people to switch to it without clobbering their work with a careless or misunderstood command. Back when I tried git, the documentation was rather… arcane. Or it felt like it anyway. Mercurial just works, and you can do advanced crazy stuff in it if you really want to (now with Phases, even rebasing is decent). I do also very much like the immutability of the history here — git users often seem to be obsessed with making the tree look more like a flagpole (after the fact) rather than a shunting yard :)

    Back to work, we’ve moved one of our projects over to Mercurial and have been very pleased with it so far. Started moving other projects to it too, the other users seem to grok hg as well now. This is pretty cool.

    And just as you said: I learned the way things work in a DVCS from Mercurial (way easier than I could from git) — and as a result I understand the way git works much better than I did with the SVN-only background.

    Recently got interested in getting down some git-fu simply because GitHub is awesome (and I don’t like Bitbucket that much), and because Perl stuff is primarily git-hosted. My second language is Python though, so… the hg-fu will come handy eventually when I can code in it again.