From: Eli Zaretskii <eliz@gnu.org>
To: Dmitry Gutov <dmitry@gutov.dev>
Cc: 65049@debbugs.gnu.org, habamax@gmail.com, juri@linkov.net
Subject: bug#65049: Minor update to the repro steps
Date: Sun, 27 Aug 2023 08:36:04 +0300 [thread overview]
Message-ID: <831qfpkpx7.fsf@gnu.org> (raw)
In-Reply-To: <8be534f8-9f03-5de6-53c8-76be0f9456fa@gutov.dev> (message from Dmitry Gutov on Sun, 27 Aug 2023 04:14:11 +0300)
> Date: Sun, 27 Aug 2023 04:14:11 +0300
> Cc: juri@linkov.net, habamax@gmail.com, 65049@debbugs.gnu.org
> From: Dmitry Gutov <dmitry@gutov.dev>
>
> On 26/08/2023 11:50, Eli Zaretskii wrote:
>
> I'm guessing that if we try hard enough with files encoded in an "alien"
> coding system, we will see a similar difference between vc-diff and
> vc-root-diff.
We could. The 'undecided-unix' value is a good default, but if the
fileset includes files with different incompatible encodings, there's
no single coding-system that could satisfy that, and what Emacs
guesses will probably be okay for the first file, but not necessarily
for the rest.
> > . When the compared files have DOS EOLs, applying the patch on Posix
> > hosts (and with Git on all hosts) must preserve the ^M characters
> > at ends of lines in the diffs buffer. This might be a bit ugly
> > when viewing the diffs, but if the same commands are used for
> > patching, this cannot be helped.
>
> There are two questions here: how the diff buffer should look to the
> user, and what patch to feed to Git programmatically. If we decide that
> the formats should be different (e.g. with/without ^M), we could
> probably perform additional newline conversion inside the patch text too.
Yes, we could implement some display-time nicety.
> > . In all my experience with VCSes managing repositories with mixed
> > EOL formats (such as what we have in Emacs) on Windows, the only
> > sane way of doing that is to force the VCS to leave the original
> > EOLs intact. With CVS and RCS, this is done by checking out all
> > the text files as "binary"; in Git, there's a config setting to do
> > that. I have no real experience with SVN and Hg, so I don't know
> > what happens there. So it's possible we should remove the special
> > handling of Windows in vc-diff-internal, because its only reason
> > is to show "nicer" diffs.
>
> What does it look like on Windows without the "special handling"? Not
> displayed as a bunch of ^M, right?
Yes, the ^M are removed by EOL conversion.
> > . The line you suggest to remove should IMO stay, because your
> > suggestion is based on what you see with plain-ASCII files. If
> > the files have some non-trivial text encoding, failing to use the
> > right encoding for the diffs will produce mojibake. The EOL
> > conversion produced by vc-coding-system-for-diff is indeed
> > problematic, see above; but the text-conversion part is not, and
> > should stay.
> >
> > Therefore, I propose the patch below, which incorporates the above
> > change, for the emacs-29 branch. I think it is safe to use the 'unix
> > EOL conversion on all systems, in the vc-git.el part of the changeset,
> > but if you feel uneasy about that on the release branch, we could make
> > it Windows-specific on emacs-29 and remove the condition on master.
>
> LGTM for emacs-29, thank you. In case anybody reports a problem, we can
> add that OS limitation later.
Thanks, installed on the emacs-29 branch.
> Regarding your paragraph above about mojibake, though. That makes a lot
> of sense, but I feel I have to stress: this mechanism doesn't work for
> vc-root-diff (C-x v D).
Not sure I understand. Can you show a recipe for "doesn't work"?
> Does that mean the coding system mismatch sufferers just silently use
> vc-diff and never report their problems with vc-root-diff? The latter
> command was added in 2009. No contest with 1992, but still.
I think it means most source files are plain-ASCII or UTF-8 at most.
next prev parent reply other threads:[~2023-08-27 5:36 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-08-04 7:50 bug#65049: 29.1; vc-do-command fails in windows emacs 29.1 Maxim Kim
2023-08-04 8:02 ` bug#65049: Minor update to the repro steps Maxim Kim
2023-08-04 11:05 ` Eli Zaretskii
2023-08-04 11:24 ` Maxim Kim
2023-08-04 17:56 ` Juri Linkov
2023-08-06 23:04 ` Maxim Kim
2023-08-07 1:09 ` Maxim Kim
2023-08-07 16:24 ` Eli Zaretskii
2023-08-07 23:17 ` Maxim Kim
2023-08-20 16:49 ` Juri Linkov
2023-08-20 18:25 ` Eli Zaretskii
2023-08-21 6:53 ` Juri Linkov
2023-08-21 11:00 ` Eli Zaretskii
2023-08-21 11:39 ` Maxim Kim
2023-08-21 12:18 ` Eli Zaretskii
2023-08-21 23:10 ` Maxim Kim
2023-08-22 12:52 ` Eli Zaretskii
2023-08-22 13:12 ` Maxim Kim
2023-08-22 13:17 ` Eli Zaretskii
2023-08-22 23:43 ` Maxim Kim
2023-08-23 4:28 ` Maxim Kim
2023-08-23 16:21 ` Eli Zaretskii
2023-08-23 17:42 ` Juri Linkov
2023-08-23 18:43 ` Eli Zaretskii
2023-08-23 20:13 ` Dmitry Gutov
2023-08-24 4:54 ` Eli Zaretskii
2023-08-24 21:06 ` Dmitry Gutov
2023-08-24 21:35 ` Dmitry Gutov
2023-08-24 21:44 ` Dmitry Gutov
2023-08-25 6:18 ` Eli Zaretskii
2023-08-26 0:45 ` Dmitry Gutov
2023-08-26 8:50 ` Eli Zaretskii
2023-08-27 1:14 ` Dmitry Gutov
2023-08-27 5:36 ` Eli Zaretskii [this message]
2023-08-27 22:32 ` Dmitry Gutov
2023-08-28 12:12 ` Eli Zaretskii
2023-08-28 13:45 ` Dmitry Gutov
2023-08-28 16:12 ` Eli Zaretskii
2023-08-28 16:51 ` Dmitry Gutov
2023-08-28 16:57 ` Eli Zaretskii
2023-08-28 17:39 ` Dmitry Gutov
2023-08-28 18:26 ` Eli Zaretskii
2023-08-31 2:07 ` Richard Stallman
2023-08-31 2:14 ` Dmitry Gutov
2023-08-31 6:00 ` Eli Zaretskii
2023-08-23 23:46 ` Maxim Kim
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=831qfpkpx7.fsf@gnu.org \
--to=eliz@gnu.org \
--cc=65049@debbugs.gnu.org \
--cc=dmitry@gutov.dev \
--cc=habamax@gmail.com \
--cc=juri@linkov.net \
/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.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
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.