Skip to Content.
Sympa Menu

freetds - Re: [freetds] $Id and include file

freetds AT lists.ibiblio.org

Subject: FreeTDS Development Group

List archive

Chronological Thread  
  • From: christos AT zoulas.com (Christos Zoulas)
  • To: FreeTDS Development Group <freetds AT lists.ibiblio.org>
  • Subject: Re: [freetds] $Id and include file
  • Date: Tue, 19 Oct 2004 13:59:39 -0400

On Oct 19, 1:09pm, entropy AT freetds.org (entropy AT freetds.org) wrote:
-- Subject: Re: [freetds] $Id and include file

| Christos Zoulas wrote:
|
| > For gcc you can:
|
| We support vendor compilers too, so I don't think a gcc-specific
| solution works for FreeTDS.

Well, it is simple enough to:

#ifdef __GNUC__
#define __RCSID(id) \
static const char rcsid[] \
__attribute__((__unused__,__section__(".ident"))) = id
#else
#define __RCSID(id)
static const char *rcsid(const char *x) { \
return x ? id : rcsid(x); \
}
#endif

| > It would be nice to change the rcsid strings in freetds to $FreeTDS$,
| > instead of using $Id$.
|
| I never really understood the benefit of this in the NetBSD tree. Can
| you elaborate on it some more? Why is it a win?


If you want to maintain your own changes in a vendor branch without using
-kb. Let's say I import freetds-x.yy with vendor tag FREETDS and release
tag FREETDSX_YY. If I don't specify -kb, $Id$ gets expanded. This is ok
as long as I don't make any local modifications to the files. For each
file I modify I will get a conflict on the next import, because the $Id$
expanded versions will not match. If I use -kb, then $Id$ does not get
expanded, so I don't get the conflicts. But this is suboptimal, because
I wanted to be able to see the $Id$ strings so I can keep track of
my changes. If a third party ident key is used such as $FreeTDS$, none
of the local cvs servers know about it so they leave it alone and I
can use $Id$ locally as much as I want to.

| Do we all need to hack
| up our CVS tools to support it, or do recent versions of CVS support it
| out-of-the-box?

Well, the only cvs binary that needs to be hacked is the CVS server the
FreeTDS people are using. It is not really a hack; I think that there is
compile time define (LOCALID?). The NetBSD cvs sources have been hacked
to allow a line tag=FooTag in CVSROOT/config for this purpose (so that
you don't need to recompile CVS).

christos




Archive powered by MHonArc 2.6.24.

Top of Page