Re: using bitkeeper to backport subsystems?

From: Eric W. Biederman (ebiederm@xmission.com)
Date: Tue Jul 23 2002 - 13:38:54 EST


Larry McVoy <lm@bitmover.com> writes:

> On Mon, Jul 22, 2002 at 11:29:41PM +0100, Roger Gammans wrote:
> > On Mon, Jul 22, 2002 at 08:20:31AM -0700, Tom Rini wrote:
> > > Possibly, once bitkeeper allowes ChangeSets to only depend on what they
> > > actually need, not every previous ChangeSet in the repository. IIRC,
> > > this was one of the things Linus asked for, so hopefully it will happen.
> >
> > While that would be great.
> >
> > With all due respect to Larry and the bk team, I think you'll
> > find determining 'needed changesets' in this case is a _hard_ problem.
>
> Thanks, we agree completely. It's actually an impossible problem
> for a program since it requires semantic knowledge of the content
> under revision control. And even then the program can get it wrong
> (think about a change which shortens the depth of the stack followed by
> a change that won't work with the old stack depth, now you export that
> to the other tree and it breaks yet it worked in the first tree).

Perfection is impossible. However there is a lot of independent code
in the linux kernel. It has to be that way or maintenance would quickly
become impossible.

The last time this was suggested, the idea was to look how far back into
the repository (up to a given limit) a current changeset could apply, with all
of it's current dependencies.

But beyond that I suspect it would be easier to declare lack of dependencies.

drivers/net and drivers/ide are completely separate subtrees. At
least not until you get ATA over ip. And even then the dependencies
is with the ip layer.

Maybe independence should be shown by putting each independent chunk
into it's own repository. And then building a working kernel tree
would just be a matter of checking out all of the parallel
repositories, into the appropriate location. Then the global tree
can just remember which version of all of the subtrees it was
tested with last.

Given that a fully independent program is likely to break because of
a buggy libc (which I have no business depending upon the exact
version), I think the insistence on global dependencies is just plain
silly, you can never find the entire set of dependencies.

So Larry please cope with the fact that perfect dependency modeling is
impossible, and setup a method that works in the real world. Or do
you have a way to model that my code only works on a magic test
machine, that magically catches a page fault, and does the right
thing, while all other machines page fault reliably?

Eric
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Tue Jul 23 2002 - 22:00:44 EST