# [PATCH] mergetool: don't suggest to continue after last file

2 messages from 2018-08-13 to 2018-08-13. Participants: Nicholas Guriev, Junio C Hamano.
Thread: https://gitlist.dev/t/49106

## Nicholas Guriev, 2018-08-13 05:09

Subject: [PATCH] mergetool: don't suggest to continue after last file
Message-ID: <20180813050929.5531-1-guriev-ns@ya.ru>
URL: https://gitlist.dev/e/20180813050929.5531-1-guriev-ns%40ya.ru

```
This eliminates an unnecessary prompt to continue after failed merger.
The patch uses positional parameters to count files in the list. If only
one iteration is remained, the prompt_after_failed_merge function is not
called.

Signed-off-by: Nicholas Guriev <guriev-ns@ya.ru>
---
 git-mergetool.sh | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/git-mergetool.sh b/git-mergetool.sh
index c062e3d..d07c7f3 100755
--- a/git-mergetool.sh
+++ b/git-mergetool.sh
@@ -491,14 +491,16 @@ main () {
 	printf "%s\n" "$files"
 
 	rc=0
-	for i in $files
+	set -- $files
+	while test $# -ne 0
 	do
 		printf "\n"
-		if ! merge_file "$i"
+		if ! merge_file "$1"
 		then
 			rc=1
-			prompt_after_failed_merge || exit 1
+			test $# -ne 1 && prompt_after_failed_merge || exit 1
 		fi
+		shift
 	done
 
 	exit $rc
-- 
2.7.4


```

## Junio C Hamano, 2018-08-13 19:11

Subject: Re: [PATCH] mergetool: don't suggest to continue after last file
Message-ID: <xmqq600e5bgb.fsf@gitster-ct.c.googlers.com>
URL: https://gitlist.dev/e/xmqq600e5bgb.fsf%40gitster-ct.c.googlers.com
In-Reply-To: <20180813050929.5531-1-guriev-ns@ya.ru>

```
Nicholas Guriev <guriev-ns@ya.ru> writes:

> This eliminates an unnecessary prompt to continue after failed merger.
> The patch uses positional parameters to count files in the list. If only
> one iteration is remained, the prompt_after_failed_merge function is not

s/is remained/remains/, I think.

Other than that, nicely done and nicely explained.

Thanks; will queue.

> called.
>
> Signed-off-by: Nicholas Guriev <guriev-ns@ya.ru>
> ---
>  git-mergetool.sh | 8 +++++---
>  1 file changed, 5 insertions(+), 3 deletions(-)
>
> diff --git a/git-mergetool.sh b/git-mergetool.sh
> index c062e3d..d07c7f3 100755
> --- a/git-mergetool.sh
> +++ b/git-mergetool.sh
> @@ -491,14 +491,16 @@ main () {
>  	printf "%s\n" "$files"
>  
>  	rc=0
> -	for i in $files
> +	set -- $files
> +	while test $# -ne 0
>  	do
>  		printf "\n"
> -		if ! merge_file "$i"
> +		if ! merge_file "$1"
>  		then
>  			rc=1
> -			prompt_after_failed_merge || exit 1
> +			test $# -ne 1 && prompt_after_failed_merge || exit 1
>  		fi
> +		shift
>  	done
>  
>  	exit $rc

```
