Re: [PATCH] emacs: make 'git-status' work with separate git dirs
From: Junio C Hamano <hidden>
Date: 2016-06-15 22:55:24
Enrico Scholz [off-list ref] 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 <redacted> ---
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?
quoted hunk
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)