git difftool and git mergetool aren't returning errors when the tool has issues
- From
- Tom Tanner (BLOOMBERG/ LONDON) <ttanner2@bloomberg.net>
- Date
- Aug 12, 2016, 07:13 UTC
- Message-ID
- <57AD772501C207A400390148_0_15304@p057>
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.