Thread (19 messages) flat view 19 messages, 3 authors, 2016-06-15

Store autocrlf during init-db (was [msysGit] autocrlf problems with Git-preview20080301.exe)

From: Steffen Prohaska <hidden>
Date: 2016-06-15 22:44:24

On Sun, 23 Mar 2008, Johannes Schindelin wrote:
On Sat, 22 Mar 2008, Junio C Hamano wrote:
quoted
Steffen Prohaska [off-list ref] writes:
quoted
quoted
I suppose autocrlf enabled by default could be useful for new 
repositories, but not for working with existing repositories.
We changed the global default to a sane setting for cross-platform 
projects to avoid such problems in the future.  This means that from 
now on git will take care that any repository newly created will have 
sane line endings (LF in the repository; and CRLF in the work tree if 
checked out on Windows respectively LF if checked out on Unix).
I've always wondered why you guys used /etc/gitconfig instead of setting 
it in the templates (or a patch to git-init).

I was against the idea of /etc/gitconfig from the very beginning (even 
before msysgit existed) in git.git itself, but this is a very good 
example why /etc/gitconfig is a bad idea.  It affects _existing_ setups.

How about fixing msys port so that it sets the configuration when the 
user initializes a _new_ repository, without breaking repositories the 
user has been happily using?
Makes sense.
Hmm.  I am not convinced.

Setting autocrlf for every repository limits the user's options to
override the default.  Currently we provide a global default and the
user can either override globally for all his repositories or on
a per-repository basis.  Hence, users can decide that they want autocrlf
to never happen and can easily set this in ~/.gitconfig.  If we stored
autocrlf in every newly created repository, the user would need to
override our default again and again for every new repository.

Maybe what we want is to conserve the setup that exists when a new
repository is created.  Changing autocrlf later is tricky because the
work tree's line endings depend on the settings during checkout.
Therefore, it makes sense to preserve the value of autocrlf that exists
during the first checkout.  In this regards autocrlf is different from,
for example, author because author can be easily changed later without
requiring any conversion of existing files in the work tree.

Patch follows.

Unfortunately the proposed change won't change the fact that existing
msysgit setups still break.  I still do not see an easy way to avoid
this.

            Steffen
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help