Subject: Re: bug#66211: 30.0.50; C-x v v in vc-diff does not work with lesser versionf of patch

From: Dmitry Gutov <[email-masked]>
Date: Fri, 29 Sep 2023 20:27:21 +0300

On 29/09/2023 18:22, Eli Zaretskii wrote:
>> Date: Fri, 29 Sep 2023 13:22:39 +0300
>> Cc: [email-masked]
>> From: Dmitry Gutov <[email-masked]>
>>
>> On 29/09/2023 10:05, Eli Zaretskii wrote:
>>>> From: "Alfred M. Szmidt"<[email-masked]>
>>>> Date: Tue, 26 Sep 2023 08:17:27 -0400
>>>>
>>>>
>>>> The C-x v v command in a*vc-diff*  buffer does not work if you have a
>>>> lesser version of patch, e.g., the one on OpenBSD:
>>>>
>>>> user-error: Patch failed: patch: unknown option -- no-backup-if-mismatch
>>>> usage: patch [-bCcEeflNnRstuv] [-B backup-prefix] [-D symbol] [-d directory]
>>>>                [-F max-fuzz] [-i patchfile] [-o out-file] [-p strip-count]
>>>>                [-r rej-name] [-V t | nil | never] [-x number] [-z backup-ext]
>>>>                [--posix] [origfile [patchfile]]
>>>>          patch <patchfile
>>> I don't understand: does "git apply" invoke Patch?  AFAICT, "C-x v v"
>>> in a*vc-diff*  buffer runs "git apply FILE", where FILE is a temporary
>>> patch file created from the diffs to be applied.  What am I missing?
>>
>> vc-default-checkin-patch calls 'patch'. It's for other backends.
> 
> Why do we call Patch if we have a way to apply hunks in Lisp?  Wasn't
> that just discussed in the other thread?

https://lists.gnu.org/archive/html/emacs-devel/2022-10/msg01353.html

Anyway, it doesn't seem like 'patch' itself is the problem in this case: 
the alternative flags should work for BSD Patch as well. Though I'm 
still waiting for confirmation.