Subject: Re: bug#60897: 29.0.60; vc-revert fails to revert buffer

From: Eric Gillespie <[email-masked]>
Date: Fri, 20 Jan 2023 18:54:14 -0600

Juri Linkov <[email-masked]> writes:

> The behavior of C-x v u in the diff buffer was improved in emacs-29
> to revert all files mentioned in the diff.  In emacs-28 it reverted
> only one file, but in emacs-29 when the diff buffer shows many files,
> such as after C-x v D, all these files are reverted.

Interesting, I hadn't noticed.  Actually, I just tried reverting
two files from the diff buffer in 28.2 and it worked.

I've been regretting not finding the time to report the vc bug I
ran across in emacs 28, but then when
4803fba487d41f0817feab48b5095ef4b4940ff6 showed up and fixed what
I HAD noticed, I stopped worrying about it.  I'm getting worried
again :)

Here's what I see:

1. edit two versioned files
2. mark them both in vc-dired
3. = to show the diff for the two marked files
4. C-x v u

In emacs 27 and 28, both files are reverted.

Now, do the same first 3 steps again but now:
4. C-x v v
5. write a log message
6. C-c C-c

In 23.1 and 27: commits, as it has since vc-dired was born in
23.1 (I have 23.1 handy and just confirmed I was not
misremembering).

In 28, you get this baffling prompt:

'Buffer *vc-diff* modified; save it?  (yes or no)'

Neither option commits :)

It seemed to go back to normal with commit
4803fba487d41f0817feab48b5095ef4b4940ff6 on my daily driver
openSUSE laptop, but it's not working on my home FreeBSD box!
I'll look into that more...

I can't seem to make that fail a second time.  But this was the
error message I got:

vc-do-command: Failed (status 128): git --no-pager apply --cached ../../../../tmp/git-patch11lenk

Which is a pretty strange path and which does not exist.  If you
add one more ../ (five total) you will indeed reach /tmp but that
would be a strange way to reference it.

Thanks!