A simple question for people to post their comments, and what their choice was and why.

Also it would be interesting to see what prompted you to use it? For me, I use source control so that

  • I use the same at work, so I can get familiar with how to use it
  • I get protection if I screw code up as can go back
  • Its offsite so if my pc dies, I don't lose all my home code projects.

For me I use Perforce, simple 2 client "demo" version. This is because we recently moved to it at work from using IBM Rational Clearcase. So far, so good!

+16  A: 

I use git and Subversion - git for my C# Protocol Buffers port (which I do in work time, but from my home laptop) and Subversion for a few other things.

I used to have my Subversion repository on a local NAS server, but I've recently moved it to mostly so I can retire the NAS but also so that I can get to it easily from outside my home without punching holes in firewalls.

As for why:

  • In case my laptop dies
  • In case I want to go back to an earlier version
  • So I can keep track of what I've done
  • So that other people can participate too (e.g. Marc Gravell has contributed loads of stuff to MiscUtil)
  • Branching where appropriate

I also use Subversion to manage and most of - I have a local copy of each site, and post-commit hooks on each server (where the repository lives as well) to update the web server directory when I commit.

Oh, and I also used Subversion when writing C# in Depth - again, I can keep track of which bit was written when etc. I haven't needed to use that aspect very often, but it's a convenient backup solution.

Jon Skeet
As ever, downvotes are much more useful if they come with comments.
Jon Skeet
@Jon Skeet, How do you like git? Now that you have some experience with it do you see it replacing SVN for you or no?
I suspect I'll use both in different settings for quite a while. I don't know git as well as I *used* to know svn - I haven't had to do anything non-trivial in svn for a while. Both are pretty simple for the kind of use I normally have for home stuff, to be honest.
Jon Skeet
+14  A: 

Yes, I use SVN.

Why? For the sake of practice. And because mistakes happen. Sometimes I check out code, start working, and realize after four hours that I've made a mess and need to back out. I've only lost four hours of work when I have SVN backing me up.

+3  A: 

Yes, definitely. I use subversion for all my personal projects, for the same reasons you cited above.

I wouldn't even consider doing any coding without a VCS, no matter how small the project. I have one big repository that has many folders in it for all of my small projects, and if I am working on a larger project, it will get its own repository.

+4  A: 

I use subversion at home for a cross-platform project, so the different development environments (Win-Laptop and Linux-PC are always up-to-date .

BTW the SVN server is running on my WLAN Router, which is accessible regardless if i am working on my Laptop or PC.

EDIT: Since i was asked: the wlan router doesn't support SVN per default, but with the following firmware it does (

Does your WLAN thing run the standard firmware, or did you get it running one of the linux open source ones? Curious, 'cos the asus site doesn't mention SVN
Nic Wise
I am using the following (Linux) firmware:
+4  A: 

Yep. I didn't for the longest time, but I got burned as described here: another SO thread.

And now that I am, I'm beginning to use it as development tool, rather than merely a source code backup. Branching to try out new features, bugfixes, etc.

I started with darcs at home (the company I worked work at the time used -- shudder -- SourceSafe) and am contemplating switching to git or mercurial.

+1  A: 

Yes. Subversion, same as I use at work. Handy for learning as we've only just moved to Subversion at work.

  • So I can go back to old code. Not so much for fixing screw ups, but to enable screw ups. If I've checked in not so long ago, I feel much more like re-factoring. Without source control I have a habit of commenting lots of code out and never removing it.
  • I must get round to moving my repository to somewhere other than the same disk my checkout is on...
+1  A: 

I use git and yes, almost every project is under source control and has at least one branch.

+1  A: 

Yes, I use Subversion so that I can not only have a backup code repository but also so that, in the event that a home project is useful at work (e.g. code samples or snippets) I'll always have access to it. Of course, this is pretty low-cost for me as my Work projects are already on the SVN server.

Mark Brittingham

At the risk of sounding like a AOL user: Me too!

SVN personally - I host mine with my website on - works nicely, tho it is "only" SVN 1.4.x.

I dont always use it tho - if it's just a throwaway project, I dont bother. But anything I care about (even only a little bit), it goes into the repository.

It's also handy for moving code from work to home and back :)

So far, for this, I've used SVN (preference at the mo) and SourceGear Vault (which rocks)

Now, how do I educate my wife on how to use it for her Reporting Services projects? kthxbai.

Nic Wise
She might grok TortoiseSVN...
yeah, thats the thought... not sure tho. :)
Nic Wise
Another thumbs up for SourceGear Vault..
+2  A: 

Yes, I use subversion for my home projects. I use it since I then can be sure that the versions I have on my different computers and OS's are the same, it's no problem if I do something stupid on one computer, since I can roll it back. And it's on another server, so if my computers die, I still have the project.

+2  A: 

I use Git or Mercurial for my hobby projects due to their simplicity and de-centralized nature. a quck hg/git init and I'm off to commit my changes. If I'm writing something on free time, its usually because I need something and nothing exists that does what I need. So, there is a very good chance that I'll be sharing whatever it is that I've concocted if it turns out to be useful, in which case having a revision history is nice.

There is a cut off though .. if I write a 100 line shell script to do some strange task that is only of use to me .. there's no point in using a VCS.

In this day and age ... I think its just so common to use them that not doing so makes you feel like you showed up to school without pants.

Tim Post
+1  A: 

At work I used SVN , and everything was fine . For my home projects I had the following habit :

  • when I would reach a "checkpoint" , I would archive my sources with a "suggestive" name ( which described the overall progress )

  • by the time I finished the project , I usually have about 20 archives ( which are helpful up to a point , but let's face it , who wants to go through all those archives , sort them by creation/modification time , try the code , see if it works ... sucky process,isn't it? )

