Subject: bug#50258: Don't call (vc-find-backend-function backend 'merge) [svn/cvs/rcs]

From: Lars Ingebrigtsen <[email-masked]>
Date: Tue, 23 Aug 2022 12:38:53 +0200

Dmitry Gutov <[email-masked]> writes:

> I don't really remember how branches worked in SVN, much less CVS or
> RCS to write this step by step.

Yeah, me neither.  :-/

> Maybe testing is not even necessary: the change I'm proposing seems
> like a no-brainer, it just removes the requirement for the 'merge'
> backend methods to be defined (in per-file backends). No code uses
> them directly anyway.
>
> diff --git a/lisp/vc/vc.el b/lisp/vc/vc.el
> index d3e53858c1..3274f1ec9d 100644
> --- a/lisp/vc/vc.el
> +++ b/lisp/vc/vc.el
> @@ -2294,7 +2294,7 @@ vc-merge
>       ((vc-find-backend-function backend 'merge-branch)
>        (vc-call-backend backend 'merge-branch))
>       ;; Otherwise, do a per-file merge.
> -     ((vc-find-backend-function backend 'merge)
> +     ((vc-find-backend-function backend 'merge-file)
>        (vc-buffer-sync)
>        (dolist (file files)
>  	(let* ((state (vc-state file))

I think you should just go ahead and push -- if this turns out to be a
problem in svn/cvs/rcs (which seems unlikely), somebody that uses those
will probably file a bug report in a few years.