Re: Authoring a versioning plugin

2006-01-13 Thread David Masover
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

2006-01-13 Thread Hans Reiser
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

2006-01-13 Thread Hans Reiser
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

2006-01-13 Thread Hans Reiser
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