git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
* Re: [PATCH] difftool: always honor "command not found" exit code
@ 2016-08-15 10:38 Tom Tanner (BLOOMBERG/ LONDON)
  2016-08-15 20:21 ` Junio C Hamano
  0 siblings, 1 reply; 8+ messages in thread
From: Tom Tanner (BLOOMBERG/ LONDON) @ 2016-08-15 10:38 UTC (permalink / raw)
  To: gitster, john; +Cc: davvid, git

Would it be possible to also treat signals (128 and above) as 'special' values as well (as I've seen some merge tools self destruct like that from time to time)

----- Original Message -----
From: gitster@pobox.com
To: john@keeping.me.uk
Cc: Tom Tanner (BLOOMBERG/ LONDON), davvid@gmail.com, git@vger.kernel.org
At: 08/14/16 04:21:18

John Keeping <john@keeping.me.uk> writes:

> At the moment difftool's "trust exit code" logic always suppresses the
> exit status of the diff utility we invoke.  This is useful because we
> don't want to exit just because diff returned "1" because the files
> differ, but it's confusing if the shell returns an error because the
> selected diff utility is not found.
>
> POSIX specifies 127 as the exit status for "command not found" and 126
> for "command found but is not executable" [1] and at least bash and dash
> follow this specification, while diff utilities generally use "1" for
> the exit status we want to ignore.
>
> Handle 126 and 127 as special values, assuming that they always mean
> that the command could not be executed.

Sounds like a reasonable thing to do.  Will queue; thanks.


^ permalink raw reply	[flat|nested] 8+ messages in thread
* git difftool and git mergetool aren't returning errors when the tool has issues
@ 2016-08-12  7:13 Tom Tanner (BLOOMBERG/ LONDON)
  2016-08-13 10:36 ` John Keeping
  0 siblings, 1 reply; 8+ messages in thread
From: Tom Tanner (BLOOMBERG/ LONDON) @ 2016-08-12  7:13 UTC (permalink / raw)
  To: git

For instance, if you set your diff/mergetool to meld and you don't have it installed:
> git difftool

Viewing (1/1): 'blah'
Launch 'meld' [Y/n]? y
/home/ttanner/bin/meld[8]: /opt/swt/bin/meld: not found
> echo $?
0

> /home/ttanner/bin/meld
/home/ttanner/bin/meld[8]: /opt/swt/bin/meld: not found
> echo $?
127

or
> env DISPLAY=wibble git difftool

Viewing (1/1): blah'
Launch 'xxdiff' [Y/n]? y
xxdiff: cannot connect to X server wibble
> echo $?
0
> env DISPLAY=wibble xxdiff thisfile thatfile
xxdiff: cannot connect to X server wibble
> echo $?
1
and this one (with DISPLAY unset because it was being run elsewhere)
> git mergtool
Normal merge conflict for 'blah: 
{local}: modified file 
{remote}: modified file 
Could not find ':' in DISPLAY: yeah, right 
XIO: fatal IO error 73 (Connection reset by peer) on X server "server:66.0" 
after 0 requests (0 known processed) with 0 events remaining. 
> echo $?
0
which last looked like a successful merge to a script, because it returned 0.

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2016-08-15 22:26 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-08-15 10:38 [PATCH] difftool: always honor "command not found" exit code Tom Tanner (BLOOMBERG/ LONDON)
2016-08-15 20:21 ` Junio C Hamano
2016-08-15 21:35   ` John Keeping
2016-08-15 21:54     ` [PATCH v2] difftool: always honor fatal error exit codes John Keeping
2016-08-15 22:26       ` Junio C Hamano
  -- strict thread matches above, loose matches on Subject: below --
2016-08-12  7:13 git difftool and git mergetool aren't returning errors when the tool has issues Tom Tanner (BLOOMBERG/ LONDON)
2016-08-13 10:36 ` John Keeping
2016-08-13 11:30   ` [PATCH] difftool: always honor "command not found" exit code John Keeping
2016-08-13 22:59     ` David Aguilar
2016-08-14  3:21     ` Junio C Hamano

Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

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 read-only IMAP folder(s) and NNTP newsgroup(s).