Your implementation forgets to re-insert the forgotten resolutions into MERGE_RR, therefore, the next 'git rerere' does not record the new resolution. In my implementation of 'rerere forget', I had the following tests. The latter two of the three new tests fail with your implementation. -- Hannes diff --git a/t/t4200-rerere.sh b/t/t4200-rerere.sh index a6bc028..a3f0c18 100755 --- a/t/t4200-rerere.sh +++ b/t/t4200-rerere.sh @@ -75,8 +75,9 @@ test_expect_success 'no postimage or thisimage yet' \ test_expect_success 'preimage has right number of lines' ' cnt=$(sed -ne "/^<<<<<<</,/^>>>>>>>/p" $rr/preimage | wc -l) && - test $cnt = 13 - + test $cnt = 13 && + cnt=$(grep "To die! T" $rr/preimage | wc -l) && + test $cnt = 1 ' git show first:a1 > a1 @@ -142,7 +143,23 @@ test_expect_success 'rerere kicked in' "! grep ^=======$ a1" test_expect_success 'rerere prefers first change' 'test_cmp a1 expect' -rm $rr/postimage +test_expect_success 'rerere forget drops postimage' ' + git rerere forget a1 && + ! test -f $rr/postimage +' + +test_expect_success 'conflict hash is the same as before' ' + test $sha1 = "$(perl -pe "s/ .*//" .git/MERGE_RR)" +' + +test_expect_success 'preimage was updated' ' + cnt=$(sed -ne "/^<<<<<<</,/^>>>>>>>/p" $rr/preimage | wc -l) && + test $cnt = 13 && + cnt=$(grep "To die! T" $rr/preimage | wc -l) && + test $cnt = 2 +' + +rm -f $rr/postimage echo "$sha1 a1" | perl -pe 'y/\012/\000/' > .git/MERGE_RR test_expect_success 'rerere clear' 'git rerere clear' -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html