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>
This commit is contained in:
Johannes Schindelin
2007-07-06 13:05:59 +01:00
committed by Junio C Hamano
parent b2493649fe
commit b4372ef136
9 changed files with 64 additions and 40 deletions

View File

@ -95,10 +95,7 @@ It does not apply to blobs recorded in its index."
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 @@ last=`cat "$dotest/last"`
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 @@ do
stop_here_user_resolve $this
fi
apply_status=0
if test -d "$GIT_DIR/rr-cache"
then
git rerere
fi
git rerere
;;
esac