[ On Thursday, March 16, 2000 at 13:27:19 (-0600), Andy Glew wrote: ]
> Subject: Re: CVS keywords and make
>
> Unfortunately, CVS's defaults are a bit awkward.

I don't find that to be true, but then again I don't try to overload the
meaning of keyword flags and thus I don't run into any of the problems
that those with unsupported expectations are bound to run into....  :-)

> cvs admin -kk, etc, set the default flag in the repository.
> cvs update -kk, etc. set the default flag in the checked out
>     working area, overriding the default in the repository.

Obviously you want to over-ride the repository default (which should
normally be nothing, unless it's a vendor branched repository in which
case you *might* want to make the repository default be '-ko').

> If you have binary files with -kb set in the repository
> (yeah, yeah, I know what you think about that Greg)
> then doing a cvs co -kk breaks them.

Too bad, so sad!  :-)  You're already on a road to difficulties, if not
out-right disaster, if you mix CVS and binary files so learning that
'cvs co -kk' causes problems with binaries isn't too much of a surprise.

> The only safe thing is to set -kk for various files in the
> repository, and then, selectively, use cvs update -kkv
> when you want expansions.  Export is, of course,
> broken in this regard.

That's doing things upside-down and inside-out.  Why make life hard for
yourself?  Even if you take the half-brained solution and put all the
binaries in a separate CVS module where you can handle them with the
care they'll require you'll at least not have to jump through hoops just
to use 'cvs co -kk' properly.

In any case 'cvs export' isn't broken if you keep within the expected
procedures and using 'cvs export -kv' (not -kkv) [with *no* keyword
flags set in the repository].  Explicitly having to use '-kkv' in any
command is a good indication that you've really screwed something up.

> Of course, only expanding keywords in releases loses
> much of the benefit of keywords. I use keywords for
> personal use; I don't do releases. But I find keywords
> useful in tracking down where files came from,
> especially if there are different CVS repositories around. 

Well, that depends of course on how you use "releases".  In my world a
release never officially makes it off the developer machine(s) [i.e. is
never taken any place where it might become necessary to identify the
version of any given file but where the repository is unavailable]
unless it is a frozen release....

> Not all CVS keyword expansions are equally bad.
> $Source$, for example, doesn't hurt since it changes
> rarely.  $Revision$ causes the unnecessary recompiles.
> But there is no way to specify "Expand $Source$ but not $Revision$."

Yup.  You've got to assume that any keyword of any real utility will
change every time you do anything to the file.....   :-)

> Around 1998 I started using C++ heavily.  
> Much to my displeasure, I discover that compile
> times matter again.

Hmm... C++ takes too long to compile, eh?  Sounds like yet another
reason to continue to avoid ever touching C++....  It most C++ compilers
generate far over-bloated binaries too....   Yuck.  Don't blame your
problems on CVS just because you're using bloated tools in less than
adequate environments.  You create the situation you must live with!  :-)

-- 
                                                        Greg A. Woods

+1 416 218-0098      VE3TCP      <[EMAIL PROTECTED]>      <robohack!woods>
Planix, Inc. <[EMAIL PROTECTED]>; Secrets of the Weird <[EMAIL PROTECTED]>

Reply via email to