The Dopefly Tech Blog

« The Dopefly Tech Blog Main page

Version Control Software Isn't Just For Code

posted under category: IDEs and tools on March 17, 2016 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!

Nathan is a software developer at The Boeing Company in Charleston, SC. He is essentially a big programming nerd. Really, you could say that makes him a nerd among nerds. Aside from making software for the web, he plays with tech toys and likes to think about programming's big picture while speaking at conferences and generally impressing people with massive nerdiness and straight-faced sarcastic humor. Nathan got his programming start writing batch files in DOS. It should go without saying, but these thought and opinions have nothing to do with Boeing in any way.
This blog is also available as an RSS 2.0 feed. Click your heels together and click here to contact Nathan.