Hi Thanks for reply, but sorry I don't know how to do that - I don't have the git source code or know how to debug it. Is there another way I can capture logging/debugging information while running "git svn clone" and send it to you? Thanks Andrew Shearer / Web Developer DDI 021 469 888 / andrew@xxxxxxxxxxxxxx /TERABYTE -----Original Message----- From: Ævar Arnfjörð Bjarmason <avarab@xxxxxxxxx> Sent: Thursday, 20 December 2018 8:00 AM To: Andrew Shearer <andrew@xxxxxxxxxxxxxx> Cc: git@xxxxxxxxxxxxxxx; Eric Wong <e@xxxxxxxxx> Subject: Re: error: Use of uninitialized value $hash in chomp On Wed, Dec 19 2018, Andrew Shearer wrote: > Hello > > I am using a "git svn clone" command to extract our project history from svn into git. > About 30m into the process it fails with: > > r50739 = 2a1491de1353b1e3cce50d8f9d383407218a44f1 > (refs/remotes/git-svn) > fatal: Cannot open '.git/Git_svn_delta_33316_0_UkxiJV': Permission > denied Use of uninitialized value $hash in chomp at C:/Program Files/Git/mingw64/share/perl5/Git.pm line 929, <GEN11> line 36311. > hash-object -w --stdin-paths --no-filters: command returned error: 128 > > error closing pipe: Bad file descriptor at C:/Program Files/Git/mingw64/libexec/git-core\git-svn line 0. > error closing pipe: Bad file descriptor at C:/Program Files/Git/mingw64/libexec/git-core\git-svn line 0. > (in cleanup) at /usr/share/perl5/vendor_perl/Error.pm line 198 during global destruction. > > I tried updating to the latest build, 2.20.1.windows, but it still fails. > > There is nothing particularly special about svn changeset 50739 that I can see compared to any other. > Anyone know why this might be failing or how I could resolve it? That "Permission denied" looks scary. Don't know how git-svn gets into this, but try with this patch on top: diff --git a/perl/Git.pm b/perl/Git.pm index d856930b2e..f5d15895d3 100644 --- a/perl/Git.pm +++ b/perl/Git.pm @@ -926,7 +926,13 @@ sub hash_and_insert_object { throw Error::Simple("out pipe went bad"); } - chomp(my $hash = <$in>); + my $hash = <$in>; + unless (defined $hash) { + sub noes { die "blah" } + noes(); + } else { + chomp($hash); + } unless (defined($hash)) { $self->_close_hash_and_insert_object(); throw Error::Simple("in pipe went bad"); Then run: perl -d $(git --exec-path)/git-svn Set a breakpoint at that "noes" with: DB<1> b Git::noes Continue: DB<2> c Then when it stops there get a backtrace with "T": DB<2> T @ = DB::DB called from file 'perl/Git.pm' line 931 . = Git::noes() called from file 'perl/Git.pm' line 932 . = Git::hash_and_insert_object(ref(Git), 'Makefile') called from -e line 1 And see if you can get any other relevant info out of the debugger. See "perldoc perldebug".