Enable "git rerere" by the config variable rerere.enabled

Earlier, "git rerere" was enabled by creating the directory
.git/rr-cache.  That is definitely not in line with most other
features, which are enabled by a config variable.

So, check the config variable "rerere.enabled". If it is set
to "false" explicitely, do not activate rerere, even if
.git/rr-cache exists. This should help when you want to disable
rerere temporarily.

If "rerere.enabled" is not set at all, fall back to detection
of the directory .git/rr-cache.

[jc: with minimum tweaks]

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
diff --git a/git-am.sh b/git-am.sh
index d57a3e2..e5e6f2c 100755
--- a/git-am.sh
+++ b/git-am.sh
@@ -95,10 +95,7 @@
     eval GITHEAD_$his_tree='"$SUBJECT"'
     export GITHEAD_$his_tree
     git-merge-recursive $orig_tree -- HEAD $his_tree || {
-	    if test -d "$GIT_DIR/rr-cache"
-	    then
-		git rerere
-	    fi
+	    git rerere
 	    echo Failed to merge in the changes.
 	    exit 1
     }
@@ -252,10 +249,7 @@
 this=`cat "$dotest/next"`
 if test "$skip" = t
 then
-	if test -d "$GIT_DIR/rr-cache"
-	then
-		git rerere clear
-	fi
+	git rerere clear
 	this=`expr "$this" + 1`
 	resume=
 fi
@@ -420,10 +414,7 @@
 			stop_here_user_resolve $this
 		fi
 		apply_status=0
-		if test -d "$GIT_DIR/rr-cache"
-		then
-			git rerere
-		fi
+		git rerere
 		;;
 	esac