Private DVCS Hosting

While using Github and Bitbucket for hosting and collaborating on open source projects is great--and not to mention free of charge--I have several repositories with personal and client related code which needs to stay private (like wasitup's source). Most of these repositories are quite small, weighing in under one megabyte. I quickly realized that I had reached the maximum number of private repositories on Github and Bitbucket for my plan while using less then one percent of my alloted disk space.

I'm equally satisfied with using Git and Mercurial--both have their own strong and weak points--so I went out and searched for alternatives offering support for one or both of these DVCS s.

Please note that this is a fairly high level overview of DVCS hosting providers where I focused mainly on price for private repositories and allocated disk space. When selecting a provider you should probably take a closer look at how easy its offering is to use, how stable and available it is, and that it provides the features you need.

Note that all mentions of repository count (including all values in the "Repos" column in the following tables) are referring to private repos only, not public repos.

Git and Mercurial

A few providers supports both Git and Mercurial repositories. While support for both of my favored DVCSs is convenient, there is a possibility that the lack of focus on one system results in a less integrated user experience.

A fairly polished interface with a repository browser, ticketing with milestones, time tracking, and wikis.

Repos Storage Monthly cost $/repo $/GB Free ∞ (1) 0.02GB 0 -- -- Tiny ∞ (3) 0.5GB $7.72 0 15.44 Small ∞ (15) 2GB $20.06 0 10.03 Medium ∞ (30) 4GB $32.41 0 8.10 Large ∞ (60) 10GB $61.73 0 6.17

In Codebase one project can have several repositories. While all plans allow for an unlimited number of private repositories, there are restrictions on how many active projects are allowed. The parenthesized numbers in the "Repos" column represents this limitation. One can have an unlimited amount of archived projects though.

The free Codebase account don't support time tracking and wikis, only the repository browser and ticket system are usable.

Uses the popular Trac open source project management tool with several plugins (e.g. time tracking, agile workflow). Offers daily backups directly to your own S3 account.

Repos Storage Monthly cost $/repo $/GB ∞ 2GB $6 0 3

Repository Hosting offers a single plan. If you need to grow, 1GB of additional storage is $1 per month:

Repos Storage Monthly cost $/repo $/GB ∞ 6GB $10 0 1.67 ∞ 16GB $20 0 1.25 ∞ 46GB $50 0 1.09

When creating a new Assembla space you have to select from various preset configurations or build your own by selecting various tools (e.g. wiki, tickets). To confuse matters, Mercurial repositories comes bundled with a Trac instance, while you can create free standing Git repositories which can integrate with the other Assembla components like ticketing.

Repos Storage Monthly cost $/repo $/GB Free ∞ 2GB 0 -- -- Single ∞ (1) 2GB $24 0 12 Group ∞ (10) 5GB $49 0 9.8 Professional ∞ (20) 20GB $99 0 4.95 Enterprise ∞ (200) 50GB $249 0 4.98

In Assembla one space can have several repositories. Similar to Codebase's restrictions on projects Assembla has restrictions on how many spaces are allowed for each plan. The parenthesized numbers in the "Repos" column represents this limitation.

The free Assembla account don't support Mercurial repositories, only Git.

The simplest offering in this comparison. Provides you with a web interface for managing repositories, users, and SSH keys.

Repos Storage Monthly cost $/repo $/GB Free 1 0.003GB 0 -- -- Basic 8 0.2GB $4.75 0.60 23.75 Premium 32 1GB $9.75 0.30 9.75

Git

Probably the most popular provider for private repositories in this comparison. The level of mind share which makes Github great for collaborating on public repositories becomes moot when working on private repositories. Provides the nicest repository browser of the bunch, but their issue tracker is arguably not that great.

Repos Storage Monthly cost $/repo $/GB Micro 5 0.6GB $7 1.40 11.67 Small 10 1.2GB $12 1.20 10 Medium 20 2.4GB $22 1.10 9.17 Large 50 6GB $50 1 8.33 Mega 125 20GB $125 1 6.25 Giga 300 60GB $300 1 5

Provides a well integrated set of tools including a repository browser, ticket system with milestones, time tracking and wiki like notebook pages.

Repos Storage Monthly cost $/repo $/GB Free ∞ (1/0) 0.2GB 0 -- -- Micro ∞ (4/4) 0.5GB $9 0 18 Compact ∞ (10/10) 2GB $24 0 12 Corporate ∞ (20/20) 4GB $49 0 12.25 Enterprise ∞ (50/50) 10GB $99 0 9.90

One Unfuddle project can have several source code repositories. While all plans allow for an unlimited number of private repositories, there are restrictions on both how many active projects and archived projects are allowed. The parenthesized numbers in the "Repos" column represents the limit for active and archived projects respectively.

Delivering a super slick interface with a repository browser and integration with third party issue tracking systems. Also includes FTP deployment tools.

Repos Storage Monthly cost $/repo $/GB Personal 10 3GB $15 1.50 5 Team 15 6GB $25 1.67 4.17 Business 30 12GB $50 1.67 4.17 Corporate 65 24GB $100 1.54 4.17 Giant 150 48GB $200 1.33 4.17

A well integrated set of features including source code browser with code review support, issue management system with control over worlflows, wikis, and blogs.,

Repos Storage Monthly cost $/repo $/GB Free 1 0.2GB 0 -- -- Up to 5 Projects 5 1GB $5 1 5

Codaset has an interesting pricing model when you move over 5 private repositories. For 6 private repositories you pay $0.04/repository per day. Each repositry includes 200MB of storage. This works out to the following numbers when calculated up to the thresholds used in the summary of this article:

Repos Storage Monthly cost $/repo $/GB 8 1.6GB $9.73 1.22 6.08 16 3.2GB $19.47 1.22 6.08 41 8.2GB $49.88 1.22 6.08

Includes a plethora of project management tools (iterations, stories, bugs, burndown charts, velocity charts, wikis, forums, blogs, and attachments) in addition to standard repositories with a source browser. If that wasn't enough they also seem to provide Trac instances. The whole suite seems quite complex and unpolished.

Repos Storage Monthly cost $/repo $/GB Pro Small ∞ 1GB $5 0 5 Pro Medium ∞ 4GB $15 0 3.75 Pro Large ∞ 10GB $30 0 3 Enterprise Small ∞ 20GB $50 0 2.50 Enterprise Medium ∞ 40GB $100 0 2.50 Enterprise Large ∞ 100GB $200 0 2

A hosted version of an open source clone of Google Code. Provides the same features as the original Google product (e.g. source browser, issue tracker, code review, and documentation pages).

Repos Storage Monthly cost $/repo $/GB Simple 50 0.01GB 0 -- -- Business ∞ 1GB $6.28 (£49/y) 0 6.28 Enterprise ∞ 5GB $25.52 (£199/y) 0 5.10

Indefero has to be paid on a yearly basis in British pounds. Monthly costs used in the comparison were calculated from this yearly cost.

Mercurial

The most popular Mercurial offering. Seen by some as a copy of Github, but I think we've settled that. Provides a source code browser and a fairly decent issue manager in addition to a wiki system.

Repos Storage Monthly cost $/repo $/GB Free 1 1GB 0 -- -- Amateur 5 2.5GB $5 1 2 Pro 15 5GB $12 0.8 2.4 Large 25 26GB $50 2 1.9 Team 150 50GB $100 0.67 2

A fairly new product from Fog Creek Software which features a fairly advances repository browser, code review capabilities, and integration with FogBugz if you need a bug tracker.

Repos Storage Monthly cost $/repo $/GB ∞ ∞ $25 0 0

Kiln segments its plans based on the number of users one needs. For this comparison I've used the price of one user. There are no restrictions on how much storage you can use in Kiln provided that you don't do anything overly abusive (like using it for video storage).

Part of their suite seems to be based on Trac. In addition to a source browser, wiki, and tickets they provide time time tracking, burndown charts, forums, and blogs.

Repos Storage Monthly cost $/repo $/GB Solo 1 0.5GB $9 9 18 Professional 5 1.5GB $19 3.80 12.67 Team 30 3GB $39 1.30 13

Conclusion

For my own needs I'm only interested in the providers which don't impose restrictions on the amount of private repositories. This eliminates SSH Control, Github, Beanstalk, Codaset, Bitbucket, and Active State Firefly.

I've ranked the remaining contenders based on how much storage you get for your buck within three price categories:

Free

Assembla Free: 2GB Unfuddle Free: 0.2GB Codebase Free: 0.02GB

Up to $10/month

Repository Hosting 6GB: $1.67/GB XP-Dev Pro Small: $5/GB Indefero Business: $6.28/GB

Up to $20/month

Repository Hosting 16GB: $1.25/GB XP-Dev Pro Medium: $3.75/GB

Up to $50/month

Kiln (one user): Approaching $0/GB Repository Hosting 46GB: $1.09/GB Xp-Dev Enterprise Small: $2.50/GB

Kiln is obviously the most affordable solution if you're planning to store lots of data, but can get pricey due to the per user pricing model if you're working in a team.

Due to the restrictions on maximum allowed active projects or spaces you should probably ignore Codebase, Assembla, Unfuddle if you use project management features (e.g. ticketing, wikis, time tracking) together with each private repository.

I myself have signed up with both Kiln and Repository Hosting so that I can evaluate both more in depth.