Skip to content

Commit 4d4813a

Browse files
bk2204gitster
authored andcommitted
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>
1 parent 5f95c9f commit 4d4813a

File tree

2 files changed

+9
-1
lines changed

2 files changed

+9
-1
lines changed

builtin/blame.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2095,7 +2095,6 @@ static struct commit *fake_working_tree_commit(struct diff_options *opt,
20952095
if (strbuf_read(&buf, 0, 0) < 0)
20962096
die_errno("failed to read from stdin");
20972097
}
2098-
convert_to_git(path, buf.buf, buf.len, &buf, 0);
20992098
origin->file.ptr = buf.buf;
21002099
origin->file.size = buf.len;
21012100
pretend_sha1_file(buf.buf, buf.len, OBJ_BLOB, origin->blob_sha1);

t/t8003-blame-corner-cases.sh

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -191,4 +191,13 @@ test_expect_success 'indent of line numbers, ten lines' '
191191
test $(grep -c " " actual) = 9
192192
'
193193

194+
test_expect_success 'blaming files with CRLF newlines' '
195+
git config core.autocrlf false &&
196+
printf "testcase\r\n" >crlffile &&
197+
git add crlffile &&
198+
git commit -m testcase &&
199+
git -c core.autocrlf=input blame crlffile >actual &&
200+
grep "A U Thor" actual
201+
'
202+
194203
test_done

0 commit comments

Comments
 (0)