LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - General (https://www.linuxquestions.org/questions/linux-general-1/)
-   -   looking for a revision file system (https://www.linuxquestions.org/questions/linux-general-1/looking-for-a-revision-file-system-737771/)

Skaperen 07-04-2009 07:22 PM

looking for a revision file system
 
I'm looking for a filesystem (working through FUSE is fine) that keeps revisions of files (or anything else). It would conceptually resemble a revision control system like CVS, GIT, HG, SVN. But I don't want something that wraps a filesystem on top of one of these revision control systems. I'd rather it operate on top of a regular file tree.

The way I'm thinking about how I might do this if I were to implement it is this. It would be a reflective file system in that it's basis would not be a partition, but instead, would be a file tree on another filesystem. It would store things in that file tree however the design implements it. The stored files could be actual files that are presented, or delta files to save space when large files have small differences, or meta files to manage things.

The mounting of this file system would have at least two different modes:

1. A read-only access to any past revision. The mount would have to specify what revision to access, however revisions are identified. A variant of this mode would present all revisions under a top level pseudo-directory that has names for each revision.

2. A writable current mount mode. Changes made here would create new revisions.

One issue is when do writes and changes increment the version. I seriously doubt anyone wants a new version triggered when one block of a file gets updated. Even when a file being written or updated is closed would be excessive. The revision increment should be roughly equivalent to a complete check-in on a typical revision storage system. An unmount after any change should certainly be the minimum to increment the revision. But it might be desired to leave it mounted across an increment, so some means to force an increment would be good. Maybe "mount -o remount,revisionincrement=yes /mnt/revfs" would be good enough.

Note that this would not be a distributed revision control system. There would be no check-out (that can be changed and later checked back in). Maybe that could also be done, but I would see that as complicated beyond what I would need this kind of thing for. I don't want this as something to replace a revision control system.

Has anyone seen anything like this? Would it have any uses to anyone other than me? One use I'd put it to is as the target when I make backups of other systems via rsync.

unSpawn 07-04-2009 07:52 PM

Is there nothing at http://sourceforge.net/apps/mediawik...ingFileSystems? Not FUSE, but how about http://www.nilfs.org/en/?

cmdln 07-04-2009 10:02 PM

Although I have no experience with them there is svnfs http://www.jmadden.eu/index.php/svnfs/ and gitfs http://www.sfgoth.com/~mitch/linux/gitfs/.

Skaperen 07-05-2009 01:01 AM

Quote:

Originally Posted by unSpawn (Post 3596960)

I had not found that list. There are a couple that are potential candidates there. But they seem to handle accessing the old versions in an awkward way. Still worth investigating. NILFS also looks interesting, but being a core filesystem, it has the risk of development at that level. I want to use one that has its storage on an existing filesystem (either via FUSE or directly).

Quote:

Originally Posted by cmdln (Post 3596994)
Although I have no experience with them there is svnfs http://www.jmadden.eu/index.php/svnfs/ and gitfs http://www.sfgoth.com/~mitch/linux/gitfs/.

Those work on top of existing revision control systems SVN and GIT. That's not the direction I want to go. This will involve many terabytes of data, primarily from rsync backups of other servers.


All times are GMT -5. The time now is 12:36 PM.