GitLab CI makes it easy to set up CI and deployment for projects in GitLab. It supports parallel testing, multiple platforms, Docker containers and streaming build logs.
It has private/public repositories, roles for users (master, developer, reporter, guest). All of these can be set from the user interface. Same permissions set for the UI work for the SSH as well.
GitLab integrates with multiple third-party services to allow external issue trackers and external authentication.
GitLab can integrate with many third-party apps to allow external issue tracking and authentication. It can also be integrated with several services, such as:
Slack
Campfire
Flowdock
Hipchat
Gemnasium
Pivotal Tracker
The default docker.io registry is the docker hub but you can also login to other docker registries. And GitLab provides one for all Repos that make use of this feature.
The Lightweight Directory Access Protocol is an application protocol for accessing and maintaining distributed directory information services over an Internet Protocol (IP) network.
GitLab EE adds additional functionality over CE such as support for multiple LDAP servers and group sync.
GitLab's UI is clean and intuitive. Each view is designed to not fill the screen with useless information.
It displays the activity in a feed-type way in the most prominent part of the view. On top of that, there's a toolbar with buttons which can filter this feed by pushes, merge events or comments.
On the left, there's a menu that displays all the links that take you to the different views. For example, a file directory which displays all the files in that repo, a commit view which displays all the commits in cronological order, a network and a graph view that display important information graphically etc...
All these details make GitLab's UI extremely intuitive and easy to use, no view is overflown with information and every view displays only the most useful and crucial information needed at that time.
A single instance can handle up to 40,000 users (requires a server with 64 core CPU and 64 GB of RAM) and it can run on multiple application servers to grow beyond that.
EE is the commercial Enterprise Edition, CE is the free and OpenScource Community Edition. Features such as Cycle Analytics were first a part of the EE and are now also available in CE.
A protected master branch means that no code can be merged to master without passing a code review by an authorised developer. With GitLab this comes out of the box.
While you can search for users or projects, you cannot search for a filename. This makes GitLab's search one of the weak points in an otherwise great tool.
Bitbucket offers line comments on a pull request’s diff, and that’s it. Comments can’t be placed in parts of files expanded from the diff; comments can’t be marked as resolved, and disappear entirely when their associated line changes; there are no statuses.
While GitHub's UI is extremely simple to understand and very polished, BitBucket lacks a bit on this category. With a design that seems old and not as pleasant to look at.
BitBucket is developed and maintained by Atlassian, which is not an unknown venture, especially for developers. Atlassian has a great number of other products used by million of users worldwide, including JIRA, HipChat, Confluence and Stash.
All of them loved by the notoriously picky developer community, which means that Atlassian has gained a great deal of goodwill from their users.
Atlassian, the company behind BitBucket is also behind SourceTree, a free application for Windows and Mac wich works as a client for both Git and Mercurial which can be connected to BitBucket and other code hosting services.
GitHub has in the past removed content from their site that is not breaking their TOS. Examples such as the E Plus Equality project as well as the operation disrespectful nod repository have been removed despite not breaking any site rules and appear to have been done out of employee distaste.
Considering the amount of content allowed on the site that is full of rude or vulgar humor, to single out these projects for removal shows employee politics and agendas take the front seat over an open and tolerant environment. Which is quite contradictory to open source ideals.
Although Git is a DVCS, it's easy to get tied to GitHub especially when using one of the many external services that only integrate with it. There are not good monopolies so it's a serious risk for the whole ecosystem to tie itself to this non-{libre/open source} non-selfhostable platform.
Any user can fork a project, make changes, and submit those changes back to the original project as a pull request. Pull requests allow for instant code reviews, where project owners, maintainers, and other interested parties can view and comment on your changes, then merge them back into the original project with a single click.
GitHub has integrated issue tracking that make hunting and solving bugs easy. Each project's issues page can be filtered by closed issues, assignees, labels and milestones. Issues are also sortable by age, number of comments and update time.
GitHub sometimes acts also as a social network for coders. It has different features that allow users to follow or star their favorite projects. The user's account page is like a Facebook wall with projects, pull requests, forks, pushes and merges all displayed. The main dashboard after logging in also displays news from followed developers or projects.
GitHub is the largest host in the world for open source projects. Developers from all over the world fork and work on countless projects hoset on it. For this, GitHub has some excellent features that help both new and experienced devs to find and commit to open source projects of any kind.
GitHub's UI is clean and intuitive. Each view is designed to not fill the screen with useless information.
For example, the repository view displays only the most crucial data about that repo - on the top it displays the number of commits, branches, releases and contributors. When clicked, each of them will take the user to a page that displays more detailed information.
Gists is GitHub's way to easily share code, text snippets or any kind of information with the world. They are an easy way to share text and they work as Git repos, which means that they are forkable and versioned. They are also fully compatible with Git.
GitHub emulates a bridge on top of git repos, therefore every git repository hosted on GItHub can be accessed with a svn client without losing any features.
No chance of it getting sold to some company that would make it worst in order to get more money out of it.
Also there is less of a chance it will disappear because some guy loses the motivation to maintain it because it is managed by multiple people.
Every project hosted on SourceForge can have discussion boards, and issue tracker, a tab for screenshots and something most code hosts don't have: a Shell access. Developers can also websites for their projects for free on SourceForge, as well as a Wiki for documentation.
The downside to this is that there is a lot of clutter in the beginning, and it may take a long time for beginners to check what they need and what they don't and where everything is.
SourceForge makes it easy for users to download software hosted on it. It detects the user's platform and provides them with an appropriate version. They also have an extensive mirror network all over the world, which helps speed up downloads.
For developers, they offer download stats which are grouped by platform and by region.
Compared to other hosts, Sourceforge's UI feels messy and cluttered. Ads take up large portions of screen real estate, and feature creep has resulted in buttons and links everywhere that can sometimes make it difficult to find what you're looking for.
SourceForge offers a comprehensive business software comparison engine that lets you compare business software by category, price, features, integrations, alternatives, region, and more.
One of the main points of open source software is that users are getting a trustworthy product which they can trust, SourceForge has violated this trust in the past. Every project that is downloaded from SourceForge comes with it's (closed-source) installer which attempts to install third-party software in the computer. These third-party software, more often than not are adware or malware.
Dice, the new owners of SourceForge have chosen this as a way of monetisation and they strongly encourage developers to participate in this by giving them a cut of the profits.
Other project hosts such as GitHub, BitBucket or GitLab have easy, simplistic UIs that help new and experienced developers alike to browse code right through the browser. LaunchPad on the other hand is very weak at this. Most of the projects have poor (if any) documentation and no way to determine a project's worth easily. The fastest way to do so with LaunchPad would be to download the project and look through the code manually, which is quite tiresome.
Launchpad makes it easy to translate free open source projects into virtually any language in the world. Users are allowed to start working on translating any project they want just by having a Launchpad account and a web browser. Most of the time they don't have to even join a team to start working and the editor is web based, so there is no need for any special software.
If you use launchpad, it gives you a build system (on their platform) as well as easier deployment - user merely adds your PPA to their sources.list file. Deployment (on Ubuntu, at least - other debians as well) doesn't get simpler than this.
Launchpad is built to be used for open source projects, as such it needs a powerful bug trackers to allow developers who want to contribute to jump right in. Launchpad displays bug statistics (total number of bugs, number of bugs fixed etc...) as well. Bugs can be searched and displayed from every project hosted on Launchpad or for single projects.
CodePlex's UI is quite complex and could use for some redesign and some new features. Especially for forks and pull requests which do not 'feel' as easy as in other services.
Google has recently announced that they will be discounting the Google Code service. Because of the blooming of services such as GitHub and BitBucket, Google themselves decided to host their open source projects on Github as many other developers did, moving from Google Code to other hosts for their open source projects, mainly GitHub and BitBucket. This left only abusive and spam projects hosted on their servers, which forced Google to discount their service as they see that there's no more place and need for Google Code.
Google Code's bug tracker is quite powerful. It has a lot of great features packed in such as:
Customizable labeling system
Excellent searching system (it's made by Google after all)
Grid View