diff options
author | Junio C Hamano <gitster@pobox.com> | 2015-02-26 14:03:57 -0800 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2015-02-26 14:03:57 -0800 |
commit | 28ed7b02dd726bcc5c8d3fc316c965a3c0f05c04 (patch) | |
tree | 89b62e09fe810cacfa218c4ca3b3bee2d4a90cb2 /perl/Git/SVN/Fetcher.pm | |
parent | git-svn: lazy load some modules (diff) | |
parent | Git::SVN::*: avoid premature FileHandle closure (diff) | |
download | tgif-28ed7b02dd726bcc5c8d3fc316c965a3c0f05c04.tar.xz |
Merge branch 'svn-maint-fixes' into svn-fixes
* svn-maint-fixes:
Git::SVN::*: avoid premature FileHandle closure
git-svn: fix localtime=true on non-glibc environments
Diffstat (limited to 'perl/Git/SVN/Fetcher.pm')
-rw-r--r-- | perl/Git/SVN/Fetcher.pm | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/perl/Git/SVN/Fetcher.pm b/perl/Git/SVN/Fetcher.pm index 6b9c6e0138..d8c21ad915 100644 --- a/perl/Git/SVN/Fetcher.pm +++ b/perl/Git/SVN/Fetcher.pm @@ -321,6 +321,14 @@ sub apply_textdelta { # (but $base does not,) so dup() it for reading in close_file open my $dup, '<&', $fh or croak $!; my $base = $::_repository->temp_acquire("git_blob_${$}_$suffix"); + # close_file may call temp_acquire on 'svn_hash', but because of the + # call chain, if the temp_acquire call from close_file ends up being the + # call that first creates the 'svn_hash' temp file, then the FileHandle + # that's created as a result will end up in an SVN::Pool that we clear + # in SVN::Ra::gs_fetch_loop_common. Avoid that by making sure the + # 'svn_hash' FileHandle is already created before close_file is called. + my $tmp_fh = $::_repository->temp_acquire('svn_hash'); + $::_repository->temp_release($tmp_fh, 1); if ($fb->{blob}) { my ($base_is_link, $size); |