Subject: bug#2652: 23.0.91; wacky behavior of "v" command in *vc-dir* buffer

From: Dan Nicolaescu <[email-masked]>
Date: Fri, 13 Mar 2009 00:27:17 -0700 (PDT)

Miles Bader <[email-masked]> writes:

  > Here's a script to create an appropriate git repo for testing:
  > 
  > #!/bin/sh
  > cd /tmp
  > rm -rf zonk
  > mkdir zonk
  > cd zonk
  > git init
  > echo plugh > ppling
  > git add .
  > git commit -m'Init' -a
  > echo Fnord >> ppling
  > 
  > Put that in a file, say "/tmp/mkbugrepo" and execute it with the shell
  > to make the repo, e.g.: sh /tmp/mkbugrepo
  > 
  > Now you can start emacs like:
  > 
  >    (cd /tmp/zonk; HOME=/tmp \emacs -nw -Q )
  > 
  > and continue with the rest of the bug recipe:
  > 
  >   M-x vc-dir RET RET
  >   v
  >   Blargh RET C-c C-c
  > 

Thanks.  
The immediate cause of the problem is that 
(vc-git-registered "/tmp/zonk/")
returns nil.

vc-git-registered is called because vc-finish-log-entry does a
`vc-call'.  `vc-call' tries to find the corresponding VC backend. 

Now, the VC backend should be know known at point when the log entry is
started, so there should be no need for the vc-call, vc-call-backend
could be used...