From: Jerome de Vivie <jerome.de-vivie@wanadoo.fr>
To: Andrew Pimlott <andrew@pimlott.ne.mediaone.net>
Cc: linux-kernel@vger.kernel.org, linux-fsdev@vger.kernel.org,
martizab@libertsurf.fr, rusty@rustcorp.com.au
Subject: Re: Yet another linux filesytem: with version control
Date: Tue, 24 Jul 2001 19:14:02 +0200 [thread overview]
Message-ID: <3B5DACDA.69D0B81A@wanadoo.fr> (raw)
In-Reply-To: <3B5C91DA.3C8073AC@wanadoo.fr> <20010724090704.A27771@pimlott.ne.mediaone.net>
Andrew Pimlott a écrit :
>
> On Mon, Jul 23, 2001 at 11:06:34PM +0200, Jerome de Vivie wrote:
> > >From CVS to ClearCase, i haven't seen any easy tool. I feel a real
> > need to handle SCM simply.
>
> I think your approach is too simple. ClearCase is a monster, but at
> the core is conceptually sound (assuming the goal is file-based
> control, not change-set-based; Rational has tried to layer a
> change-set-based product on top of ClearCase, and I hear it is a
> mess). By comparison you are missing some important things, some of
> which I will try to point out.
>
> > Here's the main features:
> >
> > -no check-out/check-in
>
> (You do have check-in, you just call it something else.)
Yes: co is now a "copy on write", so it's automatic.
>
> > When a C-file is created,
>
> Presumably this is an explicit operation? What system call?
Yes it's explicit. I know though about a userspace solution but
i would have added a "O_CREATE like" flags on open, or use ioctl.
> per-user? So how do I let another developer look at what I'm
> working on? In ClearCase, it's one private version per-view, which
> is much more flexible.
No.
> Does the private copy know which label it was branched from? This
> is essential.
Yes.
>
> > When a developper has reach a step and, would like to share his work;
> > he creates a new label.
>
> Ie, check-in by a different name. What system call?
Yes. Probably with a ioctl (but now with a user command !)
>
> > This label will be put on every private copy
> > listed in the UFL and, the UFL is zeroed.
>
> If I have to check in all files at once, it is even more important
> that I be able to have multiple "views". What if, in the middle of
> a big change, I make a small fix that I want to check in
> independently?
It's impossible. If you want to go back, you have to put a label on
each step you want and, set the $CONFIGURATION to this label.
>
> > 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).
>
> You just threw away the most useful feature of filesystem
> integration: comparing different versions. How do I do this if
> everything is keyed off $CONFIGURATION?
With 2 process and shared memory, it should be possible but i haven't
though deeper.
>
> I really don't see what you've gained over CVS. (Once you add in
> all the little things you didn't mention: setting up the filesystem,
> adding files to version control, etc, I don't think you can argue
> that your system is simpler.)
A developper has a minimum operation to do:
-set his configuration
-commit his work
That's all ! No branch, no config-spec, no view server, no vob server,
no registery server, no ci, no co, ...
>
> Also, what if you create a label, but forget to update
> $CONFIGURATION, and start to make more changes? You can just say
> "stupid user", but the fact that this failure mode exists is a wart.
1. You stop from this new "branch".
2. You commit your work with a new label.
3. You set $CONFIGURATION to the good label and merge the previous
work into.
>
> How will the existing merge tool work, if a single process can only
> see one $CONFIGURATION?
Same as for diff (...but now, obolete)
>
> Here's my conclusion: The overall semantics of a version control
> system are non-trivial and should be kept out of the kernel. The
> real win with kernel integration is transparent, flexible, read-only
> access to versions. Your scheme puts unnecessary stuff in the
> kernel, without getting the most important thing right.
>
> (The only other potential win I see with kernel integration is
> check-out-on-write, but that doesn't sound like a big deal to me.)
Copy-on-write was the first new idea. Using the same system
(labelization) to identify both individual version and configuration
is also a neat idea. The last one is "hacking the nfsd" (thx Rik !)
I'm sure that we can handle SCM differently.
regards,
j.
--
Jerome de Vivie jerome . de - vivie @ wanadoo . fr
next prev parent reply other threads:[~2001-07-24 17:11 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
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 [this message]
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=3B5DACDA.69D0B81A@wanadoo.fr \
--to=jerome.de-vivie@wanadoo.fr \
--cc=andrew@pimlott.ne.mediaone.net \
--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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.