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


View this message in rfc822 format

From: Michael Albinus <michael.albinus <at> gmx.de>
To: Jörg Sommer <joerg <at> jo-so.de>
Cc: 74352 <at> debbugs.gnu.org
Subject: bug#74352: 29.4; emerge-files with tramp + local file fails
Date: Sun, 17 Nov 2024 11:32:00 +0100
Jörg Sommer <joerg <at> jo-so.de> writes:

Hi Joerg,

>> 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'm not an emerge aficionado
>
> Out of curiosity: Is there a better tool?

ediff-files, ediff-directories and ediff-revision. Because I use them
all days, I've rebound some keys in my .emacs:

--8<---------------cut here---------------start------------->8---
(require 'dired)
(define-key dired-mode-map "=" 'ediff-files)
(define-key dired-mode-map "\M-=" 'ediff-directories)

(require 'vc)
(define-key vc-prefix-map "=" 'ediff-revision)
(setq ediff-diff-options "-a")

(add-hook 'vc-dir-mode-hook
	  (lambda () (define-key vc-dir-mode-map "=" 'ediff-revision)))
--8<---------------cut here---------------end--------------->8---

Best regards, Michael.




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.