diff options
author | Junio C Hamano <gitster@pobox.com> | 2008-08-24 14:32:18 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2008-08-24 14:32:18 -0700 |
commit | fb7092807962af168a76f6d8cbab02150daa0b5a (patch) | |
tree | 07c57aa35c65acfc9b40e2abca17d4103699fe92 | |
parent | Merge branch 'mv/maint-merge-fix' into maint (diff) | |
parent | Respect core.autocrlf in combined diff (diff) | |
download | tgif-fb7092807962af168a76f6d8cbab02150daa0b5a.tar.xz |
Merge branch 'ag/maint-combine-diff-fix' into maint
* ag/maint-combine-diff-fix:
Respect core.autocrlf in combined diff
-rw-r--r-- | combine-diff.c | 12 | ||||
-rwxr-xr-x | t/t4015-diff-whitespace.sh | 16 |
2 files changed, 28 insertions, 0 deletions
diff --git a/combine-diff.c b/combine-diff.c index 9f80a1c5e3..4dfc330867 100644 --- a/combine-diff.c +++ b/combine-diff.c @@ -727,6 +727,18 @@ static void show_patch_diff(struct combine_diff_path *elem, int num_parent, die("early EOF '%s'", elem->path); result[len] = 0; + + /* If not a fake symlink, apply filters, e.g. autocrlf */ + if (is_file) { + struct strbuf buf; + + strbuf_init(&buf, 0); + if (convert_to_git(elem->path, result, len, &buf, safe_crlf)) { + free(result); + result = strbuf_detach(&buf, &len); + result_size = len; + } + } } else { deleted_file: diff --git a/t/t4015-diff-whitespace.sh b/t/t4015-diff-whitespace.sh index ec98509fd2..b1cbd36d17 100755 --- a/t/t4015-diff-whitespace.sh +++ b/t/t4015-diff-whitespace.sh @@ -352,4 +352,20 @@ test_expect_success 'checkdiff allows new blank lines' ' git diff --check ' +test_expect_success 'combined diff with autocrlf conversion' ' + + git reset --hard && + echo >x hello && + git commit -m "one side" x && + git checkout HEAD^ && + echo >x goodbye && + git commit -m "the other side" x && + git config core.autocrlf true && + test_must_fail git merge master && + + git diff | sed -e "1,/^@@@/d" >actual && + ! grep "^-" actual + +' + test_done |