On Thu, Jul 24, 2008 at 08:06:29AM +0200, Steffen Prohaska wrote: > > I have however a related question: > > Dscho, > Is the following your use case? > > "I am the maintainer of this project. I know that this project needs > crlf conversion, because it is a cross-platform project. Therefore, > I want to force crlf conversion for this specific project, even if > the user did not configure core.autocrlf=input on Unix." I suspect that most problems with crlf is caused by Windows users who have core.autocrlf=false for whatever reason (I suspect without a good reason in most cases). But perhaps having core.autocrlf=input as default on Unix and Mac will be better than the current core.autocrlf=false. > Maybe we could allow 'crlf=guess' in .gitattributes with the following > documentation: Please, no. It feels wrong to complicate crlf settings to workaround incorrect user configuration. I don't think that many people really will be able to benefit from that. In most cases, people end up with the incorrect value autocrlf just because the documentation is complicated and it is difficult to understand from it what autocrlf does. So I believe the real solution is providing more reasonable defaults for autocrlf and more clear and simple explanation, i.e. to have something like in the introduction section describing how to set up your own repository: === If you work on Windows, you are most likely use text files with CRLF endings. To ensure that your line endings will be correctly represented on other platforms, you should set core.autocrlf=true. If you prefer to have LF endings in your text files, you may want to set core.autocrlf=input to ensure that files with inconsistent end-of-lines will not enter into your repository. autocrlf conversion will automatically detect text files and convert line endings accordingly to the specified settings. In very rare cases, heuristic may be wrong[*], so you may want to specify what files should bed considered as text and what as binary explicitly. You can do that by setting the crlf attribute in .gitattributes, like this: *.exe -crlf *.c crlf The above says that all files with the .exe extension should be treated as binary and all files with the .c extension should treated as text. [*] You do not have to worry too much about heuristic being wrong, because you will be warned if conversion for a file is irreversible. See core.safecrlf in linkgit:gitattributes[5] for more information. === We should not expect every users to read everything written in gitattributes just to get autocrlf correctly. Dmitry -- 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