From 5e568f9e3027797842807213ce590140c9daf9ce Mon Sep 17 00:00:00 2001 From: Alexander Gavrilov Date: Sat, 23 Aug 2008 23:21:21 +0400 Subject: Respect core.autocrlf in combined diff Fix git-diff to make it produce useful 3-way diffs for merge conflicts in repositories with autocrlf enabled. Otherwise it always reports that the whole file was changed, because it uses the contents from the working tree without necessary conversion. Signed-off-by: Alexander Gavrilov Signed-off-by: Junio C Hamano --- combine-diff.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'combine-diff.c') 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: -- cgit v1.2.1