I've seen a few threads mentioning the idea of using a VCS as a method to backup files, but didn't see any offering any results or tips. I thought I'd add in what I found out over the past few days.
The idea is to use a VCS to manage backing out game files so that I can revert to an early save if you need to, like if my frakking Mayor executes my best craftsdwarf because he can't make something of clear crystal glass (which is bugged) Fun happens. I've been just zipping up the DF folder, but storing and renaming all those zip files is a pain. A zip of the DF directory would come in just over 70mb. I've got 3 different computers I'm playing on, so being able to move it all around is a huge plus.
I started out looking at both Mercurial and Git, as they seemed like the top contenders.
Mercurial was working lovely (very easy to set up and use) until I looked at the sizes. Creating the initial repository results in a (to be expected) rough doubling of the space needed. I world-gen'd a large region, and the world.sav file clocks in at around 50mb (compression on). Each commit ends up adding around 50mb to the repository. That's gonna grow pretty fast -- and in the end be worse than the zip file option -- as the repository starts to get as big as my USB stick, I'm not going to be able to move it around between machines very well.
The size growth is expected, though. With compressed saves, the world.sav file is going to look very different between revisions, and thus most likely end up with a full (or nearly full) copy needed for each delta. It dawns on me that I make actually see a reduced file size (in the long run) if I turn off save compression.
But here's were Mercurial breaks down. The uncompressed world.sav is 266mb. Mercurial can't commit that without puking up an out of memory error. Mercurial tries to use a single string comparison to even diff large binary files, so any file more than a few dozen megs will break it.
So, to Git, keeping the save compression off with the idea that it can hopefully diff the changes. I init the repository, and do the initial check in. I fire DF up, play for a for a minute, save, exit, and do another check in. I run the Git database compression. The whole DF directory (including the .git repository) is about 370mb. I play a bit more, do then do another commit. The size goes up by 50mb, but after I run the database compression, that change goes down to just 1mb. Awesome! Only 1mb extra space for a save!
If I need to zip up the directory to copy it onto my USB, it's now just under 140mb. Larger, but manageable.
I think Git is the answer, but it requires that you turn off save compression, and that don't mind the bit of extra time to run Git's database compression. You need a bit of extra space running the game, but after about 4-5 saves (compared to zipped directories) you make that difference back, and any more than that, the saving is huge. Compared to moving it all around, you can have a huge archive of a region's saves using Git and zip for the same space that just two regular zipped directories would use.
Has anyone found a better tool or way of doing their backups?
If there's any interest in how to do this, let me know and I can post my steps.