Comparison of source-code-hosting facilities
A source-code-hosting facility (also known as forge software) is a file archive and web hosting facility for source code of software, documentation, web pages, and other works, accessible either publicly or privately. They are often used by open-source software projects and other multi-developer projects to maintain revision and version history, or version control. Many repositories provide a bug tracking system, and offer release management, mailing lists, and wiki-based project documentation. Software authors generally retain their copyright when software is posted to a code hosting facilities.
General information
[edit | edit source]| Name | Developer | Initial release | Free server? | Free client? | Associated collaborative development environment | Notes |
|---|---|---|---|---|---|---|
| Assembla | Assembla, Inc. | 2005 | No | Unknown | Unknown | |
| Azure DevOps Server | Microsoft | 2012[1] | No | No | Azure DevOps Services | Most features are free for open source projects or teams of 5 members or less[2] |
| Bitbucket | Atlassian | 2008 | No | No | Atlassian BitBucket Server, JIRA and Confluence | Denies service to Cuba, Iran, North Korea, Sudan, Syria[3] |
| CloudForge | CollabNet | 2012 | No | Unknown | Unknown | |
| Codeberg | Codeberg e.V.[4] | 2019[5] | Yes | Yes | Forgejo | Codeberg e.V. is a non-profit which operates a public Forgejo-based software forge and bug tracker, and related services such as Codeberg Pages, a Weblate translation server, and CI/CD features via Woodpecker CI. |
| Gitea | CommitGo, Inc.[6] | 2016-12[7] | Yes | Yes | Gitea | Gitea is an open-source software tool funded on Open Collective that is designed for self-hosting, but also provides a free first-party instance. |
| Gitee | OSChina (CN) | 2013 | Gitee is a proprietary online forge. | |||
| GForge | The GForge Group, Inc.[8] | 2006 | Partial | Yes | Cloud version – free up to 5 users. On-premises version – free up to 5 users. | GForge is free for open source projects. |
| GitHub | GitHub, Inc. (A subsidiary of Microsoft Corporation) | 2008-04 | No | Yes | Unknown | Denies service to Crimea, North Korea, Sudan, Syria[9] |
| GitLab | GitLab Inc. | 2011-09[10] | Partial[11] | Yes[12] | GitLab FOSS – free software GitLab Enterprise Edition (EE) – proprietary |
Denies service to Crimea, Cuba, Iran, North Korea, Sudan, Syria[13] |
| GNU Savannah | Free Software Foundation | 2001-01 | Yes | Yes | Savane | For use by projects with GPL compatible licenses, subject to staff approval.
Code access review.[14] |
| Helix TeamHub | Perforce Software | 1995 | No | No | Cloud version – free up to 5 users. On-premises version requires a license. | Free cloud version has no limits on projects within 5gb storage limit.
On-premises version has DevOps pipeline technology and free replicas. |
| Launchpad | Canonical | 2004 | Yes | No | Launchpad | Supports Bazaar and Git for version-controlled repository hosting.[15][16] |
| OSDN | OSDN K.K. | 2002–04 | Unknown | Yes | Unknown | For open-source projects only.[17] Ad-supported. Defunct as of April 9, 2025. |
| Ourproject.org | Comunes Collective | 2002 | Yes | Yes | FusionForge | For free software, free culture and free content projects. |
| OW2 | OW2 | 2008 | No | No | GitLab | Oriented on middleware technology. |
| Phabricator | Phacility, Inc. | 2010 | Yes | Yes | Phabricator | End of life.[18] |
| SEUL | Unknown | 1997-05 | Unknown | No | Unknown | |
| SourceForge | Slashdot Media | 1999-11 | Yes[19][20] | Yes | Apache Allura | For use by open-source projects.[21] Ad-supported. Subject to American export restrictions, so denies service to Cuba, Iran, North Korea, Sudan, and Syria.[22] |
| Name | Manager | Established | Server side: all free software | Client side: all-free JS code | Developed or used CDE | Notes |
Features
[edit | edit source]| Name | Code review | Bug tracking | Web hosting | Wiki | Translation system | Shell server | Mailing list | Forum | Personal repository | Private repository | Announce | Build system | Team | Release binaries | Self-hosting |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Assembla | Yes[23] | Yes | Yes | Yes | Yes | No | No | No | Yes | Yes[24] | Yes | Yes | Yes | Unknown | No |
| Azure DevOps Server | Yes | Yes | Yes | Yes | No | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Commercially (Azure DevOps Server) |
| Bitbucket | Yes[25] | Yes[a] | Yes[26] | Yes | No | No | No | No | Yes | Yes[b] | No | Yes[27] | Yes | No[28] | Commercially (Bitbucket Server formerly Stash)[c] |
| Buddy | Yes | Yes | No | No | No | No | Yes | Yes | Yes | Yes | Yes | Yes[d] | Yes | Yes | Yes |
| CloudForge | Unknown | Yes | Yes | Yes | No | No | No | No | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | No |
| Codeberg | Yes | Yes | Yes | Yes | Yes | No | No | No | Yes | Yes[e][29] | Unknown | Yes[30] | Yes | Yes | Yes (Forgejo) |
| GForge | Yes | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| Gitea | Yes | Yes | No | Yes | No | No | No | No | Yes | Yes | Unknown | Yes[31] | Yes | Yes | Yes |
| GitHub | Yes[32] | Yes[33][f] | Yes[34] | Yes | No | No | No | No | Yes | Yes | Yes | Yes[35] | Yes | Yes | Commercially (GitHub Enterprise) |
| GitLab | Yes[36] | Yes | Yes[37] | Yes | No | No | No | No | Yes | Yes | Yes | Yes[38] | Yes | Yes[39] | Yes[g] |
| GNU Savannah | Yes[40] | Yes | Yes | No | No | Yes | Yes | No[41] | No | No | Yes | No | Yes | Unknown | Yes |
| Helix TeamHub | Yes[42] | Yes | No | Yes | No | No | Yes | Yes | Yes | Yes | No | Yes, with hooks. Jenkins, TeamCity, etc. | No | Yes | Yes |
| Kallithea | Yes | No | Yes | No | No | Unknown | No | No | Yes | Yes | No | No | Yes | Yes | Yes |
| Launchpad | Yes | Yes | No | No | Yes | No | Yes | No | Yes | Yes[h] | Yes | Yes[i] | Yes | Unknown | Yes |
| OSDN | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | No | Yes | No | Yes | Yes | No |
| Ourproject.org | Unknown | Yes | Yes | Yes | No | Unknown | Yes | Yes | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Yes |
| Phabricator | Yes | Yes | Yes | Yes | Unknown | Yes | Unknown | Yes | Unknown | Unknown | Unknown | Unknown | Unknown | Unknown | Yes |
| RhodeCode | Yes | No | Yes | No | No | Unknown | No | No | Yes | Yes | Yes | No | Yes | Yes | Yes |
| SourceForge | Yes | Yes | Yes | Yes | No | Yes | Yes | Yes | Yes | Yes[j] | Yes | No | Yes | Yes | Yes |
| Name | Code review | Bug tracking | Web hosting | Wiki | Translation system | Shell server | Mailing list | Forum | Personal repository | Private repository | Announce | Build system | Team | Release binaries | Self-hosting |
Version control systems
[edit | edit source]| Name | CVS | Git | Hg | SVN | BZR | TFVC | Arch | Perforce | Fossil |
|---|---|---|---|---|---|---|---|---|---|
| Assembla | No | Yes | No | Yes | No | No | No | Yes | No |
| Azure DevOps Server | No | Yes | No | No | No | Yes | No | No | No |
| Bitbucket | No | Yes | Until Feb 2020[c] | No | No | No | No | No | No |
| Buddy | No | Yes | No | No | No | No | No | No | No |
| CloudForge | No | Yes | No | Yes | No | No | No | No | No |
| Codeberg | No | Yes | No | No | No | No | No | No | No |
| GForge | Yes | Yes | No | Yes | No | No | No | No | No |
| Gitea | No | Yes | No | No | No | No | No | No | No |
| GitHub | No | Yes | No | Partial, until Jan 2024[43][44] | No | No | No | No | No |
| GitLab | No | Yes | No | No | No | No | No | No | No |
| GNU Savannah | Yes | Yes | Yes | Yes | Yes[45] | No | Yes | No | No |
| Kallithea | No | Yes | Yes | No | No | No | No | No | No |
| Launchpad | Import only | Yes[16][46] | Import only[47] | Import only | Yes | No | No | No | Unknown |
| OSDN | Yes | Yes | Yes | Yes | Yes | No | No | Unknown | Unknown |
| Ourproject.org | Yes | No | No | Yes | No | No | No | Unknown | Unknown |
| OW2 | Dropped[48] | Yes | No | Dropped[48] | No | No | No | No | No |
| Helix TeamHub | No | Yes | Yes | Yes | No | No | No | Yes | No |
| Phabricator | No | Yes | Yes | Yes | No | No | No | No | No |
| RhodeCode | No | Yes | Yes | Yes | No | No | No | No | No |
| SEUL.org | Yes | No | No | Yes | No | No | No | Unknown | Unknown |
| SourceForge | Dropped[49] | Yes | Yes | Yes | Dropped[50] | No | No | Unknown | No[51] |
| Name | CVS | Git | Hg | SVN | BZR | TFVC | Arch | Perforce | Fossil |
Popularity
[edit | edit source]| Name | Users | Projects |
|---|---|---|
| Assembla | Unknown | 526,581+[52] |
| Bitbucket | 5,000,000[53] | Unknown |
| Buddy | Unknown | Unknown |
| CloudForge | Unknown | Unknown |
| Codeberg | 110,000[54] | 138,000[54] |
| Gitea | Unknown | Unknown |
| GitHub | 94,000,000[55] | 330,000,000[55] |
| GitLab | 31,190,000[56] | 546,000[57][k] |
| GNU Savannah | 93,346[58] | 3,848[58] |
| Launchpad | 3,965,288[59] | 40,881[60] |
| OSDN | 54,826[61] | 6,294[61] |
| Ourproject.org | 6,353[62] | 1,846[62] |
| OW2 | Unknown | Unknown |
| SEUL | Unknown | Unknown |
| SourceForge | 3,700,000[63] | 500,000[63] |
| Name | Users | Projects |
Discontinued: CodePlex, Gna!, Google Code.
Specialized hosting facilities
[edit | edit source]The following are open-source software hosting facilities that only serve a specific narrowly focused community or technology.
| Name | Ad-free | CVS | Git | SVN | Arch | Notes |
|---|---|---|---|---|---|---|
| Drupal | Yes | No | Yes | No | No | Only for Drupal related projects. |
| freedesktop.org | Yes | No | Yes | No | No | Only for interoperability and shared base technology for free software desktop environments on Linux and other Unix-like operating systems, including the X Window System (X11) and cairo (graphics). |
| mozdev.org | Yes | Yes | Unknown | No | No | Only for Mozilla-related projects. Defunct as of July 2020. |
| Name | Ad-free | CVS | Git | SVN | Arch | Notes |
Former hosting facilities
[edit | edit source]- Alioth (Debian) – In 2018, Alioth has been replaced by a GitLab based solution hosted on salsa.debian.org. Alioth has been finally switched off in June 2018.
- BerliOS – abandoned in April 2014[64]
- Betavine – abandoned somewhere in 2015.
- CodeHaus – shut down in May 2015[65]
- CodePlex – shut down in December 2017.
- Fedora Hosted – closed in March 2017[66]
- Gitorious – shut down in June 2015.
- Gna! – shut down in 2017.
- Google Code – closed in January 2016, all projects archived. See http://code.google.com/archive/.
- java.net – Java.net and kenai.com hosting closed April 2017.
- OSDN - shut down in April 2025.[67]
- Phabricator – wound down operations 1 June 2021, all projects continued to be hosted with very limited support after 31 August 2021.[18]
- Tigris.org – shut down in July 2020.[68]
- Mozdev.org - shut down in July 2020.
See also
[edit | edit source]Lua error in mw.title.lua at line 392: bad argument #2 to 'title.new' (unrecognized namespace name 'Portal').
- Comparison of version-control software
- Distributed version control
- Forge (software)
- List of free software project directories
- List of version-control software
- Source code escrow for closed-source software
- Version control (source-code-management systems)
Notes
[edit | edit source]- ^ Anyone can submit Bug Reports without logging in.
- ^ Limited to 5 users on free plan (see Pricing – bitbucket.org)
- ^ a b Self hosted version is known as BitBucket Server and only supports Git repositories
- ^ Builds are run in Docker containers
- ^ Codeberg is only for public open-source code, private repositories exist but are not officially permitted except as needed to support FLOSS projects
- ^ Requires one to log in to report a Bug.
- ^ Has an open source FOSS edition and commercial Enterprise Edition
- ^ Currently only available for security vulnerability updates
- ^ Ubuntu
- ^ Private repositories can be used to set up a project before going live. However, SourceForge requires that the project remains open source. See SourceForge Support.
- ^ GitLab is not fundamentally organized by projects, so the count is somewhat difficult.
References
[edit | edit source]- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).}}
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Hosting requirements [Savannah]. Savannah.gnu.org. Retrieved 2015-04-01.
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ – Using Mercurial Queues And Bitbucket.org Archived 28 December 2009 at the Wayback Machine
- ^ Publishing a Website on Bitbucket – Bitbucket – Atlassian Documentation Archived 23 September 2013 at the Wayback Machine. Confluence.atlassian.com. Retrieved 2013-09-21.
- ^ Bitbucket Pipelines
- ^ Issue #11404 – Bitbucket equivalent of GitHub Releases? (BB-13572)
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ no file attachments, but images can be embedded GitHub Issue Tracker – GitHub
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Collaborating on GitHub with Subversion. Github.com (26 June 2012). Retrieved 2015-04-01.
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ SourceForge docs for bazaar, Bazaar is no longer available for new projects, they only offer limited support for Bazaar for projects previously using it on the Classic SourceForge system (1 July 2013).
- ^ Feature Request: Fossil Repositories
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ People and teams in Launchpad. launchpad.net. Retrieved 2017-10-18.
- ^ Projects registered in Launchpad. launchpad.net. Retrieved 2017-10-18
- ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).