Re: CRLF problems with Git on Win32

Subsystems: the rest

2 messages, 2 authors, 2016-06-15 · open the first message on its own page

Re: CRLF problems with Git on Win32

From: Linus Torvalds <hidden>
Date: 2016-06-15 22:44:03



On Tue, 8 Jan 2008, Junio C Hamano wrote:
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;

Re: CRLF problems with Git on Win32

From: Junio C Hamano <hidden>
Date: 2016-06-15 22:44:03

Linus Torvalds [off-list ref] writes:
On Tue, 8 Jan 2008, Junio C Hamano wrote:
quoted
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.)
Perhaps we can do something similar to core.filemode?  Create a
file that we would need to create anyway in "text" mode, and
read it back in "binary" mode to see what stdio did?
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help