using cvswrappers
Matthew Dillon
dillon at apollo.backplane.com
Sun Nov 7 15:52:38 PST 2004
:I've seen the effect of cvswrappers, but can't figure out what I need to
:know to implement version headers in CVS files.
:
:for example, where/when/how are tags generated?
:
:# $FreeBSD: src/etc/periodic/weekly/310.locate,v 1.4.2.2 2000/09/20 02:46:17 jkh Exp $
:# $DragonFly: src/etc/periodic/weekly/310.locate,v 1.2 2003/06/17 04:24:48 dillon Exp $
:
:There are a lot if details that are unclear, like keeping only the
:current or relevant version line in the file (vs a new header being
:added at each checkin) or insuring the proper comment identifier is
:used according to the file type, etc.
:
:I presume a chunk of the task is manual, but how can that be if it is
:during checkin? What I'd like to see is an example or doc of a working
:system, but I've not been able to find anything specific. Are these
:typically executed by users or from the CVSROOT?
:
:// George
:
:--
:George Georgalis, systems architect, administrator Linux BSD IXOYE
There are three different formats to specify which CVS headers get
expanded in the file. The latest official CVS program uses a
combination of the LocalKeyword directive and the KeywordExpand
directive in CVSROOT/config to control which tags get expanded.
E.G. our DFly CVS has these lines:
LocalKeyword=DragonFly=CVSHeader
KeywordExpand=iDragonFly,Name
The first defines a special keyword called 'DragonFly' and assigns it
the same meaning as the CVSHeader CVS keyword.
The second tells CVS to expand all $blah$ variables named DragonFly
or Name. I forget what the 'i' means.
If you are creating your own personal CVS archive for this or that then
you would replace 'DragonFly' with your own personal keyword and then
use $ThatKeyword$ in your source files.
Note that the LocalKeyword option only works with two or three cvs
keywords, it does NOT work with all of the CVS keywords. I forget
which ones those are, but CVSHeader is one of them.
FreeBSD's CVS implements the BSD hack 'tag=' and 'tagexpand=' in
CVSROOT/options which serves the same function. e.g.:
tag=DragonFly=CVSHeader
tagexpand=iDragonFly,Name
And NetBSD or OpenBSD use yet another variant, depending on whos cvs you
are using. If you are using DFly's, I would stick with the Offical
CVS format if possible.
cvswrappers are another beast entirely. I can't explain that one in
a few lines but I will say it took me a whole day to get DragonFly's
CVS repository setup with all the bells and whistles (proper keyword
expansion, commit checking, commit mail, and so forth).
-Matt
Matthew Dillon
<dillon at xxxxxxxxxxxxx>
More information about the Users
mailing list