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