Comparison of git hosting options

From Freephile Wiki

Comparisson of Software Services for Git Self-Hosting[edit | edit source]

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. Peers is behind the free 'Not A Bug' free git hosting service.

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)