cvs commit: projects/csup keyword.c keyword.h updater.c
mux at FreeBSD.org
Sat Feb 11 20:10:29 PST 2006
mux 2006-02-12 04:10:28 UTC
FreeBSD projects repository
csup keyword.c keyword.h updater.c
- Unbreak updates from a PostgreSQL CVSup server. This is really, really
weird... What was breaking updates from OpenBSD CVSup servers was that
I wasn't expanding the $OpenBSD$ tags, because I wasn't enabling
aliases when adding them; and the server was just doing that, that is
adding $OpenBSD$ as an alias for $Id$. Later, I realized that this
broke updates from PostgreSQL servers because those were expecting me
_not_ to expand the $PostgreSQL$ tags. Similarly to the OpenBSD
server, I was just being told that $PostgreSQL$ was an alias for $Id$.
The actual difference between those two servers is what looks really
weird. CVSup computes the keyLenMin and keyLenMax variables, that
are the minimum and the maximum length of a keyword. It only computes
those values on the standard RCS keywords ($Id$, $Revision$ etc) and
doesn't update them when adding an alias. It then uses these variables
to reject any keyword bigger than the max or shorter than the min.
And, guess what? "PostgreSQL" is longer than the longest RCS keyword,
which is "CVSHeader".
I'm adding a big comment to explain this stuff.
- While I'm here, move the parsing of the expansion mode where it more
rightly belongs, in keyword.c, accessible through the new
Revision Changes Path
1.26 +37 -7 projects/csup/keyword.c
1.10 +2 -1 projects/csup/keyword.h
1.74 +3 -16 projects/csup/updater.c
More information about the cvs-all