Subject: bug#8179: 24.0.50; vc thinks that SVN takes care of all my files

From: Glenn Morris <[email-masked]>
Date: Tue, 15 Mar 2011 14:41:37 -0400

Lars Magne Ingebrigtsen wrote:

> Are all these VCs really that, er, difficult to determine whether they
> are in effect or not?  I thought they all pretty much used a .git (or
> the like) in the current directory, but that's obviously wrong...

We're only talking about unregistered files, right?
For registered files, it should get it correct every time.

For unregistered files, IIUC it effectively does:

(for backend in BACKENDS ...
  (for directory in PWD PARENTS ... )

rather than:

(for directory in PWD PARENTS ... )
  (for backend in BACKENDS ... )

I agree that the second method does seem more sensible on the face of
it, but the former is the documented way it works.

It may to some extent be an artifact of the basic design dating from the
days when you had eg a CVS directory in every directory. The "modern"
VCS have eg a single .bzr in the parent directory, not one in every
subdir as well.

Well, actually I think the doc is misleading too:

"Registering a File for Version Control"

   If the file's directory already contains files registered in a
   version control system, Emacs uses that system. If there is more than
   one system in use for a directory, Emacs uses the one that appears
   first in @code{vc-handled-backends}.

I don't think the first sentence is correct.

Anyway, I think investigating if it can be made to work the other way
would be a worthwhile experiment.