Re: git: uh-oh

From: Michael Haggerty <mhagger(at)alum(dot)mit(dot)edu>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Max Bowsher <maxb(at)f2s(dot)com>, Robert Haas <robertmhaas(at)gmail(dot)com>, pgsql-hackers(at)postgresql(dot)org
Subject: Re: git: uh-oh
Date: 2010-09-06 15:32:00
Message-ID: 4C850970.9010508@alum.mit.edu
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Tom Lane wrote:
> I wrote:
>> Michael Haggerty <mhagger(at)alum(dot)mit(dot)edu> writes:
>>> On the contrary, I prefer an obvious indication of "I don't know" to a
>>> value that might appear to be authoritative but is really just a guess.
>>> It could be that one user copied the file verbatim to the branch and a
>>> second user changed the file as part of an unrelated change.
>
>> Hm, I see.
>
> Actually, no I don't see. That sort of history might be possible in
> some SCMs, but how is it possible in CVS? The only way to get a file
> into a back branch is "cvs add" then "cvs commit", and the commit is
> recorded, even if the file exactly matches what was in HEAD.

No, it is also possible to use "cvs tag -b REL8_4_STABLE filename". In
this case the file as it appears on the current branch is added to the
specified branch, but CVS records no commit, author, or timestamp.

> It's also a bit distressing that the manufactured commit bogusly
> includes a totally unrelated file:
>
> commit b36518cb880bb236496ec3e505ede4001ce56157
> 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
>
> (This is from the REL8_4_STABLE history in Max's repository.)
> The cherrypicked commit certainly did not include anything in
> pg_dump/po/it.po, so what happened here?

Given that adding a branch tag to a file leaves behind so little
metainformation, cvs2svn has almost no information on which to base its
decision of what file branchings to group together. So it groups as
many as possible together consistent with the timestamps of the commits
preceding and following the branching.

Michael

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Heikki Linnakangas 2010-09-06 16:27:05 Re: Interruptible sleeps (was Re: CommitFest 2009-07: Yay, Kevin! Thanks, reviewers!)
Previous Message Pavel Stehule 2010-09-06 15:05:29 Re: string function - "format" function proposal