unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: Michael Albinus via "Bug reports for GNU Emacs, the Swiss army knife of text editors" <bug-gnu-emacs@gnu.org>
To: "Jörg Sommer" <joerg@jo-so.de>
Cc: 74352@debbugs.gnu.org
Subject: bug#74352: 29.4; emerge-files with tramp + local file fails
Date: Sat, 16 Nov 2024 13:21:32 +0100	[thread overview]
Message-ID: <87ttc78j3n.fsf@gmx.de> (raw)
In-Reply-To: <w5zz6k6sizr36ypz4i74w2ynuujtda3oxkkhsykmllycgb4nkq@crohp7hnsmhb> ("Jörg Sommer"'s message of "Wed, 13 Nov 2024 20:11:10 +0100")

Jörg Sommer <joerg@jo-so.de> writes:

> Hi,

Hi Jörg,

> when running `emerge-files` with `/ssh:remote:file` and `~/local-file` I get
> the buffer `*emerge-diff-errors*` with:
>
> ```
> diff: /tmp/tramp.wlcRNL: No such file or directory
> diff: /home/joerg/local-file: No such file or directory
> ```

I can reproduce the problem if file-A is remote, and file-B is
local. Also, if both file-A and file-B are remote.

If both files are local, or file-A is local and file-B is remote, emerge
works as exptected.

The crucial point seems to be that file-A is a remote one.

> This change solves the problem:
>
> ```diff
> diff --git lisp/vc/emerge.el lisp/vc/emerge.el
> index ca48f2f3c7b..562041e4232 100644
> --- lisp/vc/emerge.el
> +++ lisp/vc/emerge.el
> @@ -581,6 +581,7 @@ emerge-make-diff-list
>    (setq emerge-diff-buffer (get-buffer-create "*emerge-diff*"))
>    (with-current-buffer
>        emerge-diff-buffer
> +    (setq default-directory (file-name-directory file-A))
>      (erase-buffer)
>      (shell-command
>       (format "%s %s %s %s"
> ```

The point is, that emerge calls the 'diff' program for either the file
itself (if local), or a local copy of the file (if remote). A consistent
solution is therefore to set a local default directory, like

--8<---------------cut here---------------start------------->8---
    (setq default-directory temporary-file-directory)
--8<---------------cut here---------------end--------------->8---

instead of your change. Would you like to check?

However, this won't be a complete solution. There are other places in
emerge.el, where the temporary buffer for calling 'diff' must have a
local default directory. I'm not an emerge aficionado (haven't used it
until now). Would you like to produce a complete patch, based on my
proposal above?

> Regards Jörg

Best regards, Michael.





  parent reply	other threads:[~2024-11-16 12:21 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-11-13 19:11 bug#74352: 29.4; emerge-files with tramp + local file fails Jörg Sommer
2024-11-14  7:05 ` Eli Zaretskii
2024-11-14 17:27   ` Jörg Sommer
2024-11-14  8:10 ` Michael Albinus via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-11-16 12:21 ` Michael Albinus via Bug reports for GNU Emacs, the Swiss army knife of text editors [this message]
2024-11-17 10:10   ` Jörg Sommer
2024-11-17 10:32     ` Michael Albinus via Bug reports for GNU Emacs, the Swiss army knife of text editors

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=87ttc78j3n.fsf@gmx.de \
    --to=bug-gnu-emacs@gnu.org \
    --cc=74352@debbugs.gnu.org \
    --cc=joerg@jo-so.de \
    --cc=michael.albinus@gmx.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.
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).