Subject: bug#68443: 30.0.50; Cannot commit from *vc-diff* if there is a deleted file.

From: Dmitry Gutov <[email-masked]>
Date: Thu, 18 Jan 2024 18:47:07 +0200

On 18/01/2024 09:50, Juri Linkov wrote:
>>>> Yes with this patch the error is no longer present, but the deleted file
>>>> is not displayed in the*log-edit-files*  buffer, unlike if you run
>>>> vc-next-action from*vc-dir*. Although this is another bug report.
>>> Right, that's still a remaining problem. diff-find-file-name doesn't really
>>> want to "find" files that don't exist on disk, so it might need
>>> a replacement for such cases.
>> Indeed, the problem is that diff-find-file-name doesn't get the name
>> of the deleted file even when called with OLD=t:
>>
>>      ;; Use file-regular-p to avoid
>>      ;; /dev/null, directories, etc.
>>      ((or (null file) (file-regular-p file))
>>       file)
> This can be fixed by adding special-casing to diff-vc-deduce-fileset
> that will check whether the diff output is for git diff,
> then will remove a/ and b/ prefixes from file names
> without checking whether these files really exist.

For git, or maybe hg/bzr as well.

Worth a try.