git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jeff King <peff@peff.net>
To: "H.Merijn Brand" <h.m.brand@xs4all.nl>
Cc: Ben Walton <bdwalton@gmail.com>, git@vger.kernel.org
Subject: Re: Git.pm with recent File::Temp fail
Date: Sun, 28 Apr 2013 22:16:51 -0400	[thread overview]
Message-ID: <20130429021651.GA2751@sigill.intra.peff.net> (raw)
In-Reply-To: <20130428110933.436786bd@pc09.procura.nl>

On Sun, Apr 28, 2013 at 11:09:33AM +0200, H.Merijn Brand wrote:

> 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.

> 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

  reply	other threads:[~2013-04-29  2:17 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-03-22 19:57 Git.pm with recent File::Temp fail H.Merijn Brand
     [not found] ` <CAP30j14=_U8iEZAodnfACnBHgF0+j0_OK7n7PvsUnwSDj_Y40A@mail.gmail.com>
2013-04-08  6:43   ` H.Merijn Brand
2013-04-28  9:09   ` H.Merijn Brand
2013-04-29  2:16     ` Jeff King [this message]
2013-04-29  3:59       ` Junio C Hamano
2013-04-29  5:46         ` H.Merijn Brand
2013-04-29  5:53           ` Junio C Hamano
2013-04-29  8:18             ` Junio C Hamano
2013-04-29  8:32               ` H.Merijn Brand

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20130429021651.GA2751@sigill.intra.peff.net \
    --to=peff@peff.net \
    --cc=bdwalton@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=h.m.brand@xs4all.nl \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).