# cvsimport infinite loop

3 messages from 2008-02-09 to 2008-02-10. Participants: Peter Eisentraut, Martin Langhoff, Michael Haggerty.
Thread: https://gitlist.dev/t/11987

## Peter Eisentraut, 2008-02-09 11:45

Subject: cvsimport infinite loop
Message-ID: <200802091245.38578.peter_e@gmx.net>
URL: https://gitlist.dev/e/200802091245.38578.peter_e%40gmx.net

```
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, 2008-02-09 12:01

Subject: Re: cvsimport infinite loop
Message-ID: <46a038f90802090401n431659a5p1a9b457d4338695d@mail.gmail.com>
URL: https://gitlist.dev/e/46a038f90802090401n431659a5p1a9b457d4338695d%40mail.gmail.com
In-Reply-To: <200802091245.38578.peter_e@gmx.net>

```
On Feb 10, 2008 12:45 AM, Peter Eisentraut <peter_e@gmx.net> wrote:
> 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, 2008-02-10 16:38

Subject: Re: cvsimport infinite loop
Message-ID: <47AF2869.6030206@alum.mit.edu>
URL: https://gitlist.dev/e/47AF2869.6030206%40alum.mit.edu
In-Reply-To: <200802091245.38578.peter_e@gmx.net>

```
Peter Eisentraut wrote:
> 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

```
