git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2] blame: CRLF in the working tree and LF in the repo
@ 2015-04-30  4:42 Torsten Bögershausen
  2015-04-30  7:53 ` Johannes Schindelin
  0 siblings, 1 reply; 3+ messages in thread
From: Torsten Bögershausen @ 2015-04-30  4:42 UTC (permalink / raw)
  To: git; +Cc: tboegi, johannes.schindelin, kasal

A typicall setup under Windows:
core.eol is CRLF and a file is marked as "text" in .gitattributes,
or core.autocrlf is true

After 4d4813a5 "git blame" no longer works as expected,
every line is annotated as "Not Committed Yet",
even though the working directory is clean.

commit 4d4813a5 removed the conversion in blame.c for all files,
with or without CRLF in the repo.

Having files with CRLF in the repo and core.autocrlf=input is a temporary
situation, the files should be normalized in the repo.
Blaming them with "Not Committed Yet" is OK.

The solution is to revert commit 4d4813a5.

Reported-By: Stepan Kasal <kasal@ucw.cz>
Signed-off-by: Torsten Bögershausen <tboegi@web.de>
---

What happened to the test cases ?
They where improved, but it turned out that they failed
from time to time, both Windows and Mac OS.
"Spicing them" with test_tick or other things didn't help,
if they are run in a tight loop.
running with "debug=t verbose=t ./t8003*.sh" make the test
pass.
My suggestion is to revert 4d4813a5 and drop TC's for the moment.
 
 builtin/blame.c               | 1 +
 t/t8003-blame-corner-cases.sh | 9 ---------
 2 files changed, 1 insertion(+), 9 deletions(-)

diff --git a/builtin/blame.c b/builtin/blame.c
index 06484c2..8d70623 100644
--- a/builtin/blame.c
+++ b/builtin/blame.c
@@ -2348,6 +2348,7 @@ 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 32895e5..a073d36 100755
--- a/t/t8003-blame-corner-cases.sh
+++ b/t/t8003-blame-corner-cases.sh
@@ -191,13 +191,4 @@ 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
-- 
2.2.0.rc1.790.ge19fcd2

^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2015-04-30  8:59 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-04-30  4:42 [PATCH v2] blame: CRLF in the working tree and LF in the repo Torsten Bögershausen
2015-04-30  7:53 ` Johannes Schindelin
2015-04-30  8:59   ` Torsten Bögershausen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).