public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* Yet another linux filesytem: with version control
@ 2001-07-23 21:06 Jerome de Vivie
  2001-07-23 21:17 ` Larry McVoy
                   ` (2 more replies)
  0 siblings, 3 replies; 26+ messages in thread
From: Jerome de Vivie @ 2001-07-23 21:06 UTC (permalink / raw)
  To: linux-kernel, linux-fsdev, martizab, rusty

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

^ permalink raw reply	[flat|nested] 26+ messages in thread
* Re: Yet another linux filesytem: with version control
@ 2001-07-23 22:50 Florin Iucha
  0 siblings, 0 replies; 26+ messages in thread
From: Florin Iucha @ 2001-07-23 22:50 UTC (permalink / raw)
  To: linux-kernel

Check out the katie project:

	http://www.netcraft.com.au/geoffrey/katie/

florin

-- 

"If it's not broken, is because you are not fixing it enough."

41A9 2BDE 8E11 F1C5 87A6  03EE 34B3 E075 3B90 DFE4

^ permalink raw reply	[flat|nested] 26+ messages in thread

end of thread, other threads:[~2001-07-25  0:50 UTC | newest]

Thread overview: 26+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2001-07-23 21:06 Yet another linux filesytem: with version control Jerome de Vivie
2001-07-23 21:17 ` 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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox