Re: CRLF problems with Git on Win32

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

 




On Thu, 10 Jan 2008, Gregory Jefferis wrote:
> 
> I'm not sure that I understand the whole deal about platform default line
> endings.  Isn't plain git functionally agnostic about line endings?  You can
> check in CRLF text files to git and it doesn't care.  You can diff, show etc
> just fine.  I haven't yet found anything that breaks with CRLF files.  In
> this sense plain git is already Windows ready.  Maybe I'm missing something?

If you work together with other people on other platforms, then CRLF is a 
major pain in the *ss.

So you have various options:

 - only develop on unix-like platforms: lines end with LF, and nobody has 
   any problems regardless of autocrlf behaviour. Might as well consider 
   everything binary.

 - only develop on windows, using only one set of basic tools: lines 
   normally end with CRLF, and nobody cares. Migth as well consider 
   everything binary.

 - Mixed windows/unix platfoms, but the Windows people are constrained to 
   use only tools that write text-files with LF. Might we well consider 
   everything binary.

   Quite frankly, Johannes seems to argue that this is a viable 
   alternative, but I seriously doubt that is really true. Yes, there are 
   lots of Windows tools (pretty much all of them by now, I suspect) that 
   *understand* LF-only line endings, but it's also undoubtedly the case 
   that if you allow windows developers to use their normal tools, a 
   number of them *will* write files with CRLF.

 - Mixed windows usage - either with other UNIX users, or even just 
   *within* a windows environment if *some* of the tools are basically 
   UNIX ports (ie MinGW or Cygwin without text-mounts)

   In this case, some tools will write files with CRLF, and others will 
   write them with LF. Again, usually all tools can *read* either form, 
   but the writing is mixed and depends on the tool (so if you work in a 
   group where different people use different editors, you will literally 
   switch back-and-forth between LF and CRLF, sometimes mixing the two in 
   the same file!).

   This one - at the very least - basically requires "autocrlf=input". 
   Anything else is just madness, because otherwise you'll get files that 
   get partly or entirely rewritten in the object database just due to 
   line ending changes.

So in *most* of the situations, you probably don't need to worry about 
autocrlf. But the thing is, I'm almost 100% convinced that the moment you 
have even *one* windows developer, and any UNIX experience at all (whether 
due to people actually working on unix, or just using unixy tools under 
Windows), you will end up in that final case that really does want 
autocrlf.

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