Re: Git.pm with recent File::Temp fail
- From
Jeff King <peff@peff.net>
- Date
- Apr 29, 2013, 02:16 UTC
- Message-ID
- <20130429021651.GA2751@sigill.intra.peff.net>
- In-Reply-To
- <20130428110933.436786bd@pc09.procura.nl>
On Sun, Apr 28, 2013 at 11:09:33AM +0200, H.Merijn Brand wrote:
Show 16 quoted lines
> Still failing in 1.8.2.2
>
> Short fix:
> --8<---
> diff --git a/perl/Git.pm b/perl/Git.pm
> index dc48159..7a252ef 100644
> --- a/perl/Git.pm
> +++ b/perl/Git.pm
> @@ -1265,7 +1265,7 @@ sub _temp_cache {
> $tmpdir = $self->repo_path();
> }
>
> - ($$temp_fd, $fname) = File::Temp->tempfile(
> + ($$temp_fd, $fname) = File::Temp::tempfile(
> 'Git_XXXXXX', UNLINK => 1, DIR => $tmpdir,
> ) or throw Error::Simple("couldn't open new temp file");I think this fix is the right thing. Your patch probably didn't get applied because it did not follow the guidelines in SubmittingPatches. Please make sure the subject-line of your email says "[PATCH]".
I.e., this part:
> From b3be713101469f8bea14b854eb7840132ffdca8a Mon Sep 17 00:00:00 2001 > From: "H.Merijn Brand - Tux" <h.m.brand@xs4all.nl> > Date: Sun, 28 Apr 2013 11:03:15 +0200 > Subject: [PATCH] Git.pm with recent File::Temp fail
Should be your actual email header, not just in the body of the message.
Show 12 quoted lines
> git-1.8.2{,.1,.2}, perl-5.16.3, File::Temp-0.23
>
> Without patch:
>
> $ git svn fetch
> 'tempfile' can't be called as a method at /pro/lib/perl5/site_perl/5.16.3/Git.pm line 1117.
>
> After patch:
>
> $ git svn fetch
> M t/06virtual.t
> r15506 = 6c65be7ff36ffc6fd9b960a4b470ca297103004e (refs/remotes/git-svn)I think the relevant thing is that File::Temp 0.23 started complaining about this. From their Changes file:
2013-03-14 Tim Jenness <tjenness@cpan.org>
---- Release V0.23 CPAN ----
[...]
* Temp.pm: Calling tempfile or tempdir as a class method now
produce a more useful fatal error messageSo I think the right commit message is something like:
We call File::Temp's "tempfile" function as a class method, but it was never designed to be called this way. Older versions seemed to tolerate it, but as of File::Temp 0.23, it blows up like this:
$ git svn fetch
'tempfile' can't be called as a method at .../Git.pm line 1117.Fix it by calling it as a regular function, just inside the File::Temp namespace.
-Peff