[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#3807: 23.1.50; vc-dir ignores .gitignore
From: |
Dan Nicolaescu |
Subject: |
bug#3807: 23.1.50; vc-dir ignores .gitignore |
Date: |
Fri, 10 Jul 2009 12:29:55 -0700 (PDT) |
Helmut Eller <eller.helmut@gmail.com> writes:
> I use git to manage some files (.emacs, .bashrc etc.) in my home
> directory and hg for a project in a directory named ~/lisp/slime/.
> I have both, a ~/.git and a ~/lisp/slime/.hg directory
> and my ~/.gitignore contains a line with: lisp*
>
> However when I invoke C-x v d on ~/lisp/slime, a buffer
> pops up with the first (wrong) line: VC backend : Git
> and lists most of the files from the ~/lisp/slime directory
> as "unregistered". Obviously, I would prefer to use the hg backend
> for the ~/lisp/slime directory.
>
> On the other hand: if I open a file in ~/lisp/slime the modeline
> correctly displays hg and commands like C-x v l or C-x v = correctly
> use the hg backend.
What happens here is: vc-dir calls (vc-responsible-backend "~/lisp/slime"),
which calls (vc-git-responsible-p "~/lisp/slime")
and that returns t because all vc-git-responsible-p does is to see if
~/lisp/slime is dominated by a .git directory. And it is.
You can easily work around this by changing the order of git and hg in
vc-handled-backends in your .emacs, like this:
(setq vc-handled-backends '(RCS CVS SVN SCCS Bzr Hg Git Mtn Arch))
We could make `vc-git-responsible-p' (and all the other functions that
do the same) not return t in this case, but I doubt it's worth the added
extra complexity.
Stefan, what do you think?