Subject: Re: bug#4677: allow VC operations from dired

From: Juri Linkov <[email-masked]>
Date: Wed, 14 Oct 2009 01:38:47 +0300

>   > >   > > This patch allows VC operations to be run from dired.
>   > >   > > State changing VC operations are not supported.
>   > >   > > (only the various variations of log and diff)
>   > >   >
>   > >   > Thanks, it works right except in one case: when called outside of
>   > >   > a repository controlled directory, it traverses all subdirectories
>   > >   > trying to find a repository (I think traversing subdirectories
>   > >   > makes no sense in this case) and later fails with:
>   > >   >
>   > >   >   Wrong type argument: stringp, nil
>   > >
>   > > Thanks.  Here's an updated patch.
>   >
>   > Hmm, now it fails with "Directory not under VC" in all directories
>   > even under version control since (vc-backend default-directory)
>   > always returns nil.
>
> Hmm, I should  have said "not really tested".
> I guess the first version will have to do then.

I see that (vc-backend default-directory) works for directories in CVS,
but always returns nil for git (is it because git is file-oriented?).

OTOH, (vc-call-backend 'git 'root default-directory) works for git,
but (vc-call-backend 'cvs 'root default-directory) fails with

  "Sorry, root is not implemented for cvs"

I can't find a generic function that would work for directories
in all backends.

-- 
Juri Linkov
http://www.jurta.org/emacs/