GNU bug report logs - #40967
27.0.50; vc-diff in indirect buffers

Previous Next

Package: emacs;

Reported by: Nathan Moreau <nathan.moreau <at> m4x.org>

Date: Wed, 29 Apr 2020 18:02:01 UTC

Severity: normal

Tags: fixed

Found in version 27.0.50

Fixed in version 28.1

Done: Lars Ingebrigtsen <larsi <at> gnus.org>

Bug is archived. No further changes may be made.

Full log


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

From: Richard Copley <rcopley <at> gmail.com>
To: 40967 <at> debbugs.gnu.org, Nathan Moreau <nathan.moreau <at> m4x.org>
Subject: Re: bug#40967: 27.0.50; vc-diff in indirect buffers
Date: Thu, 15 Oct 2020 09:08:45 +0100
In 'vc-revision-other-window', the 'switch-to-buffer-other-window'
call is now wrapped in a 'with-current-buffer', and therefore
'vc-revision-other-window' no longer has the effect of switching
buffer.

This is unfortunate. See 'ediff-vc-internal':

    (vc-revision-other-window rev1)
    (setq rev1buf (current-buffer)
          file1 (buffer-file-name)))

At this point, 'file1' is intended to be the name of the versioned
backup file checked out by 'vc-revision-other-window'. With your
change, instead 'file1' is the name of the base file.

      [...]
      (push (lambda ()
          (ediff-delete-version-file file1)
          [...])
        startup-hooks))

The startup-hooks function deletes the base file containing the local
changes that the user wanted to examine, instead of the temporary
backup file.

Recipe, from emacs -Q:

* visit a file under vc that has local changes
* M-x ediff-revision RET RET RET RET

By the time the Ediff control panel appears, the file has been deleted.

That behaviour is, emphatically, NOT desirable. I'd even go as far as
to suggest it should be fixed as a matter of urgency, or reverted for
now. Just my opinion, of course.




This bug report was last modified 4 years and 223 days ago.

Previous Next


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