threads / discuss / 11987

cvsimport infinite loop

Subject: cvsimport infinite loop

## tl;dr

3 messages between Feb 9, 2008 and Feb 10, 2008.

replies: 2people: 3as markdown or json

Peter Eisentraut· Feb 9, 2008, 11:45 UTC · lore

I'm trying to convert the PostgreSQL CVS to Git, using Git 1.5.4 (but the problem also occurs with earlier versions). To reproduce:

$ rsync -avzCH --delete anoncvs.postgresql.org::pgsql-cvs cvsroot/ $ git-cvsimport -v -d $PWD/cvsroot pgsql

This runs for a while and then messages like this are repeating:
WARNING: Invalid PatchSet 2062, Tag REL7_1_BETA2:
    src/include/c.h:1.17=after, src/include/executor/nodeNestloop.h:1.2=before. Treated as 'before'
WARNING: Invalid PatchSet 2062, Tag REL7_1_BETA2:
    src/include/c.h:1.17=after, src/include/executor/nodeResult.h:1.2=before. Treated as 'before'
WARNING: Invalid PatchSet 2062, Tag REL7_1_BETA2:
    src/include/c.h:1.17=after, src/include/executor/nodeSeqscan.h:1.3=before. Treated as 'before'
...
WARNING: Invalid PatchSet 2064, Tag REL7_1_BETA2:
    src/include/c.h:1.18=after, src/include/executor/nodeNestloop.h:1.3=before. Treated as 'before'
WARNING: Invalid PatchSet 2064, Tag REL7_1_BETA2:
    src/include/c.h:1.18=after, src/include/executor/nodeResult.h:1.3=before. Treated as 'before'
WARNING: Invalid PatchSet 2064, Tag REL7_1_BETA2:
    src/include/c.h:1.18=after, src/include/executor/nodeSeqscan.h:1.4=before. Treated as 'before'

... ... ...

and then they start again
WARNING: Invalid PatchSet 2062, Tag REL7_1_BETA2:
    src/include/c.h:1.17=after, src/include/executor/nodeNestloop.h:1.2=before. Treated as 'before'
WARNING: Invalid PatchSet 2062, Tag REL7_1_BETA2:
    src/include/c.h:1.17=after, src/include/executor/nodeResult.h:1.2=before. Treated as 'before'
WARNING: Invalid PatchSet 2062, Tag REL7_1_BETA2:
    src/include/c.h:1.17=after, src/include/executor/nodeSeqscan.h:1.3=before. Treated as 'before'
I've let this run all night and it doesn't stop.

I don't want to exclude the possibility that the CVS repository has had some funny business done to it over the years, but surely an infinite loop shouldn't happen in any case. Please advise.

Martin Langhoff· Feb 9, 2008, 12:01 UTC · re: Peter Eisentraut · lore

Re: cvsimport infinite loop

On Feb 10, 2008 12:45 AM, Peter Eisentraut <peter_e@gmx.net> wrote:
Show 5 quoted lines
> I've let this run all night and it doesn't stop.
>
> I don't want to exclude the possibility that the CVS repository has had some
> funny business done to it over the years, but surely an infinite loop
> shouldn't happen in any case.  Please advise.

Might be a bug in cvsps -- I tried an import earlier this year of the Pg repo and had a similar problem. parsecvs did handle it, but cannot do incrementals, which is a real shame.

cheers.
m
Michael Haggerty· Feb 10, 2008, 16:38 UTC · re: Peter Eisentraut · lore

Re: cvsimport infinite loop

Peter Eisentraut wrote:
Show 22 quoted lines
> I'm trying to convert the PostgreSQL CVS to Git, using Git 1.5.4 (but
> the problem also occurs with earlier versions).  To reproduce:
> 
> $ rsync -avzCH --delete anoncvs.postgresql.org::pgsql-cvs cvsroot/
> $ git-cvsimport -v -d $PWD/cvsroot pgsql
> 
> This runs for a while and then messages like this are repeating:
> 
> WARNING: Invalid PatchSet 2062, Tag REL7_1_BETA2:
>     src/include/c.h:1.17=after, src/include/executor/nodeNestloop.h:1.2=before. Treated as 'before'
> WARNING: Invalid PatchSet 2062, Tag REL7_1_BETA2:
>     src/include/c.h:1.17=after, src/include/executor/nodeResult.h:1.2=before. Treated as 'before'
> WARNING: Invalid PatchSet 2062, Tag REL7_1_BETA2:
>     src/include/c.h:1.17=after, src/include/executor/nodeSeqscan.h:1.3=before. Treated as 'before'
> 
> [...]
> 
> I've let this run all night and it doesn't stop.
> 
> I don't want to exclude the possibility that the CVS repository has had some
> funny business done to it over the years, but surely an infinite loop
> shouldn't happen in any case.  Please advise.
*Every* CVS repository contains some measure of funkiness :-).  I don't
know what caused this particular problem with cvsps, but judging from my
experience developing cvs2svn, a likely culprit would be a cycle in the
graph of dependencies between changesets that were inferred too naively.
 I had to teach cvs2svn graph theory to make it robustly handle
situations like this.

I just tried converting the pgsql repository using the trunk version of cvs2svn (which also supports output to git [2]). It worked fine. If you can work with a one-time conversion (as opposed to incremental) then consider using cvs2svn.

Michael

[1] http://cvs2svn.tigris.org [2] http://cvs2svn.tigris.org/cvs2git.html

← back to recent threads