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

Re: Why does git-mergetool use /dev/tty?

From: Charles Bailey <hidden>
Date: 2016-06-15 22:49:22

On Mon, Aug 23, 2010 at 09:49:57PM -0400, Brian Gernhardt wrote:
git-mergetool.sh, lines 298-302:
quoted
    if test $last_status -ne 0; then
        prompt_after_failed_merge < /dev/tty || exit 1
    fi
    printf "\n"
    merge_file "$i" < /dev/tty > /dev/tty
Why does git-mergetool ignore the provided STDIN and STDOUT when not given a path to merge?
It doesn't deliberately ignore them, it merely loses them because what
you've quoted is in the middle of a redirect, you snipped:

    files_to_merge |
    while IFS= read i
    do  

mergetool is designed to be an interactive tool and didn't originally
have any tests so this was a reasonable (if ugly) way to restore
access to the user for the merge_file function.

This is also why all the previous test provided an explict list of
files to merge, because this was the only testable way to invoke
mergetool.

There's a proposed patch to save and restore the original stdin
instead of assuming that there is a tty in pu: af314714.

If the current behaviour is causing an issue for you then testing this
fix would be appreciated.

Thanks,

Charles.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help