Moving to D
Russel Winder
russel at russel.org.uk
Fri Jan 7 02:37:17 PST 2011
On Fri, 2011-01-07 at 02:55 +0200, Vladimir Panteleev wrote:
[ . . . ]
> 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:
If the active D contributors are mostly in favour of Git then go for it.
Personally I would go with Mercurial but a shift to DVCS is way, way
more important than which DVCS!
> 1) Git has the largest user base - more people will be able to get started
> hacking on the source immediately.
As with all statistics, you can prove nigh on any statement. I doubt
Git actually has the largest user base, but it does have the zeitgeist.
O'Reilly declared Git the winner in the DVCS race three years ago, and
all the Linux, Ruby on Rails, etc,. hype is about Git. On the other
hand Sun/Oracle, Python, etc., etc. went with Mercurial.
Mercurial and Bazaar are a smoother transition from Subversion, which
may or may not be an issue.
> (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.)
I think this is just irrelevant hype. The real issue is not how easy it
is to fork a repository, the issue is how easy is it to create
changesets, submit changesets for review, merge changesets into Trunk.
I guess the question is not about repositories, it is about review
tools: Gerrit, Rietveld, etc. (Jokes about Guido's choice of the name
Rietveld should be considered passé, if not part of the furniture :-)
(cf. http://en.wikipedia.org/wiki/Gerrit_Rietveld)
> 3) UI for pull requests (requests to merge changes in a forked repository
> upstream), with comments.
Launchpad certainly supports this as, I think BitBucket does. It is an
important issue.
> 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.
Better still use a changeset review processing tool rather than just a
workflow?
> 5) (Unique to GitHub) The network graph allows visualizing all commits in
> all forks of the project.
Do the Linux folk use this? I doubt it, once you get to a very large
number of forks, it will become useless. A fun tool but only for medium
size projects. I guess the question is whether D will become huge or
stay small?
> 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.
Launchpad and BitBucket are run by commercial companies.
> GitHub has integrated wiki, issues and downloads (all optional). One thing
> GitHub doesn't have that DSource has is forums.
Launcpad and BitBucket have all the same.
> I think there is no "shame" in leaving DSource for DigitalMars projects,
> many large open-source projects use GitHub (see GitHub's front page).
Everyone complains about DSource so either change it or move from it.
> 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.
I have to disagree that your presentation was objective, but let us
leave it aside so as to avoid flame wars or becoming uncivil.
In the end there is a technical choice to be made between Git and
Mercurial on the one side and Bazaar on the other since the
repository/branch model is so different. If the choice is between Git
and Mercurial, then it is really down to personally prejudice,
tribalism, etc.
If the majority of people who are genuinely active in creating
changesets want to go with Git, then do it. Having interminable debates
on Git vs. Mercurial is the real enemy.
NB This is a decision that should be made by the people *genuinely*
active in creating code changes -- people like me who are really just D
users really do not count in this election.
--
Russel.
=============================================================================
Dr Russel Winder t: +44 20 7585 2200 voip: sip:russel.winder at ekiga.net
41 Buckmaster Road m: +44 7770 465 077 xmpp: russel at russel.org.uk
London SW11 1EN, UK w: www.russel.org.uk skype: russel_winder
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part
URL: <http://lists.puremagic.com/pipermail/digitalmars-d/attachments/20110107/9e5639c8/attachment.pgp>
More information about the Digitalmars-d
mailing list