This is a shameless plug, but I couldn't resist.
I'm working on a tool that might be useful for you.
I haven't figured out the name yet, so I'm using a code name of "Code Agent".
It's designed mainly as a compliment to a source control setup, but if you are just a single developer on one machine, it might be a useful replacement for you.
It's a service that runs on your development machine. You point it at the folders that contain your source code, and then it will automatically create a backup every time you change a file.
It's designed to fill in a big gap left by source control systems:
They only protect your files when you explictly check them in.
Source control is mainly about managing the output of a team (several developers) over several releases of a project. As a result, it's generally not a good idea to check-in broken code into source control. Most of the time, developers only checkin code when it's "mostly working".
In the best of enviornments, with the best team of developers, this usually means you are probably only averaging (over the whole project) one checkin per day.
It can probably go as low as once every several days or several weeks in the worst cases.
Even in the best case, though, a lot of stuff can happen in day. I know that if I'm on a roll, for example, I can introduce quite a large number of bugs in the course of day. Over a week or two, I can really messs stuff up.
Having history of code changes at a more granular level then once a day or once a week, can therefore be really helpful.
It's possible to do this using "private" source control branches, but that requires you to:
- Setup the private branch
- Spend time managing the branch by taking regular integrations to / from the main branch
- Remember to checkin your changes at regular intervals into the private branch.
The last one is probably the killer. It’s an easy thing to forget.
And of course as soon as you setup a private branch, someone else is going to want to access the code in it for one reason or another, which is then going to end up preventing you from checking in as regularly as you want, which ends defeating the whole purpose of the private branch in the first place.
"Code Agent" fixes all of this.
You can setup it up once, and forget it about it.
You then have local source code history, at whatever granularity you need, whenever you need it. All automatically, and without having to checkin in “bad code” into your team’s source control repository.
For developers on teams, my tool is not a replacement for source control, but instead is designed as a complement to it. On a team you still need to explicitly manage checkins to a shared source code tree.
In your case, because you are not on a team, however, it might be perfect for you to use as a replacement for source control. You can add labels, or “snapshots” that correspond to specific points in time (like “fixed bug 1234”, “finished feature x”, etc).
It's not, however, free or open source.. It's a tool I'm going to be charging money for.
However, it should definitely be affordable for an individual developer to purchase (I haven't finalized the price yet).
I am going to be looking for Beta-testers sometime in early to mid January.
If you are interested, let me know, and I would be happy to set you up with a private beta.