Subject: Re: bug#58525: 28.1: `vc-dir' (key sequence: C-x v d) fails when used with a CVS repository

From: Mark Harig <[email-masked]>
Date: Tue, 18 Oct 2022 15:39:53 +0000 (UTC)

> When I tried to follow your steps (not in HOME toplevel, though, but in
> a subdirectory), I got this:
> 
> Debugger entered--Lisp error: (wrong-type-argument sequencep t)
>   #f(compiled-function (d1 d2) #<bytecode -0xaf17ad190f8dc52>)((Git .
> "~/examples/emacs-debbugs-58525/") (CVS . t))
>   sort(((CVS . t)) #f(compiled-function (d1 d2) #<bytecode
> -0xaf17ad190f8dc52>))
> 
> vc-responsible-backend("/home/dgutov/examples/emacs-debbugs-58525/tmp3/pro...")
>   vc-dir("/home/dgutov/examples/emacs-debbugs-58525/tmp3/pro..." nil)

Yes, that appears to be the problem described, namely, the error:

   vc-responsible-backend: Wrong type argument: sequencep, t

is reported.  Thank you for reproducing the problem reported for
Emacs 28.1.

After finding the CVS backend, the `mapcar' expression in the
function `vc-responsible-backend' continues (erroneously?)
looking for additional VC backends by "walking up the directory
tree" (indirectly, via `vc-call-backend'), where it eventually
finds a "~/.git/" directory.

> Not sure how you get to the step of being prompted for the backend.

>From the original report, here is Step 9.  Adding a prefix (that
is, C-u) to `C-x v d' will get a prompt for the VC backend.

https://debbugs.gnu.org/cgi/bugreport.cgi?bug=58525#5

> > 9. Type `C-u C-x v d' (that is, add a prefix argument to `C-x v
> >    d').  The following prompt will be displayed:
> > 
> >    VC status for directory: ~/tmp3/project1
> > 
> > At the prompt, accept the command by pressing the <RET> key.  The
> > second prompt will then be displayed:
> > 
> >    Use VC backend:

> This should be fixed in Emacs 28.2 released in September.
> https://debbugs.gnu.org/cgi/bugreport.cgi?bug=51800 says Emacs
> 29 only, but it's been backported.
> 
> Since you are not seeing the exact error for some reason, it's
> possible that your problem has not been fixed still. But try
> Emacs 28.2 at least.

If the Emacs maintainers say that they have verified (by
following the steps needed to produce the problem in Emacs 28.1)
that the problem reported for Emacs 28.1 has been fixed in a
later release, then that should complete this process.

(End.)