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

From: Dan Nicolaescu <[email-masked]>
Date: Wed, 16 Mar 2011 11:49:14 -0400

Glenn Morris <[email-masked]> writes:

> Lars Magne Ingebrigtsen wrote:
>
>> That would be the case if any of the other backends are as, er,
>> permissive as the SVN backend is.  Which I slightly doubt.
>
> Well, take a look:
>
> (defalias 'vc-svn-responsible-p 'vc-svn-root)
>
> (defun vc-svn-root (file)
>   (vc-find-root file vc-svn-admin-directory))

It seems that the root cause of this problem is that .svn changed from
being present in each directory to being present once per managed tree.

Maybe refining the test in vc-svn-responsible-p can solve the problem
before re-implementing the VC part that determines the backend:

 Completely untested:

(defun vc-svn-responsble-p (DIR)
   (let ((root (vc-svn-root DIR))
      ;; This assumes that vc-svn-root returns a directory name or nil
      (and root (file-exists-p (expand-file-name root "wc.db")))))

>
>
> (defalias 'vc-git-responsible-p 'vc-git-root)
>
> (defun vc-git-root (file)
>   (vc-find-root file ".git"))
>
>
> (defalias 'vc-hg-responsible-p 'vc-hg-root)
>
> (defun vc-hg-root (file)
>   (vc-find-root file ".hg"))
>
>
> etc.