Re: [PATCH] Abort mergetool on read error from stdinput

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



2 dec 2010 kl. 07:38 skrev Jonathan Nieder:

> Hi Robin,
> 
> Robin Rosenberg wrote:
> 
>> infinite loop that is somewhat tricky to stop. Abort the script
>> if bash read fails.
>> 
>> Signed-off-by: Robin Rosenberg <robin.rosenberg@xxxxxxxxxx>
> 
> That motivates half the change.
> 
>> --- a/git-mergetool--lib.sh
>> +++ b/git-mergetool--lib.sh
>> @@ -35,7 +35,7 @@ check_unchanged () {
>> 		while true; do
>> 			echo "$MERGED seems unchanged."
>> 			printf "Was the merge successful? [y/n] "
>> -			read answer
>> +			read answer < /dev/tty || exit 1
> 
> Why not
> 			read answer || exit 1
> 
> so tests can still run without blocking?  Aside from that, this looks
> like a good change; thanks.
> 
> What platform are you on?  ^C kills the entire process group here.

Here is a better version and motivation.

-- robin

>From 3aa3793a4d1dff940ca6b698a9c01a1fc9bdb9b3 Mon Sep 17 00:00:00 2001
From: Robin Rosenberg <robin.rosenberg@xxxxxxxxxx>
Date: Fri, 3 Dec 2010 09:23:23 +0100
Subject: [PATCH] Abort mergetool on read error from stdinput

If the mergetool has not quit (by mistake like pressing
Command-W instead of Command-Q) and the user pressed Ctrl-C
in the shell that runs mergetool, bash goes into an infinite
look, at least on Mac OS X. Ctrl-C kills the diff program
but not the mergetool script.

Signed-off-by: Robin Rosenberg <robin.rosenberg@xxxxxxxxxx>
---
 git-mergetool--lib.sh |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/git-mergetool--lib.sh b/git-mergetool--lib.sh
index 77d4aee..1d1413d 100644
--- a/git-mergetool--lib.sh
+++ b/git-mergetool--lib.sh
@@ -35,7 +35,7 @@ check_unchanged () {
 		while true; do
 			echo "$MERGED seems unchanged."
 			printf "Was the merge successful? [y/n] "
-			read answer
+			read answer || exit 1
 			case "$answer" in
 			y*|Y*) status=0; break ;;
 			n*|N*) status=1; break ;;
-- 
1.7.3.2.452.gb3012.dirty


--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]