Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I'm a Rails developer and I prefer Mercurial over Git. However, I know that the Rails community is very pro-Git. So my question is it possible that my choice of version control system would turn back some developers?

share|improve this question

2 Answers 2

Honestly, hg and git are fairly similar. For hiring and collaborating, it shouldn't matter too much (though the workflows differ a little bit).

The big sticking point, honestly, would be GitHub. If you plan on open-sourcing your projects, GitHub is the way to go. It's a massive community, and it's frequently searched for libraries and projects by a huge amount of developers. It seems ridiculous that third-party repository hosting would have an effect on which source control systems to use, but if you're an independent dev looking to make a name for yourself, there's no better way to go (right now) than GitHub.

(Apologies for making this sound like a GH advertisement - I am in no way affiliated with GitHub).

share|improve this answer
    
Yeah, I think it's important to mention GitHub (and of course I would use it if only for the gems). I am aware that they are very similar but I have a slight preference towards Hg. –  mbillard Jul 18 '12 at 14:13
    
And that's your prerogative. Hg is a perfectly valid source control tool. It's distributed, it's fast, and there is a good community for it. Heck, StackExchange uses it (check out the FogBugz page to watch a video of Joel Spolsky speaking about FB and Kiln/Hg). –  Ryan Kinal Jul 18 '12 at 14:18
1  
Oh, also, there are tools for converting between git and hg... you could use hg for your normal dev, and then import it into git to post to GitHub. –  Ryan Kinal Jul 18 '12 at 14:19

In my opinion, you shouldn't choose a version control tool because of a service, you should choose a tool because the tool itself is what you really really need and it makes sense for you.

I guess it could come down to this: how hard do you want to allow the history of changes to be modified?. This maybe the main difference between both systems, Git lets its users go trigger-happy with bashing at the history while Mercurial is more conservative.

Although... maybe this has changed a little, as Mercurial has become better at this through phases and they can protect you from an unwanted rebase (yes, there is rebase in Mercurial, see the rebase extension and the histedit extension which is now officially supported). Mercurial has less power tools, like git obliterate, still, chances are that you won't need the extra power (which IMHO, can sometimes lead to bad practices if your organization doesn't set the rules of when and why should you go at the change history).

You should also consider if the people you want to work with uses Windows, in this case I'd say Mercurial is a friendlier and more seamless experience.

Other than the previous, if you know Git you know hg (maybe with the most notable difference that Mercurial stages your changes automatically). If you know hg, you can learn Git pretty fast.

As far as repository management goes, Bitbucket is not bad at all, but I personally prefer something more governable like Rhodecode.

Finally, there is some interoperability between both systems (see HgGit and about using hg convert), so you could work with both and figure what is best for your project later. A good example is Rhodecode: the guy that maintains Rhodecode (which works well for both Git and hg) personally uses Mercurial and has a Bitbucket and a Github mirror (his main repo is in his Rhodecode instance), here are some stats:

Bitbucket mirror: 63 forks + 289 followers

Github mirror: 10 forks + 47 watchers

Don't let others hype you into something, try it out yourself and see what works for you, as you can migrate out of Mercurial into Git and viceversa if you need it.

In summary, I guess my advice would be is: keep using hg, put a github mirror, see what sticks and go with the flow.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.