mirror of
https://github.com/git/git.git
synced 2024-12-01 14:03:34 +08:00
blame: correctly handle files regardless of autocrlf
If a file contained CRLF line endings in a repository with core.autocrlf=input, then blame always marked lines as "Not Committed Yet", even if they were unmodified. Don't attempt to convert the line endings when creating the fake commit so that blame works correctly regardless of the autocrlf setting. Reported-by: Ephrim Khong <dr.khong@gmail.com> Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
5f95c9f850
commit
4d4813a52f
@ -2095,7 +2095,6 @@ static struct commit *fake_working_tree_commit(struct diff_options *opt,
|
|||||||
if (strbuf_read(&buf, 0, 0) < 0)
|
if (strbuf_read(&buf, 0, 0) < 0)
|
||||||
die_errno("failed to read from stdin");
|
die_errno("failed to read from stdin");
|
||||||
}
|
}
|
||||||
convert_to_git(path, buf.buf, buf.len, &buf, 0);
|
|
||||||
origin->file.ptr = buf.buf;
|
origin->file.ptr = buf.buf;
|
||||||
origin->file.size = buf.len;
|
origin->file.size = buf.len;
|
||||||
pretend_sha1_file(buf.buf, buf.len, OBJ_BLOB, origin->blob_sha1);
|
pretend_sha1_file(buf.buf, buf.len, OBJ_BLOB, origin->blob_sha1);
|
||||||
|
@ -191,4 +191,13 @@ test_expect_success 'indent of line numbers, ten lines' '
|
|||||||
test $(grep -c " " actual) = 9
|
test $(grep -c " " actual) = 9
|
||||||
'
|
'
|
||||||
|
|
||||||
|
test_expect_success 'blaming files with CRLF newlines' '
|
||||||
|
git config core.autocrlf false &&
|
||||||
|
printf "testcase\r\n" >crlffile &&
|
||||||
|
git add crlffile &&
|
||||||
|
git commit -m testcase &&
|
||||||
|
git -c core.autocrlf=input blame crlffile >actual &&
|
||||||
|
grep "A U Thor" actual
|
||||||
|
'
|
||||||
|
|
||||||
test_done
|
test_done
|
||||||
|
Loading…
Reference in New Issue
Block a user