From: Junio C Hamano Date: Tue, 1 Nov 2011 22:20:28 +0000 (-0700) Subject: Merge branch 'ss/blame-textconv-fake-working-tree' X-Git-Tag: v1.7.8-rc1~11 X-Git-Url: https://git.tokkee.org/?a=commitdiff_plain;h=b919f8404a9e212b3b9d602d4060e440072a0303;hp=7406aa203ff0571815fc472486ae7271049185e6;p=git.git Merge branch 'ss/blame-textconv-fake-working-tree' * ss/blame-textconv-fake-working-tree: (squash) test for previous blame.c: Properly initialize strbuf after calling, textconv_object() Conflicts: t/t8006-blame-textconv.sh --- diff --git a/builtin/blame.c b/builtin/blame.c index 26a5d424b..86c0537cb 100644 --- a/builtin/blame.c +++ b/builtin/blame.c @@ -2113,8 +2113,10 @@ static struct commit *fake_working_tree_commit(struct diff_options *opt, switch (st.st_mode & S_IFMT) { case S_IFREG: if (DIFF_OPT_TST(opt, ALLOW_TEXTCONV) && - textconv_object(read_from, mode, null_sha1, &buf.buf, &buf_len)) + textconv_object(read_from, mode, null_sha1, &buf.buf, &buf_len)) { + buf.alloc = buf_len; buf.len = buf_len; + } else if (strbuf_read_file(&buf, read_from, st.st_size) != st.st_size) die_errno("cannot open or read '%s'", read_from); break; diff --git a/t/t8006-blame-textconv.sh b/t/t8006-blame-textconv.sh index 32ec82ad6..4ee42f12f 100755 --- a/t/t8006-blame-textconv.sh +++ b/t/t8006-blame-textconv.sh @@ -15,6 +15,7 @@ EOF chmod +x helper test_expect_success 'setup ' ' + echo "bin: test number 0" >zero.bin && echo "bin: test 1" >one.bin && echo "bin: test number 2" >two.bin && if test_have_prereq SYMLINKS; then @@ -43,6 +44,7 @@ test_expect_success 'no filter specified' ' test_expect_success 'setup textconv filters' ' echo "*.bin diff=test" >.gitattributes && + echo "zero.bin eol=crlf" >>.gitattributes && git config diff.test.textconv ./helper && git config diff.test.cachetextconv false ' @@ -74,6 +76,15 @@ test_expect_success 'blame --textconv going through revisions' ' test_cmp expected result ' +test_expect_success 'blame --textconv with local changes' ' + test_when_finished "git checkout zero.bin" && + printf "bin: updated number 0\015" >zero.bin && + git blame --textconv zero.bin >blame && + expect="(Not Committed Yet ....-..-.. ..:..:.. +0000 1)" && + expect="$expect converted: updated number 0" && + expr "$(find_blame