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/ttyWhy 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.