diff options
author | Junio C Hamano <gitster@pobox.com> | 2010-12-28 13:44:58 -0800 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2010-12-28 13:44:58 -0800 |
commit | 359f34f6cc948a2ddd2c99239f24a78d560bafd0 (patch) | |
tree | 36e0d7e594aea3802751c94378cec98c35a6e22d | |
parent | 58c58c8624d77ff4087ad93e515402db218684f6 (diff) | |
parent | 9ec09b0495f5e672223025f5e681371034da2538 (diff) | |
download | git-359f34f6cc948a2ddd2c99239f24a78d560bafd0.tar.gz git-359f34f6cc948a2ddd2c99239f24a78d560bafd0.tar.xz |
Merge branch 'ks/blame-worktree-textconv-cached' into maint
* ks/blame-worktree-textconv-cached:
fill_textconv(): Don't get/put cache if sha1 is not valid
t/t8006: Demonstrate blame is broken when cachetextconv is on
-rw-r--r-- | diff.c | 4 | ||||
-rwxr-xr-x | t/t8006-blame-textconv.sh | 21 |
2 files changed, 23 insertions, 2 deletions
@@ -4388,7 +4388,7 @@ size_t fill_textconv(struct userdiff_driver *driver, return df->size; } - if (driver->textconv_cache) { + if (driver->textconv_cache && df->sha1_valid) { *outbuf = notes_cache_get(driver->textconv_cache, df->sha1, &size); if (*outbuf) @@ -4399,7 +4399,7 @@ size_t fill_textconv(struct userdiff_driver *driver, if (!*outbuf) die("unable to read files to diff"); - if (driver->textconv_cache) { + if (driver->textconv_cache && df->sha1_valid) { /* ignore errors, as we might be in a readonly repository */ notes_cache_put(driver->textconv_cache, df->sha1, *outbuf, size); diff --git a/t/t8006-blame-textconv.sh b/t/t8006-blame-textconv.sh index dbf623bce..ea64cd8d0 100755 --- a/t/t8006-blame-textconv.sh +++ b/t/t8006-blame-textconv.sh @@ -73,6 +73,27 @@ test_expect_success 'blame --textconv going through revisions' ' test_cmp expected result ' +test_expect_success 'setup +cachetextconv' ' + git config diff.test.cachetextconv true +' + +cat >expected_one <<EOF +(Number2 2010-01-01 20:00:00 +0000 1) converted: test 1 version 2 +EOF + +test_expect_success 'blame --textconv works with textconvcache' ' + git blame --textconv two.bin >blame && + find_blame <blame >result && + test_cmp expected result && + git blame --textconv one.bin >blame && + find_blame <blame >result && + test_cmp expected_one result +' + +test_expect_success 'setup -cachetextconv' ' + git config diff.test.cachetextconv false +' + test_expect_success 'make a new commit' ' echo "bin: test number 2 version 3" >>two.bin && GIT_AUTHOR_NAME=Number3 git commit -a -m Third --date="2010-01-01 22:00:00" |