Let me start by telling you that I never used anything besides SVN and I'm also a Windows user.
I have a couple of simple projects that are open-source, others are on their way when I'm happy enough to release their source code. Either way, I was thinking of using Google Code and SVN to share the source code of my projects instead of providing a link to the source on my website. This has always been a pain because I had to update the binaries and the code every time I released a new version. This would also help me to have a backup of my code some where instead of just my local machine (I used to have a local Subversion server running).
What I want from a service like this is very simple... I just want a place to store my source code that people can download if they want, that allows me to control revisions and provide a simple and easy issue/bug system so people can submit bugs and stuff like that. I guess both of them have this.
But I don't want to host any binaries in their websites. I want this to be hosted on my website so I can control download statistics with my own scripts. I also don't have a need for wiki pages as I prefer to have all the documentation on my own website. Do any of these services provide a way to "disable" features like wiki and downloads and not show them at all for my project(s)?
Now, I'm sure there are lots of pros and cons about using Google Code with SVN and GitHub with Git (of course) but here's what's important for me on each one, and why I like them:
Google Code:
GitHub:
Basically that's it. Not much, I know...
What other common pros and cons can you tell me about each site/software? Keep in mind that my projects are simple, I'm probably the only one who will ever develop these projects on these repositories (or maybe not, but for now I am).
SVN is better than Git for architecture performance, binary files, and usability. And it may be better for access control and auditability, based on your needs.
GitHub is a distributed version control platform. SVN is a centralized version control platform. It uses multiple repositories for accessing and maintenance of code. SVN does not have any centralized repository for code maintenance.
Google doesn't use GitHub, or Git. Instead they have their own, pretty insane system called Piper. There is only one Piper repository. Different projects are different subdirectories within the same massive repository.
Google Code is supporting Mercurial now. Mercurial should give you most of the benefits of Git, but you get the maturity of Google Code. You also have the option to go with subversion there as well should you want to.
Google Code Project Hosting now supports Git.
There are 2 main advantages to GitHub:
GitHub makes it very easy to make contributions to other people's code, and easy for them to integrate it back in. There are also lots and lots of cool post-commit hooks that they have built-in; for instance, when I commit to one of my repositories, an email is sent to my Google Groups announce list and a bot pops into the irc channel, gives a summary of the changes, and pops back out again. I know of at least one CI service that triggers on GitHub commits (or rather, pushes).
If you're planning on this being a fairly small, solo project, then you probably won't find most of GitHub's features to be that useful.
I haven't had particularly positive experiences with TortoiseGit myself. I really like the git model, but everything about it feels weird to me when I'm trying to use it on Windows. I often end up just using the cygwin version, but even that is far from perfect.
Honestly, for small projects that you want to opensource, I'd probably just host on google code and deal with SVN for the moment. It might be different if you were already a git expert, but I'm not sure that the learning curve is worth it for a small, windows-based project (esp. considering the # of windows developers who are likely to be turned off by it).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With