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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox