summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2016-04-29 14:15:58 -0700
committerJunio C Hamano <gitster@pobox.com>2016-04-29 14:15:58 -0700
commit002dd773b0b2ff2e28a335fb879a321056c0f6e2 (patch)
tree1e37d9e1e84fba91dc89cf722d0b92e920990653
parent18c554b2720a869f1203a776cadd515fc6f3f840 (diff)
parenta08feb8ef0b66c3e7d398ee6169c607b8efb7c80 (diff)
downloadgit-002dd773b0b2ff2e28a335fb879a321056c0f6e2.tar.gz
Merge branch 'tb/blame-force-read-cache-to-workaround-safe-crlf' into maint
When running "git blame $path" with unnormalized data in the index for the path, the data in the working tree was blamed, even though "git add" would not have changed what is already in the index, due to "safe crlf" that disables the line-end conversion. It has been corrected. * tb/blame-force-read-cache-to-workaround-safe-crlf: correct blame for files commited with CRLF
-rw-r--r--builtin/blame.c1
-rwxr-xr-xt/t8003-blame-corner-cases.sh14
2 files changed, 15 insertions, 0 deletions
diff --git a/builtin/blame.c b/builtin/blame.c
index e982fb8137..21f42b0b62 100644
--- a/builtin/blame.c
+++ b/builtin/blame.c
@@ -2307,6 +2307,7 @@ static struct commit *fake_working_tree_commit(struct diff_options *opt,
unsigned mode;
struct strbuf msg = STRBUF_INIT;
+ read_cache();
time(&now);
commit = alloc_commit_node();
commit->object.parsed = 1;
diff --git a/t/t8003-blame-corner-cases.sh b/t/t8003-blame-corner-cases.sh
index 6568429753..a9b266f0d3 100755
--- a/t/t8003-blame-corner-cases.sh
+++ b/t/t8003-blame-corner-cases.sh
@@ -212,4 +212,18 @@ test_expect_success 'blame file with CRLF attributes text' '
grep "A U Thor" actual
'
+test_expect_success 'blame file with CRLF core.autocrlf=true' '
+ git config core.autocrlf false &&
+ printf "testcase\r\n" >crlfinrepo &&
+ >.gitattributes &&
+ git add crlfinrepo &&
+ git commit -m "add crlfinrepo" &&
+ git config core.autocrlf true &&
+ mv crlfinrepo tmp &&
+ git checkout crlfinrepo &&
+ rm tmp &&
+ git blame crlfinrepo >actual &&
+ grep "A U Thor" actual
+'
+
test_done