public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Jerome de Vivie <jerome.de-vivie@wanadoo.fr>
To: linux-kernel@vger.kernel.org, linux-fsdev@vger.kernel.org,
	martizab@libertsurf.fr, rusty@rustcorp.com.au
Subject: Yet another linux filesytem: with version control
Date: Mon, 23 Jul 2001 23:06:34 +0200	[thread overview]
Message-ID: <3B5C91DA.3C8073AC@wanadoo.fr> (raw)

Hi all,

Handling multiples versions is a tough challenge (...even in the linux
kernel). Working under software configuration management (SCM) helps
but with some overhead; and it works only if everybody support it.

>From CVS to ClearCase, i haven't seen any easy tool. I feel a real 
need to handle SCM simply.

The multiple version filesystem (mvfs) of ClearCase gives a
transparent acces to the data. I found this feature cool, but the
overall system is too complex. I would like to write an extension
module for the linux kernel to handle version control in a simply way.


Here's the main features:

-no check-out/check-in 
-labelization 
-private copy
-transparent acces to data 
-select configuration with a single environment variable. 
-mix of normal files (with the base FS) and, files which are managed 
under version control (C-files) in a same filesystem.

Here's how i see it works:

When a C-file is created, the label "init" is put onto.  The first
write on a C-file create a private copy for the user who run the
process. This C-file is added to a "User File List" (UFL). This
private copy is now selected by the FS in place of version "init". 
Each user can start his own private copy by writting into a C-file.

When a developper has reach a step and, would like to share his work;
he creates a new label. This label will be put on every private copy
listed in the UFL and, the UFL is zeroed. Thoses new versions
are now public. They are viewed by setting $CONFIGURATION to the new
label. New developpement can be start from this label.

The label "init" is predefined. Labels will be organized in a tree 
and, the structure will look like this:

struct label {
       int id;
       char [] name;
       struct label * parent;
}

When we access a C-file with a "read" or a "write", the extension
module select one version with the following rules:

First, if the C-file is into the UFL, we have a private copy to
select. Else, we choose the version labeled by "$CONFIGURATION". If
such version does not exist, we search the version marked by the
nearest "parent" label (at least, label "init" match).

In kernel side, we need to manage the following structes:
-a tree of versions for each C-file.
-a tree of labels.
-a UFL list for each developpers.


In userland, we need:
-a "mklabel" tool.
-use a "CONFIGURATION" environment variable.
-use existing tool for "merge" operations.


If my design match your needs and, if there is enough feedback; i will
start this project. As i'm not a super kernel hacker, i need your help.

Any volunters are welcome !

j.

-- 
Jerome de Vivie 	jerome . de - vivie @ wanadoo . fr

             reply	other threads:[~2001-07-23 21:04 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-07-23 21:06 Jerome de Vivie [this message]
2001-07-23 21:17 ` Yet another linux filesytem: with version control Larry McVoy
2001-07-23 21:51   ` Rik van Riel
2001-07-23 22:19     ` Jerome de Vivie
2001-07-23 22:29       ` Rik van Riel
2001-07-23 23:05         ` Jerome de Vivie
2001-07-23 23:30           ` Rik van Riel
2001-07-24 13:30             ` Olivier Galibert
2001-07-24 16:42             ` Jerome de Vivie
2001-07-23 23:14         ` Larry McVoy
2001-07-24 23:57       ` Peter A. Castro
2001-07-23 22:00   ` Jerome de Vivie
2001-07-23 22:14     ` Larry McVoy
2001-07-23 22:27       ` Jerome de Vivie
2001-07-24  5:24   ` Albert D. Cahalan
2001-07-24  5:34     ` Larry McVoy
2001-07-24  6:06       ` Alexander Viro
2001-07-24  9:30       ` Padraig Brady
2001-07-24 19:07     ` Jan Harkes
2001-07-24  2:13 ` Keith Owens
2001-07-24 13:07 ` Andrew Pimlott
2001-07-24 17:14   ` Jerome de Vivie
2001-07-24 19:05     ` Andrew Pimlott
2001-07-24 23:14       ` Jerome de Vivie
2001-07-25  0:39         ` Andrew Pimlott
  -- strict thread matches above, loose matches on Subject: below --
2001-07-23 22:50 Florin Iucha

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=3B5C91DA.3C8073AC@wanadoo.fr \
    --to=jerome.de-vivie@wanadoo.fr \
    --cc=linux-fsdev@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=martizab@libertsurf.fr \
    --cc=rusty@rustcorp.com.au \
    /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