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

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 message
So 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
Previous: H.Merijn BrandNext: Junio C Hamano
Message 4 of 9 in “Git.pm with recent File::Temp fail”
  1. H.Merijn BrandMar 22, 2013
  2. H.Merijn BrandApr 8, 2013
  3. H.Merijn BrandApr 28, 2013
  4. Jeff KingApr 29, 2013
  5. Junio C HamanoApr 29, 2013
  6. H.Merijn BrandApr 29, 2013
  7. Junio C HamanoApr 29, 2013
  8. Junio C HamanoApr 29, 2013
  9. H.Merijn BrandApr 29, 2013

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.