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)) -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html