This is a series on my findings around building open source software online for free. There are many SAAS (Software As A Service) platforms out there and a lot of these are free to use with your open source projects. But not all of these work with C# and .Net. So this series highlights the tools and products out there that work with .Net in different phases of the software development life cycle.

  1. Source Control <=(We are here)

Source Control

There are lots of different ways to host your source control online, and source control isn’t really language specific, so we dont have any options ruled out in this. I’m sure this is nothing new to most people, but I will list off a few options with a little bit of detail.

  • CodePlex
  • BitBucket
  • Visual Studio Online
  • Assembla
  • Github

CodePlex is Microsoft’s attempt at open source hosting of source control. It started back in 2006 and has been a very Microsoft-centric place to go find the source code for your favorite open source project. As well as the source, there are usually hosted downloads of the latest and historical versions, as well as documentation, and raising issues. For instance, this is where you would find nuget (although they too are on Github). They provide hosting of Git, Team Foundation Server, or Mercurial repositories (although git is recommended over Mercurial because it is faster, more reliable and has better tooling).

As best I can tell, the only hosting option is a free public repository, but it also doesn’t cost anything to do so, either.

This seems to have lost traction over the last while, with a large number of projects seemingly having moved to Github. And with their last blog post being over two years old, the place looks rather dorment. Having said that, you can still create a repository if you like.

BitBucket is the offering of ALM company Atlassian (the ones who do Jira, Confluence, and HipChat). You can choose between Git and Mercurial as your source control, and your repositories can either be public or private as you choos, and give you access to issue tracking, wiki, and chat capabilities.

In Terms of pricing, BitBucket gives you unlimited repositories. The catch is instead you pay per user. For instance, up to 5 users is free, then you pay $10 a month for up to 10 users, all the way up to $100 for 100 users, or Unlimited users at a price of $200 a month.

BitBucket does have integrations with different tools, other than Atlassians own offerings. If you care about integration with other tools then things like Flowdock, Trello and others have capabilities to integrate.

It is also worth noting that Atlassian also offer a product called Stash which is a self-hosted source control platform option.

Visual Studio Online is Microsoft’s TFS in the cloud. But it is more then that, since the cadence is much faster for Visual Studio Online that it gets features about 6 months ahead of it’s on-premise older brother.

As well as the obvious Team Foundation Version Control support, you can also create a git repository, which is compatible with the rest of the Visual Studio ecosystem these days as well.

Like BitBucket, the pricing is on a per user basis, and like BitBucket, the free limit is 5. The key here is that they offer private repositories. If you are an MSDN subscriber, you also get to be added to repositories, without affecting this user limit. So that means 5 + Unlimited MSDN users. You also get unlimited stakeholders, 60 minutes a month of build time, as well as 20k virtual user minutes a month for load testing. These benefits are thanks to the Azure platform that runs the associated build server environments. After the 5 users, you pay $20, $45 or $60 per month per user for basic, professional (includes a professional visual studio license) or advanced (extra testing benefits).

Although this is a great option for a small development shop or an indie develop, this probably isn’t the right fit for your open source development. But for everything else, this plus Visual Studio Community 2013 is a great combination for an indie developer, building free or paid apps.

Assembla is another ALM solution like Atlassian. But as well as all their paid solutions, they have a free plan which gives you a basic repository hosting solution with unlimited users, but none of the ALM style offerings they have. They also limit you to a 1Gb sized repository. They offer Git, SVN or Perforce hosting.

As with Visual Studio Online, these guys are a private repository hosting solution. Their paid plans range from $24-$200 a month, and scale up your storage and user limit the more you pay.

This is another one of those great for private stuff, and enterprise stuff, not so much for the open source kinda deals.

Github is git as a service. As a distributed source control, git itself doesn’t do a central repository per se, but with their concept of pull requests and easy to create forks, its a great place to backup your repositories to as a hub for sharing and collaboration.

Public repositories are free, and their priceing for personal plans ranges from $7 a month for up to 5 private repositories, to $50 a month for up to 50 repositories. They also have a organisational tier which gets up to $200 for 125 repositories.

The nice thing about Github, is that it is popular. Its the new hotness, and everyone is using it. And because everyone is using it, everyone is integrating with it. If you want to pick the source control provider with the most integration points available to you, Github is probably the right choice.

Github also offer an Enterprise, self-hosted solution.

And More

This is only a handful of repository hosts out there, mainly ones I’ve had anything to do with over the last 5 years. But there are a ton more source control hosters out there, at varying levels of ‘free’ and for more information on these there is a page on Wikipedia - Comparison of source code software hosting facilities. Since I haven’t really had anything to do with the rest I’ll leave the investigation up to the reader.

My picks from the above: I use Visual Studio Online for all my apps, websites and other private work, and github for everything else.

So thats it for Source Control. Next up is Building your hosted Source.