Skip site navigation (1)Skip section navigation (2)
Date:      13 Mar 2002 23:53:01 +0100
From:      Dag-Erling Smorgrav <des@ofug.org>
To:        obrien@FreeBSD.ORG
Cc:        "Brian F. Feldman" <green@FreeBSD.ORG>, arch@FreeBSD.ORG
Subject:   Re: Unmoronify CVS
Message-ID:  <xzpit8013n6.fsf@flood.ping.uio.no>
In-Reply-To: <20020313143522.A13768@dragon.nuxi.com>
References:  <xzphenkfaif.fsf@flood.ping.uio.no> <200203132158.g2DLwW611237@green.bikeshed.org> <20020313143522.A13768@dragon.nuxi.com>

next in thread | previous in thread | raw e-mail | index | archive | help
"David O'Brien" <obrien@FreeBSD.ORG> writes:
> Neither of you two have yet to give real justification.
> I use -R all the time -- does that mean I am not using a "read-only"
> repo?  I use serveral repos with "dozens or hundreds or thousands of
> modules" and it isn't "generally pisses [me] off".

Because you don't use tags much, or the read-only repos you use have
fully populated val-tags.

> Please explain in more detail.

There are three possible scenarios:

a) The tag you're asking for is in val-tags.  No sweat.  CVS scans all
   the files you're asking it to operate on, and does whatever you
   asked it to do.

b) The tag you're asking for exists, but isn't in val-tags.  CVS will
   scan all the files you're asking it to operate on, looking for the
   tag - and it won't stop at the first hit.  It will then add the tag
   to val-tags (if possible) and go to a), or fail because val-tags
   isn't writeable.  Note that CVS processes every file twice - once
   to see if it has the tag, and once to actually perform the
   requested operation.

c) The tag you're asking for does not exist.  CVS will scan all the
   files you're asking it to operate on, and give you an error message.

Without val-tags, these three cases become:

a) No difference.

b) Go directly to a), scanning each file once rather than twice, and
   don't fail if the repo is read-only.

c) Try to do whatever you asked it to do, and fail.

So val-tags adds no value whatsoever in cases a) and b), and actually
pessimizes case b) (which I encounter often enough to be *really*
pissed off at val-tags).  It all hinges on case c), so let's take a
closer look at it.

The idea with case c) is that CVS should be able to tell you that none
of the files you asked it to operate on have the tag you specified.
But:

 - That may be intentional.  Maybe you're 'cvs up'ing to a nonexistent
   tag in order to quickly and cleanly remove all unmodified files in
   your tree.

 - You'd find out quickly enough anyway, at very little or no expense;
   if you typed 'cvs up -rRELEN_4' by mistake, you'll very quickly
   realize you've done something wrong, as CVS starts removing all
   unmodified files, and you can recover by aborting and restarting
   the command with the correct tag; you won't have lost anything.

 - When operating on portions of the tree, val-tags can give false
   positives because the tag you asked for exists in another part of
   the tree.

To summarize, val-tags saves a little time in a small number of cases,
is useless in most cases, and outright harmful in many common cases.

And all this is a waste of my time; rather than ask why I want it
removed, you should accept that I (and many others) consider it an
incredible nuisance, and focus instead on explaining how *you* benefit
from it, so we can understand why you're opposed to my patch.

DES
-- 
Dag-Erling Smorgrav - des@ofug.org

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-arch" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?xzpit8013n6.fsf>