summaryrefslogtreecommitdiff
path: root/convert.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2017-01-17 22:49:28 (GMT)
committerJunio C Hamano <gitster@pobox.com>2017-01-17 22:49:28 (GMT)
commit7479ca4b44193acee43c480ae37e0bec98316f7a (patch)
tree60792ba401dcb07ccd2ef285b3b55badc56ac525 /convert.c
parentcf479b4fb5d8417ccea306fa9f3491ec2e873399 (diff)
parent1c25d2d8ed4c5154c9059918e20e75cda3bede81 (diff)
downloadgit-7479ca4b44193acee43c480ae37e0bec98316f7a.zip
git-7479ca4b44193acee43c480ae37e0bec98316f7a.tar.gz
git-7479ca4b44193acee43c480ae37e0bec98316f7a.tar.bz2
Merge branch 'jc/renormalize-merge-kill-safer-crlf' into maint
Fix a corner case in merge-recursive regression that crept in during 2.10 development cycle. * jc/renormalize-merge-kill-safer-crlf: convert: git cherry-pick -Xrenormalize did not work merge-recursive: handle NULL in add_cacheinfo() correctly cherry-pick: demonstrate a segmentation fault
Diffstat (limited to 'convert.c')
-rw-r--r--convert.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/convert.c b/convert.c
index be91358..4e17e45 100644
--- a/convert.c
+++ b/convert.c
@@ -279,15 +279,16 @@ static int crlf_to_git(const char *path, const char *src, size_t len,
if (convert_is_binary(len, &stats))
return 0;
/*
- * If the file in the index has any CR in it, do not convert.
- * This is the new safer autocrlf handling.
+ * If the file in the index has any CR in it, do not
+ * convert. This is the new safer autocrlf handling,
+ * unless we want to renormalize in a merge or
+ * cherry-pick.
*/
- if (checksafe == SAFE_CRLF_RENORMALIZE)
- checksafe = SAFE_CRLF_FALSE;
- else if (has_cr_in_index(path))
+ if ((checksafe != SAFE_CRLF_RENORMALIZE) && has_cr_in_index(path))
convert_crlf_into_lf = 0;
}
- if (checksafe && len) {
+ if ((checksafe == SAFE_CRLF_WARN ||
+ (checksafe == SAFE_CRLF_FAIL)) && len) {
struct text_stat new_stats;
memcpy(&new_stats, &stats, sizeof(new_stats));
/* simulate "git add" */