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

From: Dan Nicolaescu <[email-masked]>
Date: Tue, 13 Oct 2009 16:22:25 -0700 (PDT)

Juri Linkov <[email-masked]> writes:

  > >   > >   > > 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?).

Nothing else uses (vc-backend DIRECTORY), so it's never been made
reliable.

  > 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.

There isn't any at the moment.