Subject: Re: [PATCH] Rename ".dotest/" to ".git/rebase" and ".dotest-merge" to "rebase-merge"

From: Junio C Hamano <[email-masked]>
Date: Sat, 19 Jul 2008 15:18:53 -0700

Olivier Marin <[email-masked]> writes:

> Subject: [PATCH] git am --abort
>
> To squash.
>
> Signed-off-by: Olivier Marin <[email-masked]>

Thanks.

> @@ -203,9 +204,10 @@ then
>  
>  	case "$abort" in
>  	t)
> -		rm -fr "$dotest" &&
> +		git rerere clear &&
>  		git read-tree -m -u ORIG_HEAD &&
> -		git reset ORIG_HEAD && :
> +		git reset ORIG_HEAD &&
> +		rm -fr "$dotest"
>  		exit ;;
>  	esac
>  else

Clearing the rerere information needs to be done, but I think we should
drop the last && to make sure we remove "$dotest" and exit with its exit
status.

I'm happy with the documentation and help-text parts of your patch, but
probably this, on top of 1a6f6bb (git am --abort, 2008-07-16), is more
appropriate?

--- 
 git-am.sh           |    6 +++---
 t/t4151-am-abort.sh |   46 +++++++++++++++++++++++++++-------------------
 2 files changed, 30 insertions(+), 22 deletions(-)

diff --git a/git-am.sh b/git-am.sh
index a44bd7a..5cbf8f4 100755
--- a/git-am.sh
+++ b/git-am.sh
@@ -203,9 +203,9 @@ then
 
 	case "$abort" in
 	t)
-		rm -fr "$dotest" &&
-		git read-tree -m -u ORIG_HEAD &&
-		git reset ORIG_HEAD && :
+		git rerere clear
+		git read-tree --reset -u HEAD ORIG_HEAD
+		rm -fr "$dotest"
 		exit ;;
 	esac
 else
diff --git a/t/t4151-am-abort.sh b/t/t4151-am-abort.sh
index 96b2cd5..dda7e2c 100755
--- a/t/t4151-am-abort.sh
+++ b/t/t4151-am-abort.sh
@@ -22,27 +22,35 @@ test_expect_success setup '
 	done &&
 	git format-patch initial &&
 	git checkout -b side initial &&
-	echo local change >file-2 &&
-	cp file-2 file-2-expect
+	echo local change >file-2-expect
 '
 
-test_expect_success 'am stops at a patch that does not apply' '
-	test_must_fail git am 000[124]-*.patch &&
-	git log --pretty=tformat:%s >actual &&
-	for i in 3 2 initial
-	do
-		echo $i
-	done >expect &&
-	test_cmp expect actual
-'
+for with3 in '' ' -3'
+do
+	test_expect_success "am$with3 stops at a patch that does not apply" '
 
-test_expect_success 'am --abort goes back' '
-	git am --abort &&
-	git rev-parse HEAD >actual &&
-	git rev-parse initial >expect &&
-	test_cmp expect actual &&
-	test_cmp file-2-expect file-2 &&
-	git diff-index --exit-code --cached HEAD
-'
+		git reset --hard initial &&
+		cp file-2-expect file-2 &&
+
+		test_must_fail git am$with3 000[124]-*.patch &&
+		git log --pretty=tformat:%s >actual &&
+		for i in 3 2 initial
+		do
+			echo $i
+		done >expect &&
+		test_cmp expect actual
+	'
+
+	test_expect_success "am --abort goes back after failed am$with3" '
+		git-am --abort &&
+		git rev-parse HEAD >actual &&
+		git rev-parse initial >expect &&
+		test_cmp expect actual &&
+		test_cmp file-2-expect file-2 &&
+		git diff-index --exit-code --cached HEAD &&
+		test ! -f .git/rr-cache/MERGE_RR
+	'
+
+done
 
 test_done