From: Andrew Shearer <hidden> Date: 2018-12-19 02:42:50
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?
Thanks
Andrew
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".
From: Andrew Shearer <hidden> Date: 2018-12-21 00:15:53
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@terabyte.co.nz
/TERABYTE
-----Original Message-----
From: Ævar Arnfjörð Bjarmason <redacted>
Sent: Thursday, 20 December 2018 8:00 AM
To: Andrew Shearer <redacted>
Cc: git@vger.kernel.org; Eric Wong <redacted>
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".
From: Andrew Shearer <hidden> Date: 2019-01-08 19:45:09
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@terabyte.co.nz
/TERABYTE
-----Original Message-----
From: Ævar Arnfjörð Bjarmason <redacted>
Sent: Thursday, 20 December 2018 8:00 AM
To: Andrew Shearer <redacted>
Cc: git@vger.kernel.org; Eric Wong <redacted>
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".