I have now managed to investigate why some conversions of the PostgreSQL CVS
repository to other formats are having trouble or are failing. Here, I am
looking at git-cvsimport in particular.
The problem appears to be that several tags around the time of PostgreSQL 7.1
are broken or inconsistent. For instance, here is a piece of output of
cvsps:
WARNING: Invalid PatchSet 9441, Tag REL7_1: src/pl/plpgsql/src/mklang.sql.in:1.6=after,
src/pl/plpgsql/src/INSTALL:1.2=before. Treated as 'before'
It turns out that src/pl/plpgsql/src/mklang.sql.in:1.6 and
src/pl/plpgsql/src/INSTALL:1.2 are from the same commit ("PatchSet"), as
determined by a common log message and timestamp, but the REL7_1 tag is on
src/pl/plpgsql/src/mklang.sql.in:1.5 and src/pl/plpgsql/src/INSTALL:1.2. So
a part of the commit is before the tag and part of it is after the tag.
(The commit in question was to remove mklang.sql.in and adjust the INSTALL
contents accordingly.)
In fact, if you check out the REL7_1 tag, you get the new INSTALL file but
still the mklang.sql.in. The released postgresql-7.1.tar.gz tarball is
correct.
I guess the cause of this is that the tag was done on a partially updated
checkout.
There are a few dozen inconsistencies like this in the tags REL7_1_BETA,
REL7_1_BETA2, REL7_1_BETA3, REL7_1. As a consequence of this, checkouts of
the tags don't match the respective released tarballs.
Here are more examples:
WARNING: Invalid PatchSet 9297, Tag REL7_1: src/backend/port/hpux/port-protos.h:1.10=after, COPYRIGHT:1.6=before.
Treated as 'before'
WARNING: Invalid PatchSet 8906, Tag REL7_1: doc/src/sgml/populate.sgml:2.4=after,
doc/src/sgml/filelist.sgml:1.3=before. Treated as 'before'
WARNING: Invalid PatchSet 9371, Tag REL7_1: doc/TODO.detail/subquery:1.3=after, doc/TODO:1.366=before. Treated
as 'before'
WARNING: Invalid PatchSet 8815, Tag REL7_1_BETA2: src/include/c.h:1.2=after, contrib/pgcrypto/md5.c:1.2=before.
Treated
as 'before'
etc.
I could get the conversion to run successfully if I remove the mentioned tags.
When I find more time, I'm going to try if I can move/fix the tags instead so
they correspond to the actual releases and the patch sets become consistent.
In the meantime, does anyone have more information about how this came about?