And that's why I'm using SVN for my home projects as well :)

+1  A: 

Yes, Mercurial. When I was looking about a year ago it seemed about even with git, and had better windows support. Since then git seems to be winning the popularity contest, but so it goes. I have an offsite backup, and a Bitbucket for public projects.

Justin Love
+1  A: 

Everyone else that don't use a source control for home project, please vote this up. I don't.


Yes, I use git +

+2  A: 

I can't afford not to use a VCS. I change my mind, or need to try something out - I need the safety net of a VCS to protect me from myself.

I still use RCS - I don't need complicated branching strategies. I'm contemplating migrating to Git (or perhaps SVN), though I'm not yet wholly convinced I need to. I favour Git over SVN at this point because it is a distributed VCS.

Jonathan Leffler

Absolutely, and I use it because I want all the benefits it gives me at work, as mentioned by many others.

Once you get used to the benefits, why live without them?


yep, in fact i use multiple svn repositories instead of one big one like i use to (one may be meant for public code, another may be personal only, others may be repositories online). i use svn, i have everything in :/dev and i have certain folders like :/dev/external or /dev/prv not in any repositories.

+1  A: 

I can't imagine not using a VCS at home. Even despite the obvious answers, the one good reason I do is that I'm often pulled between different projects at home, and it's nice to have a log of what I've done and why, and that I can come back to it.

It also helps to be able to sync across multiple machines and always have a working copy (well, allowing my code works.. :) ).

Personally I started out using Perforce as that's what we used at work and I loved it. I found it too problematic for offline coding (who doesn't love coding at a coffee shop??) so I switched to SVN. My next big switch will probably be to Mercurial, however, as the distributed thing interests me.

Eddie Parker

I previously used the free edition of Beanstalk for personal projects which provides an SVN repository up to 20mb.

I also have daily backups using mozy.


If they get big enough, I slap them on Codeplex and use TFSC in VS, just like I use at work.

why was this downvoted?
+1  A: 


I used to use CVS for my home projects, then I converted everything to Mercurial.

I have access to a server where I push/pull my work to through SSH, and this is my main projects repository, which is pretty safe with RAID 1 and regular backups. Of course most of the projects are scattered in several places - at my home PCs, some important ones at work, on a pendrive. DVCS FTW! ;)

+1  A: 

Subversion has worked for me for several years but I got to an advanced to a stage where I had several development machines and subversion had some challenges. For example if i got the latest version from the server and went the office with a laptop I might want to work some more on the code. With no access to the server its not possible to check in the code. This makes it difficult to try out things with the confidence that rollback will be possible.

Of course there are hacks like having another local repository but its better to bit the bullet and look at a distributed source control system. I've been using mercurial for the past few months and it works like a charm.


I swear I'm trying to but it's so dang hard to find something that works well with my environment...


I don't currently, but I want to. I have a free account at Beanstalk and I'm debating whether to get a paid account, or move over to GitHub.

Chris Stewart
+1  A: 

I have Subversion on my ubuntu laptop. Why? I think noone wants to store multiple copies of their files with a date extension or something like that unless they are not serious projects. Any project with a decent codebase would need a version control so you can go back at any time without fear of figuring out what got lost in my changes two days ago. Also, since I use fsfs with SVN, I can backup them anytime I want and reload it in another box if my laptop crashes.


I use source control mainly so I can work on the same project on multiple computers (desktop, laptop). However, it's also very useful for allowing me to make wide-sweeping changes to the project without worrying about having to make backups of important files in case I want to reverse some change.

+2  A: 

Everything I work with, being work or home-related is under version control as soon as I get to work on it (if it involves programming but not always). Many reasons, including history, branching, integration with software wsuch as Redmine, especially if I intend to distribute something, the easy way to revert something and so on.

Any VCS is better than none (including RCS) but I have been favoring DVCS for a long time now. I use Mercurial myself because it is decentralized (I have several machines incl. two laptops), enables offline work (think plane or train), fast and easier to work with than git.


I do, and I want to get better at it. Originally, I thought of using TFS on some remote installation somewhere, but now that I've had an internet outage for a few days, I'm glad that I went with a home server running, guess what, Subversion.

Dmitri Nesteruk

In recent times I only use Git. Gone through CVS, SVN before and now I feel it requires less work than it saves me from. Never had that feeling before. :)

 $ mkdir newproject
 $ cd newproject
 $ git init
 $ vim README
 $ git commit -m "Readme file" README

Done. It does not get any easier I reckon. The beauty of it is, I do not have to set up anything. It just works straight away.


Yes. For small things I use darcs because of its simple interface. Because darcs does not scale, I use git for anything serious. Both allow me to commit changes while disconnected.

Norman Ramsey

I'm using SVN at work and now I'm switching to bazaar (bzr) maybe for the wrong reasons.

At the beginning I was looking for a way to continue my work on a disconnected laptop. Bzr was the only distributed vcs able to interact with a subversion server in a bidirectional way (pull and push).

Now for my home project I'm still using bzr because it's easier to setup a new repository than with SVN. But svn would probably be as good as well for my needs. That's why I told that I was switching for the wrong reasons... just too lazy.

Also SVK can do the same with an SVN repository. But it's not so well maintained - I've found a few bugs in non-default situations.

I use Beanstalk SVN and Versions. It's saved my bacon more than once when I've done something stupid.

Ian Turner

I use git for any project larger than one file. I don't upload since my laptop is backed by time machine.

Alex Brown

I use mercurial and subversion for everything, because:

1) it makes it possible to do radical refactoring or changes, without worrying about losing working code 2) it keeps a backup of my work 3) it makes it possible to simultaneously work on the same project on multiple computers with no sync worries.


Yes, github! :)