git/list[1] front-page[2] threads[3] people[4] search[5] about
 

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

From
Alex Riesen <raa.lkml@gmail.com>
Date
Mar 17, 2012, 10:50 UTC
Message-ID
<CALxABCYiOpQavW3qz+Xx-qjadaF3sAQ3DHAAwzRRBDXm6MAnOw@mail.gmail.com>
In-Reply-To
<CAJDDKr4+0iWoZhxo6kMVa0YUtDzmrH=XTZnDqQdbnM6TJ41UDg@mail.gmail.com>
Resend for vger archives. Damn that Android GMail client.
On Sat, Mar 17, 2012 at 03:48, David Aguilar <davvid@gmail.com> wrote:
Show 22 quoted lines
> On Fri, Mar 16, 2012 at 6:59 PM, Tim Henigan <tim.henigan@gmail.com> wrote:
>> 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.

Previous: David AguilarNext: Tim Henigan
Message 3 of 6 in “difftool: replace system call with Git::command_noisy”
  1. 6/9 difftool: replace system call with Git::command_noisyTim Henigan, Mar 17, 2012
  2. David AguilarMar 17, 2012
  3. Alex RiesenMar 17, 2012
  4. Tim HeniganMar 17, 2012
  5. Alex RiesenMar 17, 2012
  6. Tim HeniganMar 18, 2012

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.