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

[PATCH 7/9 v6] difftool: replace system call with Git::command_noisy

From
Tim Henigan <tim.henigan@gmail.com>
Date
Mar 22, 2012, 19:52 UTC
Message-ID
<1332445944-10944-8-git-send-email-tim.henigan@gmail.com>
In-Reply-To
<1332445944-10944-1-git-send-email-tim.henigan@gmail.com>

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.

Signed-off-by: Tim Henigan <tim.henigan@gmail.com>
---
 git-difftool.perl |   10 +---------
 1 file changed, 1 insertion(+), 9 deletions(-)
diff --git a/git-difftool.perl b/git-difftool.perl
index d4fe998..7366bf5 100755
--- a/git-difftool.perl
+++ b/git-difftool.perl
@@ -75,12 +75,4 @@ if (defined($prompt)) {
 
 $ENV{GIT_PAGER} = '';
 $ENV{GIT_EXTERNAL_DIFF} = 'git-difftool--helper';
-my @command = ('git', 'diff', @ARGV);
-
-# 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.
-my $rc = system(@command);
-exit($rc | ($rc >> 8));
+git_cmd_try { Git::command_noisy(('diff', @ARGV)) } 'exit code %d';
-- 
1.7.10.rc1.36.g15e879
Previous: Tim HeniganNext: Tim Henigan
Message 8 of 10 in “difftool: teach command to perform directory diffs”
  1. 0/9 difftool: teach command to perform directory diffsTim Henigan, Mar 22, 2012
  2. 1/9 difftool: parse options using Getopt::LongTim Henigan, Mar 22, 2012
  3. 2/9 difftool: add '--no-gui' optionTim Henigan, Mar 22, 2012
  4. 3/9 difftool: exit(0) when usage is printedTim Henigan, Mar 22, 2012
  5. 4/9 difftool: remove explicit change of PATHTim Henigan, Mar 22, 2012
  6. 5/9 difftool: stop appending '.exe' to gitTim Henigan, Mar 22, 2012
  7. 6/9 difftool: eliminate setup_environment functionTim Henigan, Mar 22, 2012
  8. 7/9 difftool: replace system call with Git::command_noisyTim Henigan, Mar 22, 2012
  9. 8/9 difftool: teach difftool to handle directory diffsTim Henigan, Mar 22, 2012
  10. 9/9 difftool: print list of valid tools with '--tool-help'Tim Henigan, Mar 22, 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.