From: Johannes Schindelin <Johannes.Schindelin@gmx.de>
To: Junio C Hamano <gitster@pobox.com>
Cc: git@vger.kernel.org, "Beat Bolli" <dev+git@drbeat.li>,
"Jeff King" <peff@peff.org>,
"Eric Sunshine" <sunshine@sunshineco.com>,
"Torsten Bögershausen" <tboegi@web.de>
Subject: Re: [PATCH v3 1/2] merge-file: let conflict markers match end-of-line style of the context
Date: Tue, 26 Jan 2016 10:04:53 +0100 (CET) [thread overview]
Message-ID: <alpine.DEB.2.20.1601260955320.2964@virtualbox> (raw)
In-Reply-To: <xmqqr3h5fmf4.fsf@gitster.mtv.corp.google.com>
Hi Junio,
On Mon, 25 Jan 2016, Junio C Hamano wrote:
> Johannes Schindelin <johannes.schindelin@gmx.de> writes:
>
> > We actually do not have to look at the *entire* context at all: if the
> > files are all LF-only, or if they all have CR/LF line endings, it is
> > sufficient to look at just a *single* line to match that style. And if
> > the line endings are mixed anyway, it is *still* okay to imitate just a
> > single line's eol: we will just add to the pile of mixed line endings,
> > and there is nothing we can do about that.
>
> Isn't there one thing we can do still? If we use CRLF for the
> marker lines when the content is already mixed, I'd think it would
> help Notepad (not necessary for Notepad2 or Wordpad IIUC) by making
> sure that they can see where the marker lines end correctly.
Not sure. You might end up with a very long line (containing plenty of LF
"characters") and the conflict marker *at the end* of said line, with a
CR/LF after it. I would not call that particularly helpful.
Seeing as we really cannot do anything in this case, I thought it would be
a good idea to avoid trying (and failing) to be smart here.
> > Note that while it is true that there have to be at least two lines we
> > can look at (otherwise there would be no conflict), the same is not true
> > for line *endings*: the three files in question could all consist of a
> > single line without any line ending, each. In this case we fall back to
> > using LF-only.
>
> Yeah, this is tricky, and from the same "helping Notepad that
> concatenates lines with LF-only" perspective I should perhaps be
> suggesting to use CRLF in such a case, too, but I would say we
> should not do so. Three variants of a LF-only file may have
> conflict at the incomplete last line, and if we only look at their
> "no EOL"-ness and decide to add CRLF to the result, that would be
> irritatingly wrong.
Oh, but there is the fall-back to the first line. So if we have three
variants of an LF-only file, the logic will figure out that LF-only
end-of-lines are to be used.
So the *only* case where we really have to pick and choose is when all
three files contain only one (or no) line that is not terminated by a line
feed.
I briefly considered to choose EOL_NATIVE in that case, but I really do
not like that unnecessary deviation from Linux Git.
Ciao,
Dscho
next prev parent reply other threads:[~2016-01-26 9:07 UTC|newest]
Thread overview: 55+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-01-22 17:01 [PATCH 0/2] Let merge-file write out conflict markers with correct EOLs Johannes Schindelin
2016-01-22 17:01 ` [PATCH 1/2] convert: add a helper to determine the correct EOL for a given path Johannes Schindelin
2016-01-22 18:47 ` Junio C Hamano
2016-01-22 19:04 ` Johannes Schindelin
2016-01-23 7:05 ` Torsten Bögershausen
2016-01-24 10:42 ` Johannes Schindelin
2016-01-23 6:12 ` Torsten Bögershausen
2016-01-24 10:41 ` Johannes Schindelin
2016-01-22 17:01 ` [PATCH 2/2] merge-file: consider core.crlf when writing merge markers Johannes Schindelin
2016-01-22 18:15 ` Junio C Hamano
2016-01-22 18:47 ` Johannes Schindelin
2016-01-22 19:08 ` Junio C Hamano
2016-01-24 10:44 ` Johannes Schindelin
2016-01-22 19:50 ` Eric Sunshine
2016-01-22 19:52 ` Eric Sunshine
2016-01-24 10:37 ` Johannes Schindelin
2016-01-24 18:26 ` Eric Sunshine
2016-01-25 7:02 ` Johannes Schindelin
2016-01-23 6:31 ` Torsten Bögershausen
2016-01-24 10:39 ` Johannes Schindelin
2016-01-22 17:52 ` [PATCH 0/2] Let merge-file write out conflict markers with correct EOLs Beat Bolli
2016-01-24 10:48 ` [PATCH v2 0/1] " Johannes Schindelin
2016-01-24 10:48 ` [PATCH v2 1/1] merge-file: let conflict markers match end-of-line style of the context Johannes Schindelin
2016-01-24 16:27 ` Torsten Bögershausen
2016-01-24 16:36 ` Torsten Bögershausen
2016-01-25 6:53 ` Johannes Schindelin
2016-01-25 19:45 ` Ramsay Jones
2016-01-26 8:54 ` Johannes Schindelin
2016-01-26 16:43 ` Ramsay Jones
2016-01-26 16:49 ` Johannes Schindelin
2016-01-24 22:09 ` [PATCH v2 0/1] Let merge-file write out conflict markers with correct EOLs Junio C Hamano
2016-01-25 7:25 ` Johannes Schindelin
2016-01-25 8:06 ` [PATCH v3 0/2] " Johannes Schindelin
2016-01-25 8:07 ` [PATCH v3 1/2] merge-file: let conflict markers match end-of-line style of the context Johannes Schindelin
2016-01-25 8:32 ` Torsten Bögershausen
2016-01-25 8:59 ` Johannes Schindelin
2016-01-25 20:12 ` Junio C Hamano
2016-01-26 9:04 ` Johannes Schindelin [this message]
2016-01-26 17:22 ` Junio C Hamano
2016-01-25 8:07 ` [PATCH v3 2/2] merge-file: ensure that conflict sections match eol style Johannes Schindelin
2016-01-25 9:20 ` Johannes Schindelin
2016-01-26 14:42 ` [PATCH v4 0/2] Let merge-file write out conflict markers with correct EOLs Johannes Schindelin
2016-01-26 14:42 ` [PATCH v4 1/2] merge-file: let conflict markers match end-of-line style of the context Johannes Schindelin
2016-01-26 18:23 ` Junio C Hamano
2016-01-26 21:14 ` Junio C Hamano
2016-01-27 7:58 ` Johannes Schindelin
2016-01-27 18:19 ` Junio C Hamano
2016-01-27 19:12 ` Johannes Schindelin
2016-01-27 19:32 ` Junio C Hamano
2016-01-28 7:55 ` Johannes Schindelin
2016-01-26 14:42 ` [PATCH v4 2/2] merge-file: ensure that conflict sections match eol style Johannes Schindelin
2016-01-27 16:37 ` [PATCH v5 0/2] Let merge-file write out conflict markers with correct EOLs Johannes Schindelin
2016-01-27 16:37 ` [PATCH v5 1/2] merge-file: let conflict markers match end-of-line style of the context Johannes Schindelin
2016-01-27 16:37 ` [PATCH v5 2/2] merge-file: ensure that conflict sections match eol style Johannes Schindelin
2016-01-27 20:22 ` [PATCH v5 0/2] Let merge-file write out conflict markers with correct EOLs Junio C Hamano
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=alpine.DEB.2.20.1601260955320.2964@virtualbox \
--to=johannes.schindelin@gmx.de \
--cc=dev+git@drbeat.li \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=peff@peff.org \
--cc=sunshine@sunshineco.com \
--cc=tboegi@web.de \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.