On Wed, Jul 22, 2015 at 2:14 PM, Gergo Tisza gtisza@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