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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sun, 23 Mar 2008, Johannes Schindelin wrote:

> On Sat, 22 Mar 2008, Junio C Hamano wrote:
> 
> > 
> > Steffen Prohaska <prohaska@xxxxxx> writes:
> > 
> > >> 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

--
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

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux