Thread (6 messages) flat view 6 messages, 3 authors, 2016-06-15

Re: [PATCH 6/9] difftool: replace system call with Git::command_noisy

From: Alex Riesen <hidden>
Date: 2016-06-15 22:53:19

Resend for vger archives. Damn that Android GMail client.

On Sat, Mar 17, 2012 at 03:48, David Aguilar [off-list ref] wrote:
On Fri, Mar 16, 2012 at 6:59 PM, Tim Henigan [off-list ref] wrote:
quoted
The Git.pm module includes functions intended to standardize working
with Git repositories in Perl scripts. This commit teaches difftool
to use Git::command_noisy rather than a system call to run the diff
command.
Git::command_noisy() calls _cmd_exec() which calls _execv_git_cmd()
which does a fork() + exec('git', @_) + waitpid();

We were avoiding exec() for portability reasons, as Alex explained in
677fbff88f368ed6ac52438ddbb530166ec1d5d1:

# ActiveState Perl for Win32 does not implement POSIX semantics of
# exec* system call. It just spawns the given executable and finishes
# the starting program, exiting with code 0.
# system will at least catch the errors returned by git diff,
# allowing the caller of git difftool better handling of failures.

Is this no longer a concern?  Does Git.pm need a similar portability
caveat, or  does it avoid the problem altogether since it uses fork()
+ exec() + waitpid()?  (if this is true then it implies that this
change is fine).
It _might_ work. Cygwin kind of has fork(2), it even works (kind of:
it is a *very* expensive thing to do). There are also other ifs and
whens, but it is worth a test. It's a nice clean up to have.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help