Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

Any suggestions for how to implement something that's about halfway between version control and a backup system? Specifics:

I've been playing around with git and mercurial, and discovering that neither really fit my particular needs. Specifically: I'm trying to backup / version control (yes, I know - two different things. Please read on.) mostly unrelated scripts living in the same directory, configuration files, excel files - stuff that doesn't behave like a "software project". I am the sole author of these files, and almost never need to merge changes. I backup the current version, and make my changes in the "live" copy. The most merging I would ever do is to grab, say, a line from an old config and splice it in to a new one. Or maybe diff against an old version.

What I currently have: a "bak" directory, where I copy date-named revisions manually. I also use Areca for incremental backup on a system-wide basis.

What I want:

  • the ability to "check in" individual files in an extremely quick way (like 3 seconds / 2 clicks), basically as fast as I currently copy a file by hand. So either by context menu (windows), or command line (cygwin)
  • the ability to browse previous versions in a gui (and ideally, graphically diff & restore them) that's arranged per file, or like a directory tree, since a lot of these things live together by aren't interdependent the way source code files are.

What git/hg is giving me:

  • a commit history that's a giant linear chain that I have to hunt through for the versions of the file I'm interested in.
  • a new set of commands to learn, some of which are fairly arcane
  • no automatic retention of timestamps. I understand that this is by design - but I prefer to be able to glance through a directory listing, and see how old everything is.
  • but at least commits are quick

What areca is giving me:

  • a nice gui that is browseable in a way that I imagine is similar to Time Machine (though I don't have a mac), that presents everything as a directory structure parallel to the "real" one.
  • retention of file metadata
  • but running a full incremental is not cheap, in the way that committing a file is cheap

A "versioned file system" would be ideal, if I could store the backed up versions in a location of my choosing (possibly remote), and the format was human-readable... Oh, and I could control when it made the backups.

The best I can come up with is honestly "cp -p", or perhaps something clever with rsync that would let me do the incremental-rsync-with-hard-links thing, but be free to fire it off on a single file or small subtree at will.

share|improve this question

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Browse other questions tagged or ask your own question.