From: Junio C Hamano <gitster-e+AXbWqSrlAAvxtiuMwx3w@public.gmane.org>
To: Dmitry Potapov <dpotapov-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
Cc: Steffen Prohaska <prohaska-wjoc1KHpMeg@public.gmane.org>,
"J. Bruce Fields"
<bfields-uC3wQj2KruNg9hUCZPvPmw@public.gmane.org>,
Johannes Schindelin
<Johannes.Schindelin-Mmb7MZpHnFY@public.gmane.org>,
Robin Rosenberg
<robin.rosenberg.lists-RgPrefM1rjDQT0dZR+AlfA@public.gmane.org>,
Jeff King <peff-AdEPDUrAXsQ@public.gmane.org>,
Peter Karlsson <peter-wzhfs8O2nkI+/KzbbBz5qQ@public.gmane.org>,
Git Mailing List <git-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
msysGit <msysgit-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>
Subject: Re: CRLF problems with Git on Win32
Date: Tue, 08 Jan 2008 13:15:37 -0800 [thread overview]
Message-ID: <7vy7b0qarq.fsf@gitster.siamese.dyndns.org> (raw)
In-Reply-To: <20080108205054.GN6951-EQL4cN526mwi5CQI31g/s0B+6BGkLq7r@public.gmane.org> (Dmitry Potapov's message of "Tue, 8 Jan 2008 23:50:54 +0300")
Dmitry Potapov <dpotapov-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> writes:
> On Tue, Jan 08, 2008 at 07:58:57PM +0100, Steffen Prohaska wrote:
>>
>> I don't think a solution will be found by declaring one platform
>> native (UNIX) and all other platform non-native. The question to
>> answer is how to support cross-platform projects. A valid
>> solution should never corrupt data unless the user explicitly
>> told git to do so. I don't believe it is a valid solution to set
>> core.autocrlf=true on Windows and tell the users: "Well, in its
>> default settings, git sometimes corrupts your data on Windows.
>> Maybe you want to switch to Linux because this is the native
>> platform where data corruption will never happen."
>
> Maybe I am wrong but it seems to me that to guarantee that
> CRLF conversion is reversible (which means that you can
> always get exactly what you put into the repository), it is
> enough to check that the conversation is performed only if
> every LF is preceded by CR.
I've heard that before but I seem to recall convert.c already
doing something similar if I am not mistaken.
static int crlf_to_git(const char *path, const char *src, size_t len,
struct strbuf *buf, int action)
{
struct text_stat stats;
char *dst;
if ((action == CRLF_BINARY) || !auto_crlf || !len)
return 0;
gather_stats(src, len, &stats);
/* No CR? Nothing to convert, regardless. */
if (!stats.cr)
return 0;
if (action == CRLF_GUESS) {
/*
* We're currently not going to even try to convert stuff
* that has bare CR characters. Does anybody do that crazy
* stuff?
*/
if (stats.cr != stats.crlf)
return 0;
/*
* And add some heuristics for binary vs text, of course...
*/
if (is_binary(len, &stats))
return 0;
}
It counts CR and CRLF and converts only when there are the same
number of them. You probably only need to make it also count
LF?
next prev parent reply other threads:[~2008-01-08 21:16 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 [this message]
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
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=7vy7b0qarq.fsf@gitster.siamese.dyndns.org \
--to=gitster-e+axbwqsrlaavxtiumwx3w@public.gmane.org \
--cc=Johannes.Schindelin-Mmb7MZpHnFY@public.gmane.org \
--cc=bfields-uC3wQj2KruNg9hUCZPvPmw@public.gmane.org \
--cc=dpotapov-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
--cc=git-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=msysgit-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org \
--cc=peff-AdEPDUrAXsQ@public.gmane.org \
--cc=peter-wzhfs8O2nkI+/KzbbBz5qQ@public.gmane.org \
--cc=prohaska-wjoc1KHpMeg@public.gmane.org \
--cc=robin.rosenberg.lists-RgPrefM1rjDQT0dZR+AlfA@public.gmane.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).