Ask HN: Companies and source control
4 comments
I used mercurial for a couple of years before switching to git - mostly I didn't like git's complexity or ease of shooting yourself in the foot. I'd suspect these startups have a similar line of reasoning.
The mercurial CLI is well thought out and easy to use vs git's incredible number of commands and command line options, and is also similar to SVN which probably helps get people up to speed. Generally with hg there's one right way to do things, but many with git.
As far as shooting yourself in the foot goes, git's ability to rewrite history is great for maintaining a clean revision history even after commits are made. Rebasing is quite handy for keeping multiple branches up to date and easy to merge. But these are power tools that can result a lot of pain if they aren't used properly.
I switched to git because the extra power and flexibility was more than worth the cost, and git's branching model ends up working much better for me, but mercurial is a very nice tool!
The mercurial CLI is well thought out and easy to use vs git's incredible number of commands and command line options, and is also similar to SVN which probably helps get people up to speed. Generally with hg there's one right way to do things, but many with git.
As far as shooting yourself in the foot goes, git's ability to rewrite history is great for maintaining a clean revision history even after commits are made. Rebasing is quite handy for keeping multiple branches up to date and easy to merge. But these are power tools that can result a lot of pain if they aren't used properly.
I switched to git because the extra power and flexibility was more than worth the cost, and git's branching model ends up working much better for me, but mercurial is a very nice tool!
I was going to mention TortoiseHG as a possible reason, I've found running git on windows painful, but then I found TortoiseGit just now.
Personally I prefer Git, it's what we use here, but we don't really have a hard and fast rule - I think we have some subversion-based code trees knocking around too.
Personally I prefer Git, it's what we use here, but we don't really have a hard and fast rule - I think we have some subversion-based code trees knocking around too.
It feels like if a shop is starting from scratch, they're more likely to go with Mercurial - I'm betting the Python connection is a big reason for that, along with its comparative user-friendliness - while a shop that's migrating off SVN tends to go to git.
It seems like python people tend to go hg over git maybe the startups in question are python shops?
As far as the older companies go, they use a wide array of revision control software.
Most of the newer startups I've spoken to use Mercurial though. Anybody know why? It seems like git is the more popular public choice, and I've heard engineers say "we use hg here, but if I had a choice, I'd use git." Why then are most startups using Mercurial?