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

From: Eli Zaretskii <[email-masked]>
Date: Fri, 29 Sep 2023 18:22:09 +0300

> 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?