Skip site navigation (1) Skip section navigation (2)

Re: git: uh-oh

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Magnus Hagander <magnus(at)hagander(dot)net>
Cc: Michael Haggerty <mhagger(at)alum(dot)mit(dot)edu>, Max Bowsher <maxb(at)f2s(dot)com>, Robert Haas <robertmhaas(at)gmail(dot)com>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: git: uh-oh
Date: 2010-09-10 05:51:58
Message-ID: 15844.1284097918@sss.pgh.pa.us (view raw or flat)
Thread:
Lists: pgsql-hackers
Hey Magnus, what exactly was your process for verifying the file
contents of the various release tags in the git conversion?  Did
you check them against the published tarballs, or against what the
CVS repository said they should be?  Because I've just found that
this odd-looking manufactured commit:

commit 94b87adc86f5dce6ee5957af83c41fa1f8476c39	refs/tags/REL7_3_5
Author: PostgreSQL Daemon <webmaster(at)postgresql(dot)org>
Date:   Tue Dec 2 16:26:01 2003 +0000

    This commit was manufactured by cvs2svn to create tag 'REL7_3_5'.
    
    Sprout from REL7_3_STABLE 2003-12-02 16:26:00 UTC Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> 'Brand 7.3.5.'
    Delete:
        doc/src/graphics/catalogs.ag
        doc/src/graphics/catalogs.cgm
        doc/src/graphics/catalogs.gif
        doc/src/graphics/catalogs.ps
        doc/src/graphics/clientserver.ag
        doc/src/graphics/clientserver.gif
        doc/src/graphics/connections.ag
        doc/src/graphics/connections.gif
        src/data/charset.conf
        src/data/isocz-wincz.tab
        src/data/koi-alt.tab
        src/data/koi-iso.tab
        src/data/koi-koi.tab
        src/data/koi-mac.tab
        src/data/koi-win.tab
        src/interfaces/cli/example1.c
        src/interfaces/cli/example2.c
        src/interfaces/cli/sqlcli.h
        src/interfaces/ecpg/lib/Makefile
        src/interfaces/ecpg/lib/connect.c
        src/interfaces/ecpg/lib/data.c
        src/interfaces/ecpg/lib/descriptor.c
        src/interfaces/ecpg/lib/error.c
        src/interfaces/ecpg/lib/execute.c
        src/interfaces/ecpg/lib/extern.h
        src/interfaces/ecpg/lib/memory.c
        src/interfaces/ecpg/lib/misc.c
        src/interfaces/ecpg/lib/pg_type.h
        src/interfaces/ecpg/lib/prepare.c
        src/interfaces/ecpg/lib/typename.c
        src/interfaces/python/Announce
        src/interfaces/python/ChangeLog
        src/interfaces/python/GNUmakefile
        src/interfaces/python/PyGreSQL.spec
        src/interfaces/python/README
        src/interfaces/python/Setup.in.raw
        src/interfaces/python/pg.py
        src/interfaces/python/pgdb.py
        src/interfaces/python/pgmodule.c
        src/interfaces/python/setup.py
        src/interfaces/python/tutorial/advanced.py
        src/interfaces/python/tutorial/basics.py
        src/interfaces/python/tutorial/func.py
        src/interfaces/python/tutorial/syscat.py

D	doc/src/graphics/catalogs.ag
D	doc/src/graphics/catalogs.cgm
D	doc/src/graphics/catalogs.gif
D	doc/src/graphics/catalogs.ps
D	doc/src/graphics/clientserver.ag
D	doc/src/graphics/clientserver.gif
D	doc/src/graphics/connections.ag
D	doc/src/graphics/connections.gif
D	src/data/charset.conf
D	src/data/isocz-wincz.tab
D	src/data/koi-alt.tab
D	src/data/koi-iso.tab
D	src/data/koi-koi.tab
D	src/data/koi-mac.tab
D	src/data/koi-win.tab
D	src/interfaces/cli/example1.c
D	src/interfaces/cli/example2.c
D	src/interfaces/cli/sqlcli.h
D	src/interfaces/ecpg/lib/Makefile
D	src/interfaces/ecpg/lib/connect.c
D	src/interfaces/ecpg/lib/data.c
D	src/interfaces/ecpg/lib/descriptor.c
D	src/interfaces/ecpg/lib/error.c
D	src/interfaces/ecpg/lib/execute.c
D	src/interfaces/ecpg/lib/extern.h
D	src/interfaces/ecpg/lib/memory.c
D	src/interfaces/ecpg/lib/misc.c
D	src/interfaces/ecpg/lib/pg_type.h
D	src/interfaces/ecpg/lib/prepare.c
D	src/interfaces/ecpg/lib/typename.c
D	src/interfaces/python/Announce
D	src/interfaces/python/ChangeLog
D	src/interfaces/python/GNUmakefile
D	src/interfaces/python/PyGreSQL.spec
D	src/interfaces/python/README
D	src/interfaces/python/Setup.in.raw
D	src/interfaces/python/pg.py
D	src/interfaces/python/pgdb.py
D	src/interfaces/python/pgmodule.c
D	src/interfaces/python/setup.py
D	src/interfaces/python/tutorial/advanced.py
D	src/interfaces/python/tutorial/basics.py
D	src/interfaces/python/tutorial/func.py
D	src/interfaces/python/tutorial/syscat.py

is there because these files have no REL7_3_5 tag according to CVS.
Which is damn weird, because they all have tags for the preceding
and following releases, *and they are there in the published tarball*.

It looks to me like what didn't get tagged is a few complete
directories, which means the most likely mechanism is the "cvs tag"
operation being run in a checkout tree that lacked these subdirectories
for some reason.  But that's just a guess; we'll probably never know
for sure.

Anyway I am now thinking that we'd better compare published tarballs to
the CVS tags and find out what other discrepancies there are.  The
checking we've done to verify releases in the past has always been that
the tarballs were sane, not that the tagging was sane, so in case of any
discrepancy I'd say the tarball should be considered authoritative.

I've already found one other issue: the root HISTORY and INSTALL files
have REL7_3_10 tags and should not.  This is not entirely CVS' fault
though: I think what happened is that Marc manually moved the
already-applied REL7_3_10 tag when we re-did that release, and didn't
account for the fact that I'd deleted those two files in the branch
meanwhile.  That one is also confusing cvs2git no end.

			regards, tom lane

In response to

Responses

pgsql-hackers by date

Next:From: Magnus HaganderDate: 2010-09-10 07:45:00
Subject: Re: [BUGS] BUG #5305: Postgres service stops when closing Windows session
Previous:From: Darren DuncanDate: 2010-09-10 05:02:14
Subject: Re: returning multiple result sets from a stored procedure

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group