Moving to D

Vladimir Panteleev vladimir at thecybershadow.net
Thu Jan 6 16:55:10 PST 2011


On Thu, 06 Jan 2011 17:42:29 +0200, Andrei Alexandrescu  
<SeeWebsiteForEmail at erdani.org> 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:vladimir at thecybershadow.net


More information about the Digitalmars-d mailing list