From: "Philippe Bruhat (BooK)" <philippe.bruhat@free.fr>
To: git@vger.kernel.org
Subject: Problem with Git.pm bidi_pipe methods
Date: Fri, 24 Oct 2008 02:14:46 +0200 [thread overview]
Message-ID: <20081024001446.GE17717@plop> (raw)
Hi,
To be able to call commit-tree from a Perl program, I had to use
command_bidi_pipe() to pass the message on standard input, and get the
new commit id on standard output. The only problem I have is that the
method doesn't work (or at least, doesn't work like the other
command_... methods).
sub command_bidi_pipe {
my ($pid, $in, $out);
$pid = open2($in, $out, 'git', @_);
return ($pid, $in, $out, join(' ', @_));
}
First, it calls git in the current working dir, when all the other
command_... methods do the appropriate chdir depending on the Git object.
Second, it can't be used as a method, since $self is not removed from @_
before calling open2, leading to errors such as this one:
git: 'Git=HASH(0x82f898c)' is not a git-command. See 'git --help'.
Third, no access is given to STDERR (open3 may help).
I'm very sorry to complain without proposing a patch.
I think solving the current directory problem is probably going to be
difficult with open2/open3, since open2 does the fork+exec, whereas Git.pm
handles the fork+chdir+exec itself for the other command_... methods.
And so there is no room to chdir when calling open2.
--
Philippe Bruhat (BooK)
Treat those you outrank well... you never know when they will outrank you.
(Moral from Groo #7 (Image))
next reply other threads:[~2008-10-24 0:50 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-10-24 0:14 Philippe Bruhat (BooK) [this message]
2008-10-28 9:12 ` Problem with Git.pm bidi_pipe methods Christian Jaeger
2008-11-23 19:03 ` nadim khemir
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=20081024001446.GE17717@plop \
--to=philippe.bruhat@free.fr \
--cc=git@vger.kernel.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.