GiT Hosting Solutions.
GiT is increasingly getting adopted in enterprises and not just a DVCS for open source and public domain projects.
Traditionally open source and small scale projects uses services like Bitbucket and Github. Those services are really excellent and cost effective but organizations are averse to host all their code due to various concerns like Latency and Privacy.
This gives rise to a need to look for an inhouse git hosting solutions and we have compared Gitolite, Atlassian Stash and Google Gerrit on various criteria.
Gitolite is a no frills hosting solution written in Perl. Project is small and code can be easily understood and maintained. SSH public keys authentication is most popular underlaying authentication mechanism. This doesnot require any SQL backend and you donot need root access to host this. Gitolite saves public keys in a git repository itself and there is no key upload application. A git consulting company makes key upload application.
Native GiT hooks are sufficient for process modelling. There is build in Multisite and Proxy support. There is no code review built in but can be integrated in Phabricator ot ReviewBoard.
This is an enterprise grade git hosting solution having all feature of Bitbucket. This is written in Java, uses Servlets other Java technologies. This need a SQL backend and seamlessly supports LDAP, HTTP.
There is UI for SSH Key Upload, Branch Creation Vnd General Management and offers very strong Role Based Access Control (RBAC), Pull Workflows are possible.
There is no Built in Multisite Support. Need to use Stash Apis for Hooks. Gerrit is particularly great if your shop is going to use other tools like Jira, Bamboo etc.
Gerrit is a Git Hosting and code review platform developed by Google or Android ecosystem. This is developed in Java and used JGiT as GiT backend. This needs SQL Backend and supports HTTP, SSH and LDAP.
This uses a notion of
refs/forwhich is a deveation from standard git. Gerrit does not have standard GiT hooks but have hooks to model your process.
This has a limited Multisite support. There is a self service facility to upload SSH Keys. There is ACL capability built in but finer ACL is generaly difficult and error prone.