浏览代码

Skip git-version determination if git command fails

This removes errors generated on a windows system where msysGit is
installed in git bash only and not available from cmd.exe in the
user's PATH.
Bernt Hansen 15 年之前
父节点
当前提交
38f3009927
共有 1 个文件被更改,包括 14 次插入13 次删除
  1. 14 13
      lisp/org.el

+ 14 - 13
lisp/org.el

@@ -106,21 +106,22 @@ With prefix arg HERE, insert it at point."
 	 (git-version)
 	 (dir (concat (file-name-directory (locate-library "org")) "../" ))
 	 (version))
-    (if (file-exists-p (expand-file-name ".git" dir))
+    (if (and (file-exists-p (expand-file-name ".git" dir))
+	     (executable-find "git"))
 	(let ((pwd (substring (pwd) 10)))
 	  (cd dir)
-	  (shell-command "git describe --abbrev=4 HEAD")
-	  (save-excursion
-	    (set-buffer "*Shell Command Output*")
-	    (goto-char (point-min))
-	    (re-search-forward "[^\n]+")
-	    (setq git-version (match-string 0))
-	    (subst-char-in-string ?- ?. git-version t)
-	    (shell-command "git diff-index --name-only HEAD --")
-	    (unless (eql 1 (point-max))
-	      (setq git-version (concat git-version ".dirty")))
-	    (setq org-version (concat org-version " (" git-version ")")))
-	  (cd pwd)))
+	  (if (eql 0 (shell-command "git describe --abbrev=4 HEAD"))
+	      (save-excursion
+		(set-buffer "*Shell Command Output*")
+		(goto-char (point-min))
+		(re-search-forward "[^\n]+")
+		(setq git-version (match-string 0))
+		(subst-char-in-string ?- ?. git-version t)
+		(shell-command "git diff-index --name-only HEAD --")
+		(unless (eql 1 (point-max))
+		  (setq git-version (concat git-version ".dirty")))
+		(setq org-version (concat org-version " (" git-version ")")))
+	    (cd pwd))))
     (setq version (format "Org-mode version %s" org-version))
     (if here (insert version))
     (message version)