Merge branch 'cb/maint-mergetool-no-tty'
authorJunio C Hamano <gitster@pobox.com>
Fri, 3 Sep 2010 16:43:44 +0000 (09:43 -0700)
committerJunio C Hamano <gitster@pobox.com>
Fri, 3 Sep 2010 16:43:44 +0000 (09:43 -0700)
* cb/maint-mergetool-no-tty:
mergetool: Remove explicit references to /dev/tty

Conflicts:
git-mergetool.sh

1  2 
git-mergetool.sh
diff --combined git-mergetool.sh
index bd7ab02f1161d2d97ea57b2a2ceacc307f6a74e8,e7fa67bd9c227b703dd4852c18b064463c8c92d6..2f8dc441c6d575323f2fad920ecdb7b20e1445e6
@@@ -264,42 -264,28 +264,46 @@@ merge_keep_temporaries="$(git config --
  
  last_status=0
  rollup_status=0
 +rerere=false
 +
 +files_to_merge() {
 +    if test "$rerere" = true
 +    then
 +      git rerere status
 +    else
 +      git ls-files -u | sed -e 's/^[^ ]*      //' | sort -u
 +    fi
 +}
 +
  
  if test $# -eq 0 ; then
 -    files=$(git ls-files -u | sed -e 's/^[^   ]*      //' | sort -u)
 +    cd_to_toplevel
 +
 +    if test -e "$GIT_DIR/MERGE_RR"
 +    then
 +      rerere=true
 +    fi
 +
 +    files=$(files_to_merge)
      if test -z "$files" ; then
        echo "No files need merging"
        exit 0
      fi
 -    echo Merging the files: "$files"
 -    git ls-files -u |
 -    sed -e 's/^[^     ]*      //' |
 -    sort -u |
+     # Save original stdin
+     exec 3<&0
 +    printf "Merging:\n"
 +    printf "$files\n"
 +
 +    files_to_merge |
      while IFS= read i
      do
        if test $last_status -ne 0; then
-           prompt_after_failed_merge < /dev/tty || exit 1
+           prompt_after_failed_merge <&3 || exit 1
        fi
        printf "\n"
-       merge_file "$i" < /dev/tty > /dev/tty
+       merge_file "$i" <&3
        last_status=$?
        if test $last_status -ne 0; then
            rollup_status=1