Comparison of git hosting options
Comparisson of Software Services for Git Self-Hosting
The following comparisons were compiled on or about 2016-08-17 by the Peers Community. Many thanks to them and Bill A. for this info.
August 2016 | Gogs | GitLab CE | Pagure | Kallithea | Phabricator | Launchpad | FusionForge | Vervis | Trac | GitBucket | CodingTeam | |
Live demo instance | http://try.gogs.io | http://gitlab.com/explore | https://stg.pagure.io/ | http://kallithea-scm.org/repos | http://admin.phacility.com | http://launchpad.net | http://fusionforge.org/projects/fusionforge/ | http://dev.seek-together.space | http://trac.edgewall.org/demo-1.0 | http://gitbucket.herokuapp.com (root/root) | http://codingteam.net | Live demo instance |
Language | Go | Ruby | Python | Python | PHP | Python | PHP | Haskell | Python | Scala | PHP | Language |
Test suite | FAIL | PASS | PASS | PASS | PASS - E2E | FAIL | PASS | PASS (core) | FAIL | Test suite | ||
Copyleft License | FAIL - MIT | FAIL - MIT | PASS - GPLv2+ | PASS - GPLv3 | FAIL - Apache 2.0 | PASS - AGPL | PASS - GPL2+ | FAIL - CC0 (standalone/binary release would be GPL though because depends on Darcs and Pandoc which have GPL libraries) | FAIL - Modified BSD | FAIL - Apache | PASS - AGPL | Copyleft License |
Free JavaScript | PASS | PASS | PASS | PASS | FAIL | PASS | PASS - no JS at all | PASS | PASS | PASS - (except for google analytics) | Free JavaScript | |
Are the developers libre-concious? (or are they "open source"?) | FAIL - (Independent) | FAIL - (GitLab) | PASS - (Fedora) | PASS - (Software Freedom Conservancy) | FAIL - (faebook/phacility) | FAIL - (Canonical) | PASS - (FSF France) | PASS - (Independnet) | PASS - (Independnet) | ? (Independent) (needs feedback) | PASS - (Independnet) | Are the developers libre-concious? (or are they "open source"?) |
Does NOT require CLA for contributions | PASS - (they had one for a day and then removed it) | FAIL - https://gitlab.com/help/legal/individual_contributor_license_agreement.md | PASS - CLA is very liberal - it is not a copyright assignment https://fedoraproject.org/wiki/Legal:Fedora_Project_Contributor_Agreement | PASS - contribution guidelines are similar to Pagure but not formal | FAIL - (is not a copyright assignment but they reserve the right to dual licence permissive) | PASS | PASS | PASS | PASS | PASS | Does NOT require CLA for contributions | |
Can disable 3rd party services (or uses none) | FAIL - Slack (mandatory - WONTFIX), Gravatar (optional), CDNs to serve libraries (optional) | FAIL - Google reCAPTCHAS and other Google CDN. Social auth (google, twitter, github, bitbucket). Asks users for their "social" accounts (I'm afraid they won't remove this "feature") | PASS - libravatar or gravatar (optional) openID (optional) | PASS - gravatar (optional) | FAIL - reCAPTCHAS, Google auth, cloudfront.net (need feedback), AWS (probably optional) | PASS - need more feedback | PASS - (gravatar, trivialdev.com) | PASS - Libravatar | PASS - (needs feedback) | PASS - Omnipresence, Google Analytics (on their website at least) | Can disable 3rd party services (or uses none) | |
Issue tracker | PASS | PASS | PASS | FAIL - (proposed - but can integrate external tracker) | PASS | PASS | PASS | PASS | PASS | PASS | PASS | Issue tracker |
Gogs | GitLab CE | Pagure | Kallithea | Phabricator | Launchpad | FusionForge | Vervis | Trac | GitBucket | CodingTeam | ||
Milestones / Roadmap | PASS | PASS | PASS | FAIL | PASS | PASS | FAIL | PASS | PASS | Milestones / Roadmap | ||
Forks and Merge Requests | PASS | PASS | PASS | PASS | FAIL - (couldn't find it) | FAIL - (only within teams) | FAIL - (forks only - pull requests propsed) | FAIL | FAIL | PASS | FAIL | Forks and Merge Requests |
On-site alerts | FAIL | FAIL | FAIL | FAIL - it does appear that this feature is in progress because admins do get on-site alerts and issue comments auto-complete @mantions | PASS | FAIL | FAIL | FAIL | FAIL | FAIL | On-site alerts | |
External alerts | PASS - Webhooks, Email (push only) | PASS - Email, RSS | PASS - Webhooks, Email | PASS - RSS | PASS - Email | PASS - Email, Atom | PASS - Email, RSS | FAIL | PASS - Email, RSS | PASS - Webhooks, Email, RSS | PASS - Webhooks, Email, XMPP, RSS, Atom | External alerts |
Public API | PASS | PASS | PASS | PASS | PASS | FAIL - (Issues only - via plugin) | PASS (can use curl etc. for modifying actions, since there's no JS and the web API is plain RESTful | PASS - (GitHub compatible) | FAIL | Public API | ||
Code viewer | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | Code viewer |
Diff viewer | PASS | PASS | PASS | PASS | PASS | PASS | PASS | FAIL | PASS | PASS | PASS | Diff viewer |
History viewer | PASS | PASS | FAIL | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | History viewer |
Blame viewer | FAIL | PASS | FAIL | FAIL | PASS | FAIL | FAIL | FAIL | PASS | PASS | FAIL | Blame viewer |
Raw viewer (or cherry-pick files) | PASS | PASS | PASS | PASS | PASS | PASS | FAIL | PASS | PASS | PASS | Raw viewer (cherry-pick files) | |
Markdown (aside from wiki) | PASS | PASS | PASS | FAIL | FAIL | PASS | PASS | PASS | PASS | PASS - not markdown but HTML on project description, wiki, and issues | Markdown (aside from wiki) | |
Releases (or binary hosting) | PASS | FAIL - (need feedback) | PASS | PASS | FAIL | PASS | PASS | FAIL | FAIL | FAIL | PASS | Releases (or binary hosting) |
Wiki | PASS | PASS | FAIL - (documentation via HTML) | PASS | PASS | FAIL | PASS | PASS | PASS | PASS | PASS | Wiki |
Project Forums | FAIL | FAIL | FAIL | FAIL | FAIL | PASS | FAIL | FAIL | PASS | Project Forums | ||
Code snippets / pastebin | FAIL | PASS | FAIL | PASS | FAIL | PASS | FAIL | FAIL | PASS | PASS | Code snippets / pastebin | |
Federation | FAIL - (WONTFIX) | FAIL | PASS - (allows PR from remote instance) | FAIL | FAIL | FAIL | FAIL | PASS - (WIP core feature) | FAIL | FAIL | PASS - (allows cross-forge searching and forkin?) | Federation |
Gogs | GitLab CE | Pagure | Kallithea | Phabricator | Launchpad | FusionForge | Vervis | Trac | GitBucket | CodingTeam | ||
Private repos | PASS | PASS | PASS | PASS | PASS | FAIL - (premium feature) | PASS | FAIL | FAIL | PASS | PASS | Private repos |
VCS supported | Git | Git | Git | Git, Mercurial | Git, Mercurial, SVN | Git, Bazaar | Bazaar, CVS, Darcs, Git, Mercurial, and Subversion | Git, Darcs | SVN and Git and plugins for Mercurial, Bazaar, Darcs, Perforce, Monotome and CVS | Git | SVN, Git, Mercurial | VCS supported |
Already works with LibreJS | FAIL | FAIL | FAIL | FAIL | FAIL | FAIL | FAIL | PASS | FAIL | FAIL | PASS - Almost, besides google analytics only 2 pages do not | Already works with LibreJS |
Works without JavaScript | FAIL - Mostly good, but some important features don't | FAIL - cannot register without JS | PASS - except branch selector | FAIL | FAIL - Mostly good, but there are some dropdown menus that don't | FAIL - (gitweb) | PASS | PASS | FAIL - Mostly good, but there are many dropdown menus that don't work without JS | PASS | Works without JavaScript | |
Does NOT require non-free plugins (eg Flash, Silverlight, Facebook) | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | Does NOT require non-free plugins (eg Flash, Silverlight, Facebook) |
License selection when creating new repo | PASS (free licenses only) | FAIL | FAIL - (not yet?) | FAIL | FAIL | PASS | PASS - (free licenses only) | FAIL | FAIL | FAIL | PASS - (license is mandatory - free licenses only) | License selection when creating new repo |
Gogs | GitLab CE | Pagure | Kallithea | Phabricator | Launchpad | FusionForge | Vervis | Trac | GitBucket | CodingTeam | ||
Allows users to export data | FAIL - (WONTFIX) | PASS | PASS - each project has 4 git repos: * sources * docs * tickets metadata * PRs metadata |
FAIL | FAIL - (need feedback) | PASS - (via plugin) | FAIL | FAIL? | FAIL | PASS - (if you host your own federated server) | Allows users to export data | |
Use libgit | FAIL - Forks all commands to git binary | PASS | PASS - libgit2 (pygit2) | FAIL | FAIL | FAIL | PASS - Uses hit (git repo format impl in Haskell) for repo view and git binary for pull&push | PASS - libgit2 (pygit2) | FAIL | Use libgit | ||
Good Performance | PASS | FAIL | PASS | PASS - (optional async request queues) | PASS | PASS | PASS | PASS | demo instance is rather slow (need feedback) | PASS | Good Performance | |
Acceptable UI (by user vote) | PASS | PASS | PASS | FAIL | FAIL | FAIL | FAIL | FAIL | FAIL | FAIL | PASS | Acceptable UI (by user vote) |
Responsive UI (does it work on smartphones?) | FAIL (very buggy) | PASS | PASS - some pages have small issues | FAIL | PASS | FAIL | FAIL | PASS - few minor issues that should be easily fixable | FAIL - partially responsive, but many pages have issues | FAIL - mostly works but like Gogs forcibly removes horizontal scrollbars, making the pages with issues completely unusable | FAIL | Responsive UI (does it work on smartphones?) |
Build / CI Server Integration | FAIL | PASS | PASS | FAIL | PASS | PASS | PASS | FAIL | FAIL | FAIL | 'Build / CI Server Integration | |
Dogfooding | FAIL - https://github.com/gogits/gogs | PASS - https://gitlab.com/gitlab-org/gitlab-ce/ | PASS - https://pagure.io/pagure | PASS - https://kallithea-scm.org/repos/kallithea | FAIL - https://github.com/phacility/phabricator | PASS - https://launchpad.net/launchpad | PASS - https://fusionforge.org/projects/fusionforge/ | PASS - https://dev.seek-together.space/s/fr33domlover/r/vervis | PASS - https://trac.edgewall.org/browser | FAIL - https://github.com/gitbucket | PASS - http://codingteam.net/project/codingteam | Dogfooding |
Gogs | GitLab CE | Pagure | Kallithea | Phabricator | Launchpad | FusionForge | Vervis | Trac | GitBucket | CodingTeam | ||
TALLY | ||||||||||||
NOTE: sums are based on a crude grep of the cell string content - PASS(+1) FAIL(-1) - so ensure that all colored cells start with one of those tokens | ||||||||||||
Pass | 19 | 23 | 27 | 20 | 13 | 15 | 25 | 18 | 20 | 17 | 27 | Pass |
Fail | 16 | 12 | 8 | 15 | 12 | 16 | 10 | 17 | 14 | 10 | 8 | Fail |
Net Points | 3 | 11 | 19 | 5 | 1 | -1 | 15 | 1 | 6 | 7 | 19 | Net Points |
NotABug Grade | 54% | 66% | 77% | 57% | 52% | 48% | 71% | 51% | 59% | 63% | 77% | NotABug Grade |
UNCERTAINTY | ||||||||||||
Margin of error (Missing entries) | 0 | 0 | 0 | 0 | 10 | 4 | 0 | 0 | 1 | 8 | 0 | Margin of error (Missing entries) |
Lowest Possible Grade | 54% | 66% | 77% | 57% | 37% | 43% | 71% | 51% | 57% | 49% | 77% | Lowest Possible Grade |
Highest Possible Grade | 54% | 66% | 77% | 57% | 66% | 54% | 71% | 51% | 60% | 71% | 77% | Highest Possible Grade |
NOTABLE RESULTS | ||||||||||||
* Vervis is exempted from this list because it is still alpha - but notably it scored higher than some Unique Properies: * CodingTeam and Launchpad are the only ones that are AGPL * CodingTeam is the only one that is nearly librejs compatible * CodingTeam is the only one that has federation * CodingTeam is the only one that requires all repos to have a license * FusionForge is the only one that has an agile issue tracker Unique Missing Properies: * Pagure is the only one that does not have per-file history view * Kallithea is the only one that does not have any sort of issue tracker (but integrates external trackers) * Launchpad is the only one that does not have some sort of external nofitications Possibly Unique Properies (missing data on some): * Gogs and CodingTeam are probably the only ones that do not have a test suite (missing data for Phabricator and Launchpad) * FusionForge is probably the only one that has full E2E tests (missing data for Launchpad) * Pagure is probably the only one with complete export (missing data for Phabricator and Launchpad) * Trac is probably the only one that does not have private repos (missing data for Launchpad) * Pagure is probably the only one that does not have a wiki (but has HTML docs) (missing data for Launchpad) * Phabricator is probably the only one that has on-site alerts (missing data for GitBucket) * Kallithea is probably the only one that does not have milestones (missing data for GitBucket, Phabricator, and Launchpad) * Kallithea is probably the only one that does not render markdown (missing data for Phabricator and Launchpad) * Launchpad is probably the only one that has non-free javascript (missing data for Phabricator) * GitLab is probably the only one that has a copyright assignment agreement (missing data for Phabricator and Launchpad) * There are probably none that do not have raw file view (or cherry-pick dl) (missing data for Phabricator and Launchpad) | ||||||||||||