7/7 needs to be amended with something like this, and the documentation needs an update. In any case, the user can normalize the repo like this: $ echo "* text=auto" >>.gitattributes $ rm .git/index # Remove the index to force Git to $ git reset # re-scan the working directory $ git status # Show files that will be normalized $ git add -u $ git add .gitattributes $ git commit -m "Introduce end-of-line normalization" (or run "dos2unix" filename) ---------------- commit a604db36bb946000776514c220964f32979c8756 Author: Torsten Bögershausen <tboegi@xxxxxx> Date: Wed Mar 30 15:53:52 2016 +0200 convert.c: add warning when eol are wrong after checkout When line endings are not normalized, they may be different after the next checkout to what is configured. Add a warning, similar to the CRLF-LF replacement, when a file is commited, and the line endings are not converted at commit or checkout. diff --git a/convert.c b/convert.c index 8266d87..1fddbe8 100644 --- a/convert.c +++ b/convert.c @@ -18,6 +18,8 @@ #define CONVERT_STAT_BITS_TXT_CRLF 0x2 #define CONVERT_STAT_BITS_BIN 0x4 +#define CONVERT_STAT_BITS_MIXED (CONVERT_STAT_BITS_TXT_LF | CONVERT_STAT_BITS_TXT_CRLF) + enum crlf_action { CRLF_UNDEFINED, CRLF_BINARY, @@ -279,6 +281,8 @@ static void check_safe_crlf(const char *path, enum crlf_action crlf_action, enum safe_crlf checksafe, unsigned convert_stats, unsigned new_convert_stats) { + enum eol new_eol = output_eol(crlf_action); + const char *err_warn_msg = NULL; if (!checksafe) return; if (convert_stats & CONVERT_STAT_BITS_TXT_CRLF && @@ -303,6 +307,19 @@ static void check_safe_crlf(const char *path, enum crlf_action crlf_action, else /* i.e. SAFE_CRLF_FAIL */ die("LF would be replaced by CRLF in %s", path); } + if ((new_convert_stats & CONVERT_STAT_BITS_MIXED) == CONVERT_STAT_BITS_MIXED) + err_warn_msg = "mixed eol"; + else if (new_eol == EOL_LF && new_convert_stats & CONVERT_STAT_BITS_TXT_CRLF) + err_warn_msg = "CRLF"; + + if (err_warn_msg) { + if (checksafe == SAFE_CRLF_WARN) + warning("%s will be present after commit and checkout in %s.", + err_warn_msg, path); + else + die("%s will be present after commit and checkout in %s", + err_warn_msg, path); + } } [snip changes in t0027] -- 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