From: Dmitry Potapov <dpotapov@gmail.com>
To: Gregory Jefferis <jefferis@gmail.com>
Cc: Steffen Prohaska <prohaska@zib.de>,
Linus Torvalds <torvalds@linux-foundation.org>,
Junio C Hamano <gitster@pobox.com>,
Git Mailing List <git@vger.kernel.org>
Subject: Re: CRLF problems with Git on Win32
Date: Sat, 12 Jan 2008 18:26:15 +0300 [thread overview]
Message-ID: <20080112152615.GH2963@dpotapov.dyndns.org> (raw)
In-Reply-To: <C3AD6D58.10E02%jefferis@gmail.com>
On Fri, Jan 11, 2008 at 07:00:40PM +0000, Gregory Jefferis wrote:
>
> LF only repositories are model that everyone is tending towards but I feel
> that there are (sane) people out there who would sometimes like to have CRLF
> files in the repository and do cross-platform development (I would
> developing on a Mac for a Windows originated Win/Mac project or if I were
> keeping vendor source code in a tree). In spite of the plethora of autocrlf
> variants so far there is still none that on unix would give you LF->CRLF on
> check in and CRLF->LF on checkout! This should be perfectly compatible with
> git's internals
Git internally considers only LF as the EOL marker. I think there are
more three hundreds places in Git where the decision about end-of-line
is made based on that. Though CRLF may appear to work, but it is more
an artifact caused by its LF ending, so what it actually works is LF and
nothing else. IOW, CRLF from the Git's point of view is no better EOL
than let's say SPACE+LF.
> and I think it should be possible to allow this without
> breaking anything for other situations. One solution, which would have
> other uses, would be to allow checkin conversion to a specified line ending
> and checkout conversion to platform line ending as separately configurable
> options.
>
> If this seems outrageous then it should be made perfectly clear that the git
> project strongly discourages CRLF text files in cross-platform repositories,
Because LF is the only true EOL marker, and CRLF is not and never will be.
In fact, Git is written in C, and the decision of what is EOL in C is made
many years ago. So, it is the only sane choice to use LF for _internal_
representation. It can be said that *nix users are lucky in that their
OS uses the same symbol, but it is similar to big-endian platforms being
lucky with byte order when it comes to TCP/IP. That is not because TCP/IP
wants to discourage little-endian platforms, but having the single encoding
is the only sane choice if you care about interoperability, and any other
decision will end up being much worse.
Dmitry
next prev parent reply other threads:[~2008-01-12 15:26 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
[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 [this message]
2008-01-10 20:50 ` Rogan Dawes
2008-01-10 21:15 ` Gregory Jefferis
2008-01-11 1:15 ` Junio C Hamano
2008-01-08 18:07 ` 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
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=20080112152615.GH2963@dpotapov.dyndns.org \
--to=dpotapov@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=jefferis@gmail.com \
--cc=prohaska@zib.de \
--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).