فهرست منبع

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 16 سال پیش
والد
کامیت
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)