Creating the snapshot by merely copying the files at regular time interval will take a lot of space. Consider a project which has 100 Kbytes of source code. Taking the snapshot at an interval of 5 minutes will require a space of approximately 1.2 Mbytes after 1 hour. Usually changes made to the source codes between one snap shot to the next in a short time interval is very little, as little as few lines of codes. To overcome this space problem, the snap shot should store only the differences. SnapSource takes the later approach.
When SnapSource runs for the first time, it will recurse the source directory mentioned in the configuration files and then create a bunch of base files of the snapshot. Again, to conserve space, the base files are stored in compressed format. Currently, gzipped files are used. The next times SnapSource is invoked, it will create the difference (by running diff) between the current version of the source code and the corresponding base file. This difference file is referred to as delta file. The base files and delta files are stored in separate directories.