In my spare time I regularly mess around on various home programming projects. These projects have now got big enough that if my machine died and I lost them all it would be a serious bummer, and regularly emailing them my hotmail account (or uploading somewhere) is getting to be a pain.
Is there free (or v. cheap) way to set up some kind of source control system in this situation ? A locally running CVS server or similar would be no good to me (as it would die if my home PC died). I’d rather not have to go to all the bother of setting up some kind of external back up hardware (though I guess I could just have my CVS servers on a removable HDD).
Ideally the way I see it working is something like this: have a CVS server locally then run some kind of daemon that ensures the changes are automatically copied to an FTP site, so I can recreate the CVS tree if my PC died. Is there a system like this out there ?
Alternative I could turn my projects into opensource projects and host them at sourceforge (though I would prefer not to, there is slim chance I may decide/need to earn a living off them at some point). How easy would this be ? Does sourceforge need to approve a project or can anyone just create a project nad have it hosted ?
I find Subversion infinitely easier to deal with than CVS. The interface is mostly the same so once you have it set up, it’s easy to use. You could install a subversion server on a machine somewhere, and have a cronjob on another machine periodically check out the repository.
It’d be easy enough to write a quick program to FTP the contents of a directory to a remote server every day or so. If you’ve got that functionality, do you really need CVS/Subversion/etc.?
I can highly recommend SourceGear Vault. Very reliable and stable, and free for single-user mode (which would be your scenario.)
If you just want a simpler hardware solution, how about an external hard drive? They’re cheap nowadays. Or, if you have a spare IDE drive laying around, get yourself a hard drive enclosure and use it like an external hard drive.
I would want to only copy the changes, not the whole source tree. It would also handy to use source control anyway, just for the history/rollback functionality.
Subversion looks good, it looks like all I would have to do is run “svn dump --incremental” to a create a flat file of all the changes, zip that file up and transfer it to the ftp site. Have you used and any of the GUI clients (http://en.wikipedia.org/wiki/Subversion_(software)#GUI_front-ends.2Fclients) ? How good/stable are they ? (I see they seem to have 0.xxx version numbers, which is normally a bad sign )
Sounds like a great idea for a startup. Someone should set up a remote vault for source code that one could easily post their code to on a daily basis (like in a cron script.) I’d be happy to pay $20/month to ensure that my code was backed up somewhere safe, especially if I didn’t have to invest much time learning to do it.
Here at work we use SVN + TortoiseSVN, and I’d highly recommend it. The only problem I’ve ever had with the GUI is that sometimes (on my machine only) the icons for changed files gets a bit corrupted, but I blame Win2k.
We have had perhaps a dozen developers use it, 3 or 4 at a time over the past five years, and it’s trivially easy to see who changed what file how all the way back to the beginning of the projects. (So when someone points out a giant data losing bug, you can be astounded that it was there since day 1. :eek: ).
Of course, you have to back up the repository ('cause what’s on your local HD is just the current working copies), but even if you forget to do that and lose your whole repository history, it sounds like you’d be ok with just having the current working copy.