GNU bug report logs - #74352
29.4; emerge-files with tramp + local file fails

Previous Next

Package: emacs;

Reported by: Jörg Sommer <joerg <at> jo-so.de>

Date: Thu, 14 Nov 2024 04:53:02 UTC

Severity: normal

Tags: confirmed

Merged with 6850

Found in versions 24.0.50, 29.4

Fixed in version 31.1

Done: Michael Albinus <michael.albinus <at> gmx.de>

Bug is archived. No further changes may be made.

Full log


Message #24 received at 74352 <at> debbugs.gnu.org (full text, mbox):

From: Jörg Sommer <joerg <at> jo-so.de>
To: Michael Albinus <michael.albinus <at> gmx.de>
Cc: 74352 <at> debbugs.gnu.org
Subject: Re: bug#74352: 29.4; emerge-files with tramp + local file fails
Date: Sun, 17 Nov 2024 11:10:47 +0100
[Message part 1 (text/plain, inline)]
Michael Albinus schrieb am Sa 16. Nov, 13:21 (+0100):
> Jörg Sommer <joerg <at> jo-so.de> writes:
> > 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?

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*.

> 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.

> I'm not an emerge aficionado

Out of curiosity: Is there a better tool?



-- 
"The future is here. It's just not widely distributed yet."
                                       (William Gibson)
[signature.asc (application/pgp-signature, inline)]

This bug report was last modified 111 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.