On Thu, 06 Jan 2011 17:42:29 +0200, Andrei Alexandrescu <[email protected]> wrote:

What are the advantages of Mercurial over git? (git does allow multiple branches.)

We've had a discussion in #d (IRC), and the general consensus there seems to be strongly in favor of Git/GitHub. For completeness (there's been a discussion before) here are my arguments:

1) Git has the largest user base - more people will be able to get started hacking on the source immediately. (GitHub compared to DSource below, some of these also apply to Gitorious, Bitbucket, Launchpad) 2) One-click forking - you can easily publish improvements that are easily discoverable to people interested in the project. (This practically guarantees that an open-source project will never hit a dead end, as long as some people are interested in it - both occasional patches and maintained forks are easily discoverable.) 3) UI for pull requests (requests to merge changes in a forked repository upstream), with comments. 4) Inline comments (you can comment on a specific line in a commit/patch). This integrates very nicely with 3) for great code review capabilities. 5) (Unique to GitHub) The network graph allows visualizing all commits in all forks of the project. 6) GitHub is run by a commercial company, and the same infrastructure is used for hosting commercial projects. Therefore, you can expect better uptime and support. GitHub has integrated wiki, issues and downloads (all optional). One thing GitHub doesn't have that DSource has is forums. I think there is no "shame" in leaving DSource for DigitalMars projects, many large open-source projects use GitHub (see GitHub's front page).

Some existing D projects on GitHub: https://github.com/languages/D

I think Jérôme's observations of Git performance are specific to Windows. Git is expected to be slower on Windows, since it runs on top of cygwin/msys. Here's a study on the Git wiki: https://git.wiki.kernel.org/index.php/GitBenchmarks

Google has done a study of Git vs. Mercurial in 2008:
http://code.google.com/p/support/wiki/DVCSAnalysis
The main disadvantage they found in Git (poor performance over HTTP) doesn't apply to us, and I believe it was addressed in recent versions anyway.

Disclaimer: I use Git, and avoid Mercurial if I can mainly because I don't want to learn another VCS. Nevertheless, I tried to be objective above. As I mentioned on IRC, I strongly believe this must be a fully-informed decision, since changing VCSes again is unrealistic once it's done.

--
Best regards,
 Vladimir                            mailto:[email protected]

Reply via email to