Re: CVS, Linus, and us

Keith Mason (kamason@robots.com)
Fri, 23 Feb 96 14:52:22 PST


> > How about this: One person creates and exports an official CVS tree that
> > development is *not* performed on. The tree is strictly for the purpose
> > of being able to apply patches between different releases.
> >
> > This would also allow people to be able to maintain their own local patches
> > that should not be applied to the public sources, without having to unpatch
> > update and repatch (and try to figure out which hunks failed and why).
>
> Um. CVS isn't magic. If patching fails, chances are CVS will too - so
> you have at least as much work, and if CVS fails silently you have a
> lot *more* work trying to figure out why nothing works any more.
>
> CVS has certain advantages, but I don't see there being a strong case
> for it. If it leads to even one significant bug due to a failed merge,
> it should not be used.

First, CVS doesn't fail silently. Second, I find it MUCH easier to figure
out what CVS repository changes broke my local changes than to unpatch,
get new source tree, repatch, and try to see what the error messages patch
gave out as they fly off the screen.

If the local patches were *not* to fail, a simple "cvs update" is much
easier to perform than unpatch-getnewtree-repatch.

When a local patch does fail, CVS leaves this really nice block in the file
showing what repository and local changes overlapped. It's almost always
very easy to fix the overlap.

A failed merge will never compile because the compiler will give errors
on the overlap markers. And a bad patch will never make it into the
repository because only one person will have write access (and he'll
only add Linus' approved patches).

Basically, my only real argument for using CVS is that it's a nice high-
level tool for performing diffs and patches between arbitrary revisions
cleanly and easily. diff and patch are nice commands, but it can be
rather difficult to interpret their output.

And this does NOT mean that CVS has to be used in any official manner.
For those who like CVS and it's abilities, one person can keep a
repository available for their use. If you don't like CVS, then there's
nothing to keep you from using the current patch method of distribution.

In fact, if I were a kernel beta tester (I'd like to but there's not
enough time), I might even consider keeping a CVS-ized version of the
kernel up-to-date solely for my personal use a good investment.

-- Keith