unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
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.





  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

  List information: https://www.gnu.org/software/emacs/

* 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 public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

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 read-only IMAP folder(s) and NNTP newsgroup(s).