summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLibravatar Junio C Hamano <gitster@pobox.com>2014-06-06 11:26:50 -0700
committerLibravatar Junio C Hamano <gitster@pobox.com>2014-06-06 11:26:50 -0700
commite934c67b6683c1bd504646647b7ee04ee0d9e15b (patch)
treeaedcc0fc5925cafdd9150701fbceb19f1b5fa901
parentMerge branch 'sk/submodules-absolute-path-on-windows' (diff)
parentblame: correctly handle files regardless of autocrlf (diff)
downloadtgif-e934c67b6683c1bd504646647b7ee04ee0d9e15b.tar.xz
Merge branch 'bc/blame-crlf-test'
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. * bc/blame-crlf-test: blame: correctly handle files regardless of autocrlf
-rw-r--r--builtin/blame.c1
-rwxr-xr-xt/t8003-blame-corner-cases.sh9
2 files changed, 9 insertions, 1 deletions
diff --git a/builtin/blame.c b/builtin/blame.c
index 3aa1793303..a52a279144 100644
--- a/builtin/blame.c
+++ b/builtin/blame.c
@@ -2355,7 +2355,6 @@ static struct commit *fake_working_tree_commit(struct diff_options *opt,
if (strbuf_read(&buf, 0, 0) < 0)
die_errno("failed to read from stdin");
}
- convert_to_git(path, buf.buf, buf.len, &buf, 0);
origin->file.ptr = buf.buf;
origin->file.size = buf.len;
pretend_sha1_file(buf.buf, buf.len, OBJ_BLOB, origin->blob_sha1);
diff --git a/t/t8003-blame-corner-cases.sh b/t/t8003-blame-corner-cases.sh
index e7cac1db55..2a3469bcbe 100755
--- a/t/t8003-blame-corner-cases.sh
+++ b/t/t8003-blame-corner-cases.sh
@@ -191,4 +191,13 @@ test_expect_success 'indent of line numbers, ten lines' '
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