Re: git: uh-oh

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Max Bowsher <maxb(at)f2s(dot)com>
Cc: Michael Haggerty <mhagger(at)alum(dot)mit(dot)edu>, Magnus Hagander <magnus(at)hagander(dot)net>, Robert Haas <robertmhaas(at)gmail(dot)com>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: git: uh-oh
Date: 2010-09-07 21:47:07
Message-ID: 26478.1283896027@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Max Bowsher <maxb(at)f2s(dot)com> writes:
> It wouldn't - except for the fact that cvs2git batches such manufactured
> commits such that there is no guarantee that a single manufactured
> commit pertains only to files in the commit immediately afterwards. For
> example, consider the it.po file in the commit referenced in this thread
> yesterday:

OK, I looked at this example, and I'm confused again. The actual 8.4
history of src/bin/pg_dump/po/it.po is that it was removed from HEAD
on 2009-06-26, before the 8.4 branch was split off; and then re-added to
the 8.4 branch on 2010-05-13, just before 8.4.4 was tagged. See
http://anoncvs.postgresql.org/cvsweb.cgi/pgsql/src/bin/pg_dump/po/it.po

Looking at Max's conversion with git log --all --source --name-status,
this file is shown as modified in the latter commit:

commit 575981a2fd6da5ccbf75c57580bf2d98b41f936e refs/tags/REL8_4_4
Author: Peter Eisentraut <peter_e(at)gmx(dot)net>
Date: Thu May 13 10:50:20 2010 +0000

Translation update

...
M src/bin/pg_dump/po/it.po
...

The deletion is correctly shown here:

commit 4ade8dc6f7030b14306916b787fa8f75e4d49b2e refs/tags/REL8_4_0
Author: Peter Eisentraut <peter_e(at)gmx(dot)net>
Date: Fri Jun 26 19:33:52 2009 +0000

Translation updates for 8.4 release.

File that are translated less than 80% have been removed, as per new
translation team policy.

...
D src/bin/pg_dump/po/it.po
...

Now I can find two intermediate commits that touched this file:

commit b78e79ec74fd4fac0c24753bbf8fa69fe7e6feb9 refs/tags/REL8_4_3
Author: PostgreSQL Daemon <webmaster(at)postgresql(dot)org>
Date: Fri Mar 12 03:23:24 2010 +0000

This commit was manufactured by cvs2svn to create tag 'REL8_4_3'.

Sprout from REL8_4_STABLE 2010-03-12 03:23:23 UTC Marc G. Fournier <scrappy(at)hub(dot)org> ''
Delete:
src/bin/pg_dump/po/it.po

D src/bin/pg_dump/po/it.po

commit b36518cb880bb236496ec3e505ede4001ce56157 refs/tags/REL8_4_4
Author: PostgreSQL Daemon <webmaster(at)postgresql(dot)org>
Date: Sun Feb 28 21:32:02 2010 +0000

This commit was manufactured by cvs2svn to create branch 'REL8_4_STABLE'.

Cherrypick from master 2010-02-28 21:31:57 UTC Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> 'Fix up memory management problems in contrib/xml2.':
contrib/xml2/expected/xml2.out
contrib/xml2/sql/xml2.sql
src/bin/pg_dump/po/it.po

A contrib/xml2/expected/xml2.out
A contrib/xml2/sql/xml2.sql
A src/bin/pg_dump/po/it.po

Now it seems to me that this is just totally wacko. In the first place,
the commit "manufactured by cvs2svn to create tag 'REL8_4_3'" postdates
the commit where Marc actually tagged 8.4.3:

commit 3aa54912637319c516f59d3a0265cb7826ed125f refs/tags/REL8_4_4
Author: Marc G. Fournier <scrappy(at)hub(dot)org>
Date: Fri Mar 12 03:23:23 2010 +0000

tag 8.4.3

M configure
M configure.in
M doc/bug.template
M src/include/pg_config.h.win32
M src/interfaces/libpq/libpq.rc.in
M src/port/win32ver.rc

BTW, why is this commit shown as being a predecessor of refs/tags/REL8_4_4
and not refs/tags/REL8_4_3? That's nothing to do with it.po, perhaps,
but it sure looks wrong. (Magnus, did you check against the 8.4.3 tarball?)

But the main gripe is: how can it be claimed to be sane to represent the
revision history as being that it.po was added to 8.4.4 two weeks before
it was deleted from 8.4.3?

There is definitely *something* not kosher about the manufactured-commit
logic.

regards, tom lane

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message David Fetter 2010-09-07 21:49:43 Re: "Freezing" per-role settings
Previous Message Jeff Davis 2010-09-07 21:43:12 Re: "Freezing" per-role settings