git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: git-cvsimport: $cvs->file() fails silently

From
Martin Langhoff <martin.langhoff@gmail.com>
Date
Nov 1, 2005, 01:22 UTC
Message-ID
<46a038f90510311722y56eadd3bj1ae53db05c496c67@mail.gmail.com>
In-Reply-To
<46a038f90510262123y4f56cf7v5494b391394ac648@mail.gmail.com>
On 10/27/05, Martin Langhoff <martin.langhoff@gmail.com> wrote:
> There _must_ be one place that we're missing but I just can't
> see it.

Got some more info on this. The output of cvsimport when this happens looks like this:

Read from remote host cvs.sourceforge.net: Connection reset by peer Read from remote host cvs.sourceforge.net: Connection reset by peer Update course/enrol.php: bytes Use of uninitialized value in split at /home/martin/local/git/git-cvsimport line 362. Update lang/en/moodle.php: 66792 bytes Tree ID ef11ad5a0cf917e98bc477837de1b3f587e12027 Parent ID e972b3a28e1c4802fc5af6a996164c93fb4f3e53 Committed patch 20143 (MOODLE_15_STABLE 2005-10-31 20:31:57) Commit ID 95a748b0d9cd6dc74e65497561514fa5858c149c

Around line 335 $res = $self->_line($fh); is returning '', which is defined but otherwise empty. I've patched cvsimport thus to try and catch this kind of error:

diff --git a/git-cvsimport.perl b/git-cvsimport.perl
index bbb83fb..f594df3 100755
--- a/git-cvsimport.perl
+++ b/git-cvsimport.perl
@@ -337,6 +337,10 @@ sub file {
        }
        close ($fh);

+       if ($res eq '') {
+           die "Looks like the server has gone away during the transaction!";
+       }
+
        return ($name, $res);
 }

@@ -764,6 +768,9 @@ while(<CVS>) {
                my $rev = $3;
                $fn =~ s#^/+##;
                my ($tmpname, $size) = $cvs->file($fn,$rev);
+               if ($size eq '') {
+                       die "Should not happen! Something went wrong
with the remote connection";
+               }
                if($size == -1) {
                        push(@old,$fn);
                        print "Drop $fn\n" if $opt_v;

Now, I'm sure we can catch it in the "right" place, but I'm not sure
where that is.

cheers,


martin
Previous: Martin Langhoff
Message 2 of 2 in “git-cvsimport: $cvs->file() fails silently”
  1. Martin LanghoffOct 27, 2005
  2. Martin LanghoffNov 1, 2005

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.