diff options
author | Junio C Hamano <gitster@pobox.com> | 2016-04-29 14:15:58 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2016-04-29 14:15:58 -0700 |
commit | 002dd773b0b2ff2e28a335fb879a321056c0f6e2 (patch) | |
tree | 1e37d9e1e84fba91dc89cf722d0b92e920990653 | |
parent | 18c554b2720a869f1203a776cadd515fc6f3f840 (diff) | |
parent | a08feb8ef0b66c3e7d398ee6169c607b8efb7c80 (diff) | |
download | git-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.c | 1 | ||||
-rwxr-xr-x | t/t8003-blame-corner-cases.sh | 14 |
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 |