Subject: bug#74352: 29.4; emerge-files with tramp + local file fails

From: Jörg Sommer <[email-masked]>
Date: Sun, 12 Jan 2025 08:13:19 +0100

Michael Albinus schrieb am Fr 10. Jan, 09:14 (+0100):
> Michael Albinus <[email-masked]> writes:
> >>> 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?
> >>
> >> This works.
> >>
> >> But in the context of *emerge-make-diff-list* it is not very apparent why
> >> *temporary-file-directory* is used. Maybe a comment should say that
> >> *emerge-files-internal* copied the files there by *file-local-copy*.
> >
> > Sure, it doesn't hurt :-)
> >
> > My patch is rather a proof of concept. It could be improved in all directions.
> >
> >>> 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.
> >>
> >> Are you sure? I see only one usage of emerge-diff-program in emerge.el.
> >
> > There is also emerge-diff3-program, used in emerge-make-diff3-list.
> >
> > And there are also emerge-rcs-ci-program and emerge-rcs-co-program, used
> > at different places. But I don't know whether they need special care.
> 
> I lost control. Are you still working on a patch?

Hi Michael,

me, too. I was trying to setup tests and tried to extract the tramp
functions from test/lisp/net/tramp-tests.el, but got lost. I'm not so
familiar with elisp.

I saw your name on top of tramp-tests.el. Could you create for me a template
for the emerge tests, where I can add the function calls and expectations?

Such a “template” would also help me to reproduce some other bugs (in
yasnippet and magit) related to tramp.

Bye, Jörg

-- 
A valid expression in Java: x = new A().new B();