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:

committed by
Junio C Hamano

parent
b2493649fe
commit
b4372ef136
@ -39,15 +39,32 @@ sed -e 's/To die, t/To die! T/' > a1
|
||||
echo "* END *" >>a1
|
||||
git commit -q -a -m second
|
||||
|
||||
# activate rerere
|
||||
mkdir .git/rr-cache
|
||||
test_expect_success 'nothing recorded without rerere' '
|
||||
(rm -rf .git/rr-cache; git config rerere.enabled false) &&
|
||||
! git merge first &&
|
||||
! test -d .git/rr-cache
|
||||
'
|
||||
|
||||
test_expect_failure 'conflicting merge' 'git pull . first'
|
||||
# activate rerere, old style
|
||||
test_expect_success 'conflicting merge' '
|
||||
git reset --hard &&
|
||||
mkdir .git/rr-cache &&
|
||||
git config --unset rerere.enabled &&
|
||||
! git merge first
|
||||
'
|
||||
|
||||
sha1=$(sed -e 's/ .*//' .git/rr-cache/MERGE_RR)
|
||||
rr=.git/rr-cache/$sha1
|
||||
test_expect_success 'recorded preimage' "grep ======= $rr/preimage"
|
||||
|
||||
test_expect_success 'rerere.enabled works, too' '
|
||||
rm -rf .git/rr-cache &&
|
||||
git config rerere.enabled true &&
|
||||
git reset --hard &&
|
||||
! git merge first &&
|
||||
grep ======= $rr/preimage
|
||||
'
|
||||
|
||||
test_expect_success 'no postimage or thisimage yet' \
|
||||
"test ! -f $rr/postimage -a ! -f $rr/thisimage"
|
||||
|
||||
|
Reference in New Issue
Block a user