rebase -i: create .dotest-merge after validating options.

Creating .dotest-merge before validating the options prevents both
--continue and --interactive from working if the options are invalid,
so only create it after validating the options.

[jc: however, just moving the creation of DOTEST breaks output]

Signed-off-by: Matt Kraai <kraai@ftbfs.org>
Acked-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
diff --git a/git-rebase--interactive.sh b/git-rebase--interactive.sh
index d751984..268a629 100755
--- a/git-rebase--interactive.sh
+++ b/git-rebase--interactive.sh
@@ -36,10 +36,9 @@
 output () {
 	case "$VERBOSE" in
 	'')
-		"$@" > "$DOTEST"/output 2>&1
+		output=$("$@" 2>&1 )
 		status=$?
-		test $status != 0 &&
-			cat "$DOTEST"/output
+		test $status != 0 && printf "%s\n" "$output"
 		return $status
 		;;
 	*)
@@ -428,7 +427,6 @@
 
 		require_clean_work_tree
 
-		mkdir "$DOTEST" || die "Could not create temporary $DOTEST"
 		if test ! -z "$2"
 		then
 			output git show-ref --verify --quiet "refs/heads/$2" ||
@@ -440,6 +438,8 @@
 		HEAD=$(git rev-parse --verify HEAD) || die "No HEAD?"
 		UPSTREAM=$(git rev-parse --verify "$1") || die "Invalid base"
 
+		mkdir "$DOTEST" || die "Could not create temporary $DOTEST"
+
 		test -z "$ONTO" && ONTO=$UPSTREAM
 
 		: > "$DOTEST"/interactive || die "Could not mark as interactive"