public inbox for linux-fsdevel@vger.kernel.org
 help / color / mirror / Atom feed
From: Shaya Potter <spotter@cs.columbia.edu>
To: Jamie Lokier <jamie@shareable.org>
Cc: Erez Zadok <ezk@cs.sunysb.edu>, linux-fsdevel@vger.kernel.org
Subject: Re: fistgen-0.1.1 released (linux-2.6 support)
Date: Mon, 02 Aug 2004 18:54:10 -0700	[thread overview]
Message-ID: <1091498050.7483.8.camel@localhost.localdomain> (raw)
In-Reply-To: <20040802190817.GA11754@mail.shareable.org>

On Mon, 2004-08-02 at 20:08 +0100, Jamie Lokier wrote:
> Erez Zadok wrote:
> > Right, it looks like you want to support version trees (branches off of
> > branches, etc. ala CVS), as well as some ability to create composable views
> > that mix and match version "forks."
> 
> That is a complicated way of looking at it!
> 
> > We considered supporting version trees, but frankly, couldn't come up with a
> > compelling application for those that would justify the added complexity.
> > Such version trees are complex and hard to manage, and the most users get
> > really confused with version trees (CVS branch management is enough of a
> > reason to mess up :-)
> > 
> > Jamie, I'd love to get a detailed example of how one envisions using such a
> > versioning system, so I can see how much our current work may support it,
> > and what it'd take to make it do what you want.
> 
> One uses it by typing "cp -a dir1 dir2" or "cp -r dir1 dir2".
> 
> That's all.  There are no user-visible versions, no branch
> management, and no other commands.

I have a "working" (relative term as performance sucks) fs that can do
that.  It combined a file system based out of fist's templates and a bit
of hacking on ext3cow.

basic idea is that ext3cow provided the individual file versioning
semantic (and directories are just treated as containers) while the
stackable fs managed the branching (and deciding when to version and the
like).

was able to build 4 kernels side by side w/o a problem.

i.e. it was something along the lines of (from memory)

# mkfs.ext3cow /dev/loop0
# mount -t ext3cow /dev/loop0 /mnt
# mount -o bind /mnt /mnt1
# mount -o bind /mnt /mnt2
# mount -o bind /mnt /mnt3
# (cd /mnt ; tar xzf ~/linux.tar.gz)
# mount -t branchfs -o new_branch=new,old_branch=,(some fist
options) /mnt /mnt
# cd /mnt
# branch_ioctl new1
# mount -t branchfs -o new_branch=new2,old_branch=new,(some fist
options) /mnt1 /mnt1
# mount -t branchfs -o new_branch=new2,old_branch=new,(some fist
options) /mnt2 /mnt2
# mount -t branchfs -o new_branch=new2,old_branch=new,(some fist
options) /mnt2 /mnt2

lots of issues w/ it, but it was able to do the above as (well as then
build the kernels).

the stackable fs stored a lot of meta data on the underlying fs (i.e.
managing branches and the like) and it was my first attempt at doing it,
so probably made a lot of mistakes and hence the bad performance.

unfortunately been too busy working for msft this summer, so haven't had
a chance to try some of my ideas on fixing it up.

shaya


  parent reply	other threads:[~2004-08-03  1:57 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-07-30 21:05 fistgen-0.1.1 released (linux-2.6 support) Erez Zadok
2004-07-30 21:31 ` Jeff Garzik
2004-07-30 21:41   ` Erez Zadok
2004-07-31 10:54     ` Jamie Lokier
2004-07-31 12:04       ` David Chow
2004-07-31 14:23         ` Erez Zadok
2004-07-31 14:41       ` Erez Zadok
2004-07-31 19:57         ` Jamie Lokier
2004-08-02 18:18           ` Erez Zadok
2004-08-02 19:08             ` Jamie Lokier
2004-08-02 20:34               ` Erez Zadok
2004-08-03  1:54               ` Shaya Potter [this message]
2004-08-03 12:42                 ` Charles P. Wright
2004-08-03 15:05                   ` Shaya Potter

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1091498050.7483.8.camel@localhost.localdomain \
    --to=spotter@cs.columbia.edu \
    --cc=ezk@cs.sunysb.edu \
    --cc=jamie@shareable.org \
    --cc=linux-fsdevel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox