[ 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]>