Re: [PATCH 9/9] rerere forget path: forget recorded resolution
- From
Johannes Sixt <j6t@kdbg.org>
- Date
- Jan 8, 2010, 21:55 UTC
- Message-ID
- <201001082255.51499.j6t@kdbg.org>
- In-Reply-To
- <1262122958-9378-10-git-send-email-gitster@pobox.com>
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'