So, as I’ve mentioned before, I’m definitely not an advanced-level developer by any stretch of the imagination. I know how to do the things that I want to do, and that’s about it. Also, most of the projects that I’ve worked on have been things where I’m the only developer. Because of that, I’ve never used any kind of version control when coding (git, SVN, Tortoise, etc).
I read several blogs by various developers, and over time I’ve seen them all mention at least once that there’s “no excuse” for not using some kind of version control even when you’re a single developer. The only thing I haven’t seen to go along with any of these statements is an explanation as to WHY one needs to use version control for a project where there is only one developer. It seems to me like it adds an unnecessary layer of complexity. From what I can tell, though, using it seems to be something that EVERYONE agrees on. If someone could just explain it to me, I’d like to understand.
Apparently, I’m doing it wrong.

Am in a similar position to you, and there are some projects where you build it, change a couple of things and then that’s it.
But I have got projects that are long-lived, that regularly change and for those it is very simple and convenient to link eclipse up to my free unfuddle account and commit a new version. If nothing else it’s another form of backup, and you can’t have too many of those.
As Brian pointed out there is the ‘backup’ angle.
But there is much more. Being able to make changes in several files, realize you are headed down the wrong path. If you are NOT using version control you have to guess/remember which files you touched.
With something like SVN it’s a single click on “Revert” and you are done.
Like wise if you want to experiment on something you either
A) need to make a backup of you entire project, then make changes – this requires a lot of code moving, etc. Prone to errors.
B) if you are using source control you can make a branch -experiment – if it works you can merge your changes, if not throw away the branch
Tags – do you do release management? Could you ‘roll back’ your site to a previous working version if problems cropped up?
The benefits of version control far outweigh the small learning curve they require to get started. And the same benefits apply to 1 developer or a team of 100.
I recently blogged about how easy it is to get started:
http://thecrumb.com/2010/10/18/development-environment-quick-start/
Jim
@Jim -
I checked out your post…may have to give Subversion a try. I poked around at git a couple of days ago, but it seemed to be a bit too complex for my needs.
Actually, the whole reason this came up was because I had to roll back a change at work a couple of days ago that was over a month old. Took me more time than I would have liked to go through and find everything that had to be changed.
Thanks for the tips!
Subversion is a great starting point as pretty much every IDE has integrated tools for it and it’s quick and easy to setup.
To be honest, you don’t have to adhere to any standard in folder structure or whatever… just create a project folder and check it in or update it. Simple project back and snapshots. Don’t worry about versioning and alike for now, just use it like a backup tool… simply doing that will lead to more advanced ways to use the data once it’s in there…
I had the same views you had until I started using version control. Once you start using it you will never not use it.
I recommend git cause it is super fast and very easy to work offline with branches etc.
Just fight through the initial learning curve cause it will pay off so much. Good luck!
If you decide to try out SVN, I have to suggest using Assembla for free SVN hosting. Also, Tortoise SVN is pretty great if you use Windows. It adds SVN operations to your context menu and adds quick reference icons to files and folders that are under version control.
I like to use SVN to keep my work synced between multiple machines and OSes.
I’ll bet that eventually you’ll be expected to know it, either by a coworker or employer.
Hi Scott,
For my personal one man projects I work on from home I like to keep it simple, I use a hosted subversion solution, check out sourcerepo dot com, costs me 3.95 per month, no config required, it was all up and running in about 2 minutes
I use DW at home so very little config was needed as it has its own simple subversion client.
for a one man team its fine and does all I need
if you’re an eclipse person ya can use subeclipse etc or tortoise or whatever really.
if you want to learn more about SVN then install it yourself, but be sure to backup you repo etc.
hope this helps
I am pro version control in a team environment and can see how it might not be necessary to use it when you’re a loan developer.
I think for someone to make a broad statement like there’s “no excuse” not to have version control is a bit of a silly statement to make. What if you work for a client that doesn’t want you to use version control, should force them to use it on their server anyway? Silly people. : )
I am pro version control in a team environment and can see how it might not be necessary to use it when you’re a loan developer.
I think for someone to make a broad statement like there’s “no excuse” not to have version control is a bit of a silly statement to make. What if you work for a client that doesn’t want you to use version control, should force them to use it on their server anyway? Silly people. : )
If you need to learn one anyway, learn Git.
SVN is easy to start with, and good enough if you’re the only developer (or a small team)
I am pro version control in a team environment and can see how it might not be necessary to use it when you’re a loan developer.
I think for someone to make a broad statement like there’s “no excuse” not to have version control is a bit of a silly statement to make. What if you work for a client that doesn’t want you to use version control, should you force them to use it on their server anyway? Silly people. : )
I use SVN on all of my projects. Most project I work on are of the one man nature. But having SVN allows me to sync files between locations. No guess work in what has changed.
Gone are the days of “I had that working but changed the code.” because I can just diff the code with SVN to see what I changed.
If you do work with a few other people then SVN really shines because it keeps track of who changed what and when. Just update your working copy and the changes are merged into yours. You can also Diff their changes with yours for code review.
I have my three servers (dev, staging and live) setup with SVN working copies so I just need to update the live and staging sites to “deploy” a new version.
I tag deployments so rolling back to a known working version is just a matter of moments not hours.
Lastly I have my SVN server in another state so I have instant offsite backups.
“It seems to me like it adds an unnecessary layer of complexity.”
It might be more complex, but it’s for the benefit of other programmers who might want to improve upon or mod your code.