When a file's crlf attribute is explicitely set, it does not make sense to ignore it, just because the config variable core.autocrlf has not been set. This patch does not affect the case when the crlf attribute is unset. Signed-off-by: Johannes Schindelin <johannes.schindelin@xxxxxx> --- There have been no comments on this patch so far, however I think that this is a valid fix which should be in 1.6.0. convert.c | 2 +- t/t0020-crlf.sh | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletions(-) diff --git a/convert.c b/convert.c index 78efed8..d038d2f 100644 --- a/convert.c +++ b/convert.c @@ -126,7 +126,7 @@ static int crlf_to_git(const char *path, const char *src, size_t len, struct text_stat stats; char *dst; - if ((action == CRLF_BINARY) || !auto_crlf || !len) + if ((action == CRLF_BINARY) || (!auto_crlf && action < 0) || !len) return 0; gather_stats(src, len, &stats); diff --git a/t/t0020-crlf.sh b/t/t0020-crlf.sh index 1be7446..0bb3e6f 100755 --- a/t/t0020-crlf.sh +++ b/t/t0020-crlf.sh @@ -436,4 +436,14 @@ test_expect_success 'invalid .gitattributes (must not crash)' ' ' +test_expect_success 'attribute crlf is heeded even without core.autocrlf' ' + + echo "allcrlf crlf=input" > .gitattributes && + git config --unset core.autocrlf && + git add allcrlf && + git show :allcrlf | append_cr > expect && + test_cmp allcrlf expect + +' + test_done -- 1.6.0.rc0.22.gf2096d.dirty -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html