Проблема использования Git и Emacs eshell mode в Windows - PullRequest
6 голосов
/ 17 июня 2009

когда я пытаюсь сделать git commit в режиме emacs eshell:

git commit -a -m "message"

Я получаю сообщение об ошибке:

'c:\Program' is not recognized as an internal or external command,
operable program or batch file.  

и в то же время эта проблема отсутствует в режиме оболочки emacs. Как заставить eshell корректно работать с git?

Ответы [ 5 ]

4 голосов
/ 08 апреля 2010

Была похожая проблема, это для magit , (на MacOS). Добавьте следующее в ваш файл запуска emacs:

(add-to-list 'exec-path "/usr/local/git/bin")
(setq magit-git-executable "/usr/local/git/bin/git")
4 голосов
/ 17 июня 2009

Это, похоже, проблема с пробелами в имени каталога программы, которую вы хотите выполнить; этот пробел, похоже, не избежал должным образом.

Например, если вы хотите выполнить «C: \ Program Files \ git \ git.exe commit ...», то этот первый пробел должен быть экранирован, или весь путь, заключенный в кавычки, в противном случае это строка будет проанализирована в токены "C: \ Program", "Files \ git \ git.exe", "...", первый токен - команда для выполнения.

Первый обходной путь - расширить полное имя от руки и заключить его в кавычки, например ::100100

"C:\Program Files\git\git.exe" commit ...
2 голосов
/ 17 июня 2009

Не знаю конкретно о git и emacs, но с другими приложениями мне удалось заменить Program Files на Progra~1 в вашем PATH.

1 голос
/ 17 июня 2009

У меня была та же самая проблема, и я «решил» ее, изменив PATH так, чтобы git.exe (в c:\Program Files\Git\bin) предшествовал git.cmd (в c:\program files\git\cmd, IIRC).

0 голосов
/ 17 июня 2009

Э-эшелл и мерзавец? Почему?

Просто используйте magit для вызова git из emacs; это намного богаче, чем интерфейс командной строки.

...