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