On Wed, Jul 22, 2015 at 2:14 PM, Gergo Tisza <gtisza(a)wikimedia.org> wrote:
GitHub is focused on small projects; for a project
with lots of patches and
committers it is problematic in many ways:
Some of the largest open source projects around are on github:
https://github.com/saltstack/salt/pulse/monthly
https://github.com/docker/docker/pulse/monthly
* poor repository management (fun fact: GitHub does
not even log force
pushes, much less provides any ability to undo them)
You can have force push to master disabled. Also their fork model (which I
dislike for other reasons) means you can limit access to the main fork to a
small set of people and require all pull requests to come from branches of
forks. It's the default model for basically every public github project.
* noisy commit histories due to poor support of
amend-based workflows, and
also because poor message generation of the editing interface (Linus wrote
a famous rant
<https://github.com/torvalds/linux/pull/17#issuecomment-5654674> on that)
You can manage that yourself through rebasing of PRs. That's completely
based on your workflow and what you require of contributors (or how you do
your merges).
* no way to mark patches which depend on each other
Sure you can. Alll PRs are also issues and can be referenced by issue
number. If you mention the issue in a comment it adds a reference for you.
* diff view works poorly for large patches
It's way better than gerrit. May not be better than phabricator, though.
* CR interface works poorly for large patches (no way
to write draft
comments so you need to do two passes; discussions can be marked as
obsolete by unrelated code changes in their vicinity)
You can delete and edit your comments. Draft comments in gerrit are an
anti-pattern IMO.
The biggest reasons to avoid github are the possibility of future lock-in
of the community, them possibly doing evil things (like source forge), and
the fact that it's a third party that's collecting information on our
community.
For all intents and purposes github is superior to gerrit and phabricator
in almost every way. It was avoided at Wikimedia in the past because of
privacy and security concerns.
- Ryan