Re: CRLF problems with Git on Win32
- From
- Linus Torvalds <torvalds-de/tnxtf+jlsfhdxvbkv3wd2fqjk+8+b@public.gmane.org>
- Date
- Jan 8, 2008, 20:41 UTC
- Message-ID
- <alpine.LFD.1.00.0801081232120.3148@woody.linux-foundation.org>
- In-Reply-To
- <7vir24rtfp.fsf-jO8aZxhGsIagbBziECNbOZn29agUkmeCHZ5vskTnxNA@public.gmane.org>
On Tue, 8 Jan 2008, Junio C Hamano wrote:
Show 5 quoted lines
> > I think the project can mark text files as text with attributes > and if the port to the platform initialized core.autocrlf > appropriately for the platform everything should work as you > described.
Yes, I think core.autocrlf should default to "true" on Windows, since that is what it's about. The alternative is to have "fail"/"warn", to just make sure that nobody can do the wrong thing by mistake.
We could just do something like this, although that probably does mean that the whole test-suite needs to be double-checked (ie now we really do behave differently on windows outside of any config options!))
People who really dislike it can always do the
git config --global core.autocrlf false
thing.
(And no, I don't know if "#ifdef __WINDOWS__" is the right thing to do, it's almost certainly not. This is just a draft.)
Linus
--- environment.c | 16 +++++++++++++++- 1 files changed, 15 insertions(+), 1 deletions(-)
diff --git a/environment.c b/environment.c index 18a1c4e..5766bee 100644 --- a/environment.c +++ b/environment.c @@ -34,9 +34,23 @@ char *pager_program; int pager_use_color = 1; char *editor_program; char *excludes_file; -int auto_crlf = 0; /* 1: both ways, -1: only when adding git objects */ unsigned whitespace_rule_cfg = WS_DEFAULT_RULE; +/* + * Automatic CRLF conversion on files that look like + * text: + * 0: none (unix) + * 1: convert to LF on check-in and to CRLF on check-out + * -1: only on check-in (check-out with just LF) + */ +#ifdef __WINDOWS__ + #define DEF_AUTOCRLF 1 +#else + #define DEF_AUTOCRLF 0 +#endif + +int auto_crlf = DEF_AUTOCRLF; + /* This is set by setup_git_dir_gently() and/or git_default_config() */ char *git_work_tree_cfg; static const char *work_tree;