Alex Rivera | Logout

Git, Hg or Bzr — Which to recommend to a new user?

Asked 2011-01-20T23:05:46.817
11

I have some friends that are potentially interested in learning to use a version control system for our upcoming master theses (Latex document and various programming). I'm not talking about anything huge and complicated here, just to use it for backup, looking at old revisions and some basic branching and merging.

However, I think it's a good idea to choose one that's somewhat easy to learn for a beginner. So the question is, which version control system would you recommend to someone that's new to such things to learn?

Personally I've been using Git and Mercurial a bit and at the moment I think I'm leaning towards Mercurial. I haven't tried Bazaar though.

So far this is my impressions on features suitable for new users:

Mercurial

Pros:

  • Revision numbering
  • Easy to checkout an old commit, work on it and merge it in
  • Easy merging directly with a mergetool
  • Easy branching (?)
  • Nice plugins like glog

Cons:

  • Branches and bookmarks can both be used for what Git calls branching - could be a bit confusing
  • Doesn't give much information about what's done/wrong when a command is executed

Git

Pros:

  • Full control (gives the impression of it at least)
  • Detailed help and information when something goes wrong

Cons:

  • Some difficult concepts (like the staging area)
  • Some branching operations can be a bit difficult

Bazaar

Haven't tried it...

What do you think? Please follow the good subjective guidelines here when answering.

Edit
Report

2 Answers

8

What you assumed to be one of Mercurial pros - revision numbering - is considered to be a disadvantage by many people. And what you assumed to be git disadvantage - staging area; being difficult concept - is considered to be advantage by many people.

So this is not that simple.

But if you ask me - Mercurial is James Bond, as one of the bloggers called it - it's elegant and higher-level than git, at least on the surface. Plus its commands are pretty much like subversion commands, therefore new users who are svn converts might learn Mercurial much faster than git.

answered 2011-01-21T00:30:38.767
3

I'll pass on my experience with Git and Mercurial, in both cases starting from scratch.

I decided to move my team (5 top and disciplined developers, including myself) from ClearCase (UCM, but they'd all used both base ClearCase and UCM over several years). Having looked at all 3 of Mercurial, Git and Bazaar I settled on Mercurial (influenced heavily by PEP 374).

Within a week I felt confident enough to introduce Mercurial into the team processes and people started moving over to using it. The largest difficulty was making sure I'd be able to continue to push changes upstream to ClearCase. The whole team quickly adopted it and we noticed an immediate change in the way we worked.

We used very branchy development (named branch per task) - essentially inherited from how ClearCase worked, but we found it was a good way for the team to work (note - a lot of Hg users would not like this branching strategy). A developer would work on a task and send it to someone for review. Whereas previously the reviewer would go through and make notes, etc and send them back to the original developer, with Mercurial we found we would just switch branches, review, then get the author over and make the changes together in the reviewer's environment (pair programming) and commit them to the same named branch.

All up, total time for the entire team to get up to speed (with me as mentor starting from scratch) was about 2 weeks.

My experience with Git is more recent - I only started using it about 2 months ago (and so already had considerable experience with Mercurial). However, I did start using it about 2 months ago, and I'm only now starting to feel at all comfortable with it. The biggest thing that makes me uncomfortable with Git is that Git assumes you will be editing history and makes it easy. I have to regularly read parts of the git help/manual to check

answered 2012-06-10T23:03:21.467

Your Answer