Versioning files in ubuntu ( like versions in mac os)

filesystemsrdiff-backupversioning

I'm a little lost as to where to look regarding this, which is why I'm asking, there might be something obvious out there and I'm simply not hitting the right google keywords.

Here's what I'm trying to go for:
I have multiple users accessing and modifying files in a directory (and it's sub directories) via a webapp. It can go from editing to uploading over them etc…
In case anyone makes a mistake I would like to implement some version control where users could eventually roll back changes if need be (a bit along the lines of Versions on mac)

We're talking videos, images mostly but also zip, pdf, text, word, etc. On an Ubuntu Server 12.04

I would like to find my best options short of having to develop the functionality within the webapp (this would be an absolute last resort). I am aware I'll have to add some functionality to the app to bridge with which ever tool I may find, and that's fine.

If I were willing to sacrifice the space required I could probably use rdiff-backup but given we're talking terabites in some cases I'm not so inclined to use this option (though it still is a possibility)

Are there any filesystem version control tools that are production ready? Can they be limited to a single dir?
Is there a tool that can monitor changes within a dir and write them as a diff in a transparent maner? ie: modifying a file doesn't modify the file but generates a diff, all this transparently so that it's as if the file were modified.. Etc.

Thanks in advance for your insight.
Are there any tools out there

Best Answer

The best option in this case would be snapshots as offered by ZFS or btrfs. However, there is no solid port of ZFS to Linux available (yet) and btrfs isn't stable enough for production use (IMHO).

Related Topic