Version Control Software Isn't Just For Code
posted under category: IDEs and tools on March 17, 2016 at 10:48 am by Nathan
Many years ago I read an article where someone put their linux-os home directory in source control - probably CVS at the time, this was a while back. He'd had it running that way for a long time, too, and could roll-back his desktop to last week, checkout the latest version on any new PC, throw away destructive changes, and save & commit beneficial changes. It got me thinking. Version control software isn't just for code, it's for any file.
Years ago, when playing Minecraft server admin for my kids, I came up with the idea to put their Minecraft world into Git. We could check in changes nightly, which would allow us to blow everything up and just roll back, or invite a destructive friend over and then undo everything he did. It also gave us the ability to clone the server into a local world when the server was too slow, play locally, then push progress back up to the shared server. And then there's branching - one child could go out and do stuff in another part of the infinitely generated world, then merge changes back on to the server if it worked out, or drop the branch if it didn't. It's brilliant. It ended up a little more work than anyone wanted to do, but the idea was there.
Recently, when researching backup software, I found two real categories of solutions for backups:
- Your backup is just a copy of your files on another server or drive, with no historical data integrity
- Your backup software in a database somewhere, but you have to use specialized software to retrieve your files
After searching for a while, I found bup. It's actually based on Git, which gives you the best of both worlds for backup software - a live, local copy of files that you can browse like any file, plus versioned incremental backups that you need a special client to retrieve. You can host it on a file share, and effectively, git-clone (technically bup-clone) to add another backup server.
I've no doubt that there are a million other potential uses, too. Version control software is not just for programmers and code!