Re: Authoring a versioning plugin
Bedros Hanounik wrote: David, I appreciate your criticism, but we're not in a flame war. I never claimed to be an FS expert. Take it easy; you don't have to beat my suggestion to death. There's no perfect solution, and all feedbacks, no matter how idiotic or simple may seem, help making a better final solution. I didn't mean this to be a personal attack, or a flame. I was trying to be thorough, not confrontational. You did actually have a good idea -- the '.rev' -- but I just wanted to make sure that if it was done, it would be done right. Notice also that my last paragraph on that topic was how I think it should be done right -- which isn't that different than your idea. Again, I'm not the FS expert here. Nor am I. Just a fan, really.
Re: Authoring a versioning plugin
Peter van Hardenberg wrote: Hi Yoanis, good to see you're still pursuing this. On January 11, 2006 02:59 pm, Yoanis Gil Delgado wrote: This are the intentions: To write a versioning plugin that will allows the file system user to easily revert the files under versioning to a some previous state. The plugin will allow to revert the file state, based on revisions number and date modifications(and not sure about this one). There will be a special pseudo file named previous that will return the previous version of the file. The final result should allow to the the following actions: $ echo 1 myfile.txt (let's say we make this command at Wed Jan 11 16:53:55) $ echo 2 myfile.txt (let's say we make this command at Wed Jan 11 16:54:57) $ echo 3 myfile.txt (let's say we make this command at Wed Jan 11 16:55:59) Suppose you want the latest version, then you type: $ cat myfile/.../previous Some other content Or you want the n-th version, then you type: $ cat myfile/.../1 Some content $ cat myfile/.../2 Some other content $ cat myfile/.../3 This is going to clutter the ... directory rather a lot. Instead of adding more files into (which, by the way, is completely obscure) I would suggest you create a new pseudo directory. Perhaps: $ cat myfile/.^4/history/previous $ cat myfile/.^4/history/version/1 still not quite right, but at least it contains a bit more information about what the 1 refers to. Ok, lets use myfile//versions/1 etc. I imagine that attribute should be $ echo 1 myfile.txt//plugins/versioning or $ echo everywrite myfile.txt//plugins/versioning Unfortunately, my experience is that you cannot use echo to change the data in the plugins/* pseudoplugins, even when it should be legal to do so. I just had a little ruby script that looked roughly like this: f = open pseudofile; f.write('newplugin'); f.close; Never had the time to figure out why that was necessary, but there it is. (There is a comment on the plugin-wiki gotchas section.) If someone figures out why we can't do it but /proc can, or even fixes it, it would be good.
Re: Authoring a versioning plugin
Yoanis Gil Delgado wrote: On Thursday 12 January 2006 06:56 pm, you wrote: David, I appreciate your criticism, but we're not in a flame war. I never claimed to be an FS expert. Take it easy; you don't have to beat my suggestion to death. There's no perfect solution, and all feedbacks, no matter how idiotic or simple may seem, help making a better final solution. my suggestions were burst of the moment, I didn't give 'em much thoughts; however, all the problems you found could be fixed. Again, I'm not the FS expert here. -B Yes I agree with you Bedros, but i don't think David wanted to beat your suggestion to death. You're suggestions make me thinks things I have not preview. As you say the idea it's to find a good solution. What was it you agreed with?
Re: Authoring a versioning plugin
Toomas Laasik wrote: Hello, Here are some links that I have found while searching such file systems that can keep versions or log of changes: http://logfs.sourceforge.net/ - small logging filesystem project started by a student, but not very stable yet http://wayback.sourceforge.net/ - written in Perl, based on quite old version on FUSE API http://sourceforge.net/projects/cvsfs - uses CVS as file system, based on FUSE API http://www.opensolaris.org/os/community/zfs/ - very powerful file system that supports snapshots of files Microsoft has made something too on their server platform, but I couldn't find a link for that. It seems to me that many have started with it, but haven't finished. Creating a versioning FS that is comercially stable and fast takes a lot of effort and is quite complex. Go discover what and how others have done it and how to do it best in ReiserFS. I would be very interested in stable file system that supports automatic versioning. Maybe ReiserFS becomes the first one that I can actually use. I don't want a userspace FS, but a good FS where I can safely keep my FreeBSD installation. Toomas Clearcase is out there and finished and it works. Several thousand dollars a seat though ;-) Hans