From: Junio C Hamano Date: Sun, 25 Nov 2012 06:22:32 GMT Subject: Re: [PATCH] emacs: make 'git-status' work with separate git dirs Message-ID: <7v4nkeyzfb.fsf@alter.siamese.dyndns.org> In-Reply-To: <1353599934-23222-1-git-send-email-enrico.scholz@sigma-chemnitz.de> Enrico Scholz writes: > when trying 'M-x git-status' in a submodule created with recent (1.7.5+) > git, the command fails with > > | ... is not a git working tree > > This is caused by creating submodules with '--separate-git-dir' but > still checking for a working tree by testing for a '.git' directory. > > The patch fixes this by relaxing the existing detection a little bit. > > Signed-off-by: Enrico Scholz > --- This script already relies on the assumption that nobody sane would create a directory named ".git" that is not a git repository, and this loosens the assumption that nobody would create a file named ".git", either. So I would think it is a sane thing to do, but just in case if the area expert has better ideas, I am forwarding it. Ack? > contrib/emacs/git.el | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/contrib/emacs/git.el b/contrib/emacs/git.el > index 65c95d9..5ffc506 100644 > --- a/contrib/emacs/git.el > +++ b/contrib/emacs/git.el > @@ -1671,7 +1671,7 @@ Commands: > "Entry point into git-status mode." > (interactive "DSelect directory: ") > (setq dir (git-get-top-dir dir)) > - (if (file-directory-p (concat (file-name-as-directory dir) ".git")) > + (if (file-exists-p (concat (file-name-as-directory dir) ".git")) > (let ((buffer (or (and git-reuse-status-buffer (git-find-status-buffer dir)) > (create-file-buffer (expand-file-name "*git-status*" dir))))) > (switch-to-buffer buffer)