2009-10-04 88 views
2

我目前試圖在Win7 64位上使用Magit和Emacs 23.1,但Magit不認識我的git倉庫。請記住我是一個完整的Emacs新手。Magit不認識git倉庫

我運行了magit-status命令,它詢問一個包含repo的目錄,我明顯輸入了該目錄,然後每次嘗試時都會提示:「e:/ path/to中沒有Git存儲庫/目錄「。當存在一個存儲庫時,創建一個?(y或n)」。

有沒有其他人遇到過這個?我讀過可能是因爲找不到實際的git.exe,我嘗試過用我的Path變量搞亂,但我沒有做的是讓Magit識別我的存儲庫。有任何想法嗎?

+0

我有完全相同的問題!奇怪的是,我幾個月沒有問題地使用它,然後用ELPA重新安裝它,現在它不再工作了。我會看看我能否找到一些東西。 – 2010-02-19 21:37:03

回答

4

magit運行以下命令查找.git目錄:

git rev-parse --git-dir 

我先試試,如果真的Emacs的你看到的二進制git。要做到這一點,請在emacs的git倉庫中打開任何文件。接下來做M-x: shell-command並在提示符中輸入上面的git命令:git rev-parse --git-dir

作爲輸出,你應該得到類似.git的東西。如果你得到'git' is not recognized as an internal or external command, ...,那麼你需要確保emacs/magit能夠找到git。您可以通過自定義magit-git-executableM-x: customize-variable)並將其指向絕對路徑或通過確保git目錄位於Windows PATH中(如果在安裝期間使用msysgit)來完成此操作。

希望這會有所幫助!

乾杯, 丹尼爾

+1

感謝您的幫助,git shell命令正常工作,它找到了正確的目錄,但仍然無法識別magit-status存在存儲庫!我只需要使用命令行methinks。 – KnackeredCoder 2009-10-05 17:46:51

1

發現了問題,它的magit逃生換外殼功能逃跑的Windows無法處理可執行文件。在檢查了我之前安裝的代碼之後,很明顯他們已經更改了代碼而不更改版本,不好的!這裏有一個補丁可以解決這個bug:

--- magit.el.orig  2010-02-19 16:48:43.671875000 -0500 
+++ magit.el 2010-02-19 16:49:30.078125000 -0500 
@@ -320,7 +320,9 @@ 
        prop val)) 

(defun magit-escape-for-shell (str) 
- (concat "'" (replace-regexp-in-string "'" "'\\''" str) "'")) 
+ (if (not (equal system-type 'windows-nt)) 
+  (concat "'" (replace-regexp-in-string "'" "'\\''" str) "'") 
+ str)) 

(defun magit-format-commit (commit format) 
    (magit-git-string "log --max-count=1 --pretty=format:%s %s" format commit)) 
+0

我檢查了他們的Gitorious存儲庫,它很乾淨,所以這是ELPA版本有這個問題。 – 2010-02-19 22:29:41