From: Gregory Jefferis <jefferis@gmail.com>
To: Dmitry Potapov <dpotapov@gmail.com>
Cc: Steffen Prohaska <prohaska@zib.de>,
Johannes Schindelin <Johannes.Schindelin@gmx.de>,
Peter Karlsson <peter@softwolves.pp.se>,
Git Mailing List <git@vger.kernel.org>,
Robin Rosenberg <robin.rosenberg.lists@dewire.com>,
Jeff King <peff@peff.net>,
Linus Torvalds <torvalds@linux-foundation.org>
Subject: Re: CRLF problems with Git on Win32
Date: Wed, 09 Jan 2008 17:37:07 +0000 [thread overview]
Message-ID: <C3AAB6C3.10C6B%jefferis@gmail.com> (raw)
In-Reply-To: <20080109150310.GC23659@dpotapov.dyndns.org>
On 9/1/08 15:03, "Dmitry Potapov" <dpotapov@gmail.com> wrote:
> On Wed, Jan 09, 2008 at 01:52:59PM +0000, Gregory Jefferis wrote:
>>
>> Re point (1) to be reversible in practice, we need to know who we've munged.
>> Otherwise when gnuming blindly at checkout we might damage some innocent
>> bystander file that only ever had LFs in the first place.
>
> If you work on Windows and you have clrf=safe, you cannot put a text
> file that has only LFs, because naked LF is not allowed. If you want
> to have naked LF in some file, you have to say that explicitly in
> .gitattributes.
>
> If you work on cross platform project, and somebody else put a file with
> bare LFs, which is not text though heauristic wrongly detected it as
> text then you can remove this file from your working directory, correct
> .gitattributes and checkout this file again. The idea of crlf=safe is
> that information is never lost. It is always fully reversible, and if
> you put something into the repostory, you always get back exactly the
> same unless you changed your .gitattributes.
>
>> Re (2) well if we happen to munge a file on checkin that is actually binary,
>> it must be gnumed on the way out otherwise it will be broken for the user.
>
> Of course, it will, because the same heuristic will detect it as text,
> and convert it back. So as long as you stay on the same platform and
> with the same .gitattributes, you always get back exactly what you
> put.
Dmitry, I think all of your comments are correct, BUT, this behaviour as
currently proposed still does not seem to me safe (or perhaps transparent)
enough to be enabled by default on a Windows platform (or for that matter a
Unix one).
If LF text files checked in on Windows get turned into CRLF files on
checkout by default then I think plenty of people would be surprised and
probably unhappy. Similarly I think it would be a bad thing if a binary
file that looked like LF only text got mangled on checkout by LF->CRLF
conversion - although I agree that it would be possible to recover from this
situation with a bit of juggling.
So my view is still that this behaviour would be a useful option when
explicitly enabled by .gitattributes (as opposed to the current auto CRLF
implementation, which could lead to irreversible munging) but that it is not
an appropriate system-wide default. I could however see that sane people
might disagree!
For that matter autocrlf=true,input,safe are all slightly dubious when used
as config vars rather than as attributes for the same collateral damage
reason discussed above. The only way to prevent collateral damage is to
consult .gitattributes on checkout (as Dmitry seemed to be assuming above)
rather than gnuming anything in the repository that looked like LF only
text. Of course even .gitattributes can change over time, so only by
storing a "munged" metadata attribute in the repository could you guarantee
that everything came out as it went in - which I think is a highly desirable
base state.
Greg.
next prev parent reply other threads:[~2008-01-09 17:37 UTC|newest]
Thread overview: 113+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-01-07 9:16 CRLF problems with Git on Win32 Peter Karlsson
2008-01-07 9:57 ` Steffen Prohaska
2008-01-07 10:00 ` Junio C Hamano
2008-01-07 12:15 ` Steffen Prohaska
2008-01-07 10:12 ` Jeff King
2008-01-07 18:47 ` Robin Rosenberg
2008-01-07 19:16 ` Johannes Schindelin
2008-01-07 21:03 ` Robin Rosenberg
2008-01-07 21:18 ` Johannes Schindelin
2008-01-07 21:40 ` Steffen Prohaska
[not found] ` <3B08AC4C-A807-4155-8AD7-DC6A6D0FE134-wjoc1KHpMeg@public.gmane.org>
2008-01-07 22:06 ` Junio C Hamano
[not found] ` <7vzlvhxpda.fsf-jO8aZxhGsIagbBziECNbOZn29agUkmeCHZ5vskTnxNA@public.gmane.org>
2008-01-07 22:58 ` Linus Torvalds
[not found] ` <alpine.LFD.1.00.0801071457040.3148-5CScLwifNT1QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org>
2008-01-07 23:46 ` Gregory Jefferis
2008-01-08 11:09 ` git and unicode Gonzalo Garramuño
2008-01-08 15:09 ` Remi Vanicat
2008-01-08 20:36 ` Robin Rosenberg
2008-01-08 8:55 ` CRLF problems with Git on Win32 Marius Storm-Olsen
2008-01-08 7:02 ` Steffen Prohaska
2008-01-08 7:29 ` Junio C Hamano
2008-01-08 10:08 ` Jeff King
2008-01-08 10:35 ` Junio C Hamano
2008-01-08 12:20 ` Gregory Jefferis
2008-01-08 17:29 ` J. Bruce Fields
[not found] ` <20080108172957.GG22155-uC3wQj2KruNg9hUCZPvPmw@public.gmane.org>
2008-01-08 17:56 ` Steffen Prohaska
2008-01-08 18:07 ` Junio C Hamano
2008-01-08 18:07 ` Junio C Hamano
[not found] ` <7vmyrgry20.fsf-jO8aZxhGsIagbBziECNbOZn29agUkmeCHZ5vskTnxNA@public.gmane.org>
2008-01-08 18:58 ` Steffen Prohaska
2008-01-08 19:09 ` J. Bruce Fields
2008-01-08 19:47 ` Junio C Hamano
[not found] ` <7vir24rtfp.fsf-jO8aZxhGsIagbBziECNbOZn29agUkmeCHZ5vskTnxNA@public.gmane.org>
2008-01-08 20:02 ` Steffen Prohaska
[not found] ` <B655B6FF-9377-434A-A979-2E758771B0FA-wjoc1KHpMeg@public.gmane.org>
2008-01-08 20:15 ` Junio C Hamano
[not found] ` <7v3at8rs4b.fsf-jO8aZxhGsIagbBziECNbOZn29agUkmeCHZ5vskTnxNA@public.gmane.org>
2008-01-08 20:39 ` Steffen Prohaska
2008-01-09 11:03 ` Johannes Schindelin
[not found] ` <alpine.LSU.1.00.0801091100401.31053-OGWIkrnhIhzN0uC3ymp8PA@public.gmane.org>
2008-01-09 12:45 ` Steffen Prohaska
[not found] ` <019B1C82-27BF-4B6B-981D-5498D31B5DD3-wjoc1KHpMeg@public.gmane.org>
2008-01-09 13:32 ` Johannes Schindelin
2008-01-08 20:41 ` Linus Torvalds
2008-01-09 8:03 ` Junio C Hamano
[not found] ` <7vd4sbmnmz.fsf-jO8aZxhGsIagbBziECNbOZn29agUkmeCHZ5vskTnxNA@public.gmane.org>
2008-01-09 10:48 ` Johannes Schindelin
2008-01-09 20:25 ` Junio C Hamano
[not found] ` <7vmyrehhkd.fsf-jO8aZxhGsIagbBziECNbOZn29agUkmeCHZ5vskTnxNA@public.gmane.org>
2008-01-09 20:50 ` Johannes Schindelin
[not found] ` <alpine.LSU.1.00.0801092047190. 31053@racer.site>
[not found] ` <alpine.LSU.1.00.0801092047190.31053-OGWIkrnhIhzN0uC3ymp8PA@public.gmane.org>
2008-01-09 21:03 ` Steffen Prohaska
[not found] ` <alpine.LSU.1.00.0801091041570.31053-OGWIkrnhIhzN0uC3ymp8PA@public.gmane.org>
2008-01-10 9:25 ` Peter Karlsson
[not found] ` <Pine.LNX.4.64.0801101023380.11922-Hh8n7enkEC8qi7mQTfpNuw@public.gmane.org>
2008-01-10 11:57 ` Johannes Schindelin
2008-01-11 3:03 ` Miles Bader
2008-01-11 3:03 ` Miles Bader
[not found] ` <alpine.LSU.1.00.080110115 5140.31053@racer.site>
[not found] ` <alpine.LSU.1.00.0801101155140.31053-OGWIkrnhIhzN0uC3ymp8PA@public.gmane.org>
2008-01-10 13:28 ` Peter Karlsson
2008-01-10 14:31 ` Peter Harris
[not found] ` <eaa105840801100631p6b95ed86j153d70244d474b03-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2008-01-11 13:12 ` Peter Karlsson
2008-01-11 15:39 ` Peter Harris
2008-01-08 19:59 ` Steffen Prohaska
2008-01-08 20:11 ` Junio C Hamano
[not found] ` <7vbq7wrsb6.fsf-jO8aZxhGsIagbBziECNbOZn29agUkmeCHZ5vskTnxNA@public.gmane.org>
2008-01-08 20:20 ` Steffen Prohaska
2008-01-08 20:50 ` Dmitry Potapov
[not found] ` <20080108205054.GN6951-EQL4cN526mwi5CQI31g/s0B+6BGkLq7r@public.gmane.org>
2008-01-08 21:15 ` Junio C Hamano
2008-01-08 21:57 ` Robin Rosenberg
2008-01-08 21:31 ` Linus Torvalds
[not found] ` <alpine.LFD.1.00.0801081325010.3148-5CScLwifNT1QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org>
2008-01-08 22:09 ` Sean
2008-01-08 22:51 ` Dmitry Potapov
[not found] ` <20080108225138.GA23240-EQL4cN526mwi5CQI31g/s0B+6BGkLq7r@public.gmane.org>
2008-01-09 0:01 ` Linus Torvalds
2008-01-09 8:43 ` Abdelrazak Younes
2008-01-10 19:58 ` Gregory Jefferis
2008-01-10 20:20 ` Linus Torvalds
2008-01-10 21:28 ` Gregory Jefferis
2008-01-10 23:23 ` Dmitry Potapov
2008-01-11 0:02 ` Linus Torvalds
2008-01-11 0:32 ` Junio C Hamano
2008-01-11 7:10 ` Steffen Prohaska
2008-01-11 15:58 ` Linus Torvalds
2008-01-11 16:28 ` Steffen Prohaska
2008-01-11 17:25 ` Linus Torvalds
2008-01-11 17:56 ` Steffen Prohaska
2008-01-11 18:10 ` Linus Torvalds
2008-01-11 18:29 ` Steffen Prohaska
2008-01-11 19:16 ` Linus Torvalds
2008-01-11 19:50 ` Sam Ravnborg
2008-01-11 21:18 ` Johannes Schindelin
2008-01-11 22:21 ` Sam Ravnborg
2008-01-12 15:08 ` Dmitry Potapov
2008-01-12 17:54 ` [PATCH] [WIP] safecrlf: Add mechanism to warn about irreversible crlf conversions Steffen Prohaska
2008-01-12 19:14 ` Dmitry Potapov
2008-01-13 9:05 ` [WIP v2] " Steffen Prohaska
2008-01-11 19:53 ` CRLF problems with Git on Win32 Christer Weinigel
2008-01-14 9:41 ` David Kågedal
2008-01-11 19:00 ` Gregory Jefferis
2008-01-12 15:26 ` Dmitry Potapov
2008-01-10 20:50 ` Rogan Dawes
2008-01-10 21:15 ` Gregory Jefferis
2008-01-11 1:15 ` Junio C Hamano
2008-01-07 21:36 ` Linus Torvalds
2008-01-08 21:26 ` Peter Karlsson
2008-01-09 10:56 ` Johannes Schindelin
2008-01-09 12:41 ` Steffen Prohaska
2008-01-09 13:52 ` Gregory Jefferis
2008-01-09 14:03 ` Johannes Schindelin
2008-01-09 15:22 ` Dmitry Potapov
2008-01-09 15:03 ` Dmitry Potapov
2008-01-09 17:37 ` Gregory Jefferis [this message]
2008-01-09 19:05 ` Dmitry Potapov
2008-01-07 21:42 ` Thomas Neumann
2008-01-08 10:56 ` Peter Karlsson
2008-01-08 11:07 ` Jeff King
2008-01-08 11:54 ` Johannes Schindelin
2008-01-08 11:52 ` Johannes Schindelin
2008-01-08 13:07 ` Peter Harris
2008-01-08 15:20 ` Peter Karlsson
2008-01-08 15:58 ` Kelvie Wong
2008-01-08 21:33 ` Dmitry Potapov
2008-01-09 18:46 ` Jan Hudec
2008-01-07 10:13 ` Peter Klavins
2008-01-07 12:58 ` Steffen Prohaska
2008-01-07 13:50 ` Peter Karlsson
2008-01-07 14:14 ` Peter Klavins
2008-01-07 16:05 ` Steffen Prohaska
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=C3AAB6C3.10C6B%jefferis@gmail.com \
--to=jefferis@gmail.com \
--cc=Johannes.Schindelin@gmx.de \
--cc=dpotapov@gmail.com \
--cc=git@vger.kernel.org \
--cc=peff@peff.net \
--cc=peter@softwolves.pp.se \
--cc=prohaska@zib.de \
--cc=robin.rosenberg.lists@dewire.com \
--cc=torvalds@linux-foundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).