Hacker News new | past | comments | ask | show | jobs | submit login

> What does Mercurial have over Git today?

There exists no easy tutorial, that takes a beginner up to speed with git. You need to read almost a book length of material and familiarize yourself with some of the git's internals, and to some extent build your own mental model of git by experimentation, before you can use git without regular wtf-moments.

Well, there is also no tutorial that would provide the same level of understanding of the internals of Mercurial, but by some magic it seems that beginners do not need to acquire the same depth of understanding of Mercurial that they need to acquire about git, before they can start to work with Mercurial without wtf's and frustration.

Once you have a solid understanding of how DVCS's work, you can use both Mercurial and git without problems. But if you need to bring a bunch of beginners up to speed, somehow it goes easier with Mercurial.

At least, this is my experience. If someone else has experience in training teams to start using a DVCS, and has compared both git and Mercurial, and has opposite experiences, I'd be interested to hear.




I have had the same experience as you.

I used git for a couple of years and definitely had regular wtf moments. Switched to Mercurial and they just went away.

The complexity and counter-intuitive (to me, at least) nature of git's model was a major barrier to entry.

I still use git now and then because github is so popular, but for a small team on a moderate-sized project I really prefer Mercurial for its ease of use.


I simply don't agree with this. There's nothing wtf about git add, git commit, git push. Those are the commands that normal developers use. Maybe git reflog has issues but 90% of people are never going to come across them.


Which is why git literally has the person who wrote the book blogging about how he didn't understand git reset: http://git-scm.com/blog


Nothing about that deals with collaboration.

fetch/merge/pull/remotes can be pretty confusing without really wrapping your head around it.


What is wtf about git pull?

> git pull origin master

(fix conflicts)

> git commit

That's it.


1) Pull creates a merge commit. Why?

2) What's a fast forward?

3) What's a tracking branch?


1) So you can revert the merge very easily. 2) Merging without a commit. 3) A branch on a remote server that you have a copy of locally and you want to keep track of the status of remote against the local copy (who's behind and who is ahead?).

This is my basic understanding in terms of how I use git. I like Mercurial too and don't have a horse in this race.


While this somewhat underscores some complexity in git, here's something I wrote trying to explain to others why and how to avoid those merge commits:

http://michaeldehaan.net/post/116465000577/understanding-whe...


You don't need to know any of these things to get along fine.


Git Immersion (http://gitimmersion.com/) is great for getting up to speed as a beginner.


I use git every day, all day at work. It is absolutely integral to my workflow, and the only thing I know about its internals comes from people posting about them here.

Needing to know anything about git's internals to be able to use git is FUD.




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: