SnapSource was initially created for fulfilling my own need of some automatic development tools. In one of the projects I worked on, I had to try a number of different solutions to a problem before coming up with a final one. In experimenting with one solution, many changes had to be made to a set of source codes. Keeping the historical records of these changes across many different files in more than one subdirectory was a very tedious task.
It's true that RCS (Revision Control System) and Concurrent Version Control (CVS) provide facilities for managing modifications of our code. New versions are usually checked in when a ``stable'' release of the code is established. Checking in modifications which are not thoroughly tested will clutter the repository with unusable releases. Between two CVS commits, SnapSource will come in handy to provide you with a number of micro revision of your source code.
In our software projects, we often found ourselves amidst of modify-compile-test loops. The modification made to our codes can be either for fixing bugs or adding new features. During modification of the codes, it is possible that a new bug crept into our code. I thought that it would be nice to have an automatic tool which can periodically take a snap shot of our source codes, to facilitate browsing the historical records of what changes made to the codes as well as enabling us to revert the codes to an earlier version.
So, let there be SnapSource ...