On Tue, 13 Feb 2007, Mark Levedahl wrote: > > The ternary value is definitely useful. As noted elsewhere, most tools on > windows are very happy with \n ending, few honor those line endings when files > are modified, and fewer still allow the user to specify use of \n for new > files. However, cygwin tools in particular are not tolerant of crlf, so for > that environment it makes sense to banish crlf and the input-only option is > most likely the best default setting there. Here's a UNTESTED patch on top of the patch I already sent, which allows you to do [core] AutoCRLF = input and it should do only the CRLF->LF translation (ie it simplifies CRLF only when reading working tree files, but when checking out files, it leaves the LF alone, and doesn't turn it into a CRLF). And by "untested" I mean that it looks ok and seems to compile, but I really didn't do anything else. Linus --- diff --git a/config.c b/config.c index ffe0212..e8ae919 100644 --- a/config.c +++ b/config.c @@ -325,6 +325,10 @@ int git_default_config(const char *var, const char *value) } if (!strcmp(var, "core.autocrlf")) { + if (value && !strcasecmp(value, "input")) { + auto_crlf = -1; + return 0; + } auto_crlf = git_config_bool(var, value); return 0; } diff --git a/convert.c b/convert.c index c04b6c2..b5a47c2 100644 --- a/convert.c +++ b/convert.c @@ -133,7 +133,7 @@ int convert_to_working_tree(const char *path, char **bufp, unsigned long *sizep) * based on filename patterns. Right now we just do the * stupid auto-CRLF one. */ - if (!auto_crlf) + if (auto_crlf <= 0) return 0; size = *sizep; diff --git a/environment.c b/environment.c index 2fa0960..570e32a 100644 --- a/environment.c +++ b/environment.c @@ -28,7 +28,7 @@ size_t packed_git_window_size = DEFAULT_PACKED_GIT_WINDOW_SIZE; size_t packed_git_limit = DEFAULT_PACKED_GIT_LIMIT; int pager_in_use; int pager_use_color = 1; -int auto_crlf = 0; +int auto_crlf = 0; /* 1: both ways, -1: only when adding git objects */ static const char *git_dir; static char *git_object_dir, *git_index_file, *git_refs_dir, *git_graft_file; - 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