2009-06-17 7 views
6

lorsque je tente de faire un git commit en mode emacs:Problème d'utilisation git et le mode Emacs sous Windows

 
git commit -a -m "message" 

Je reçois une erreur:

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

et en même temps cette le problème est absent dans le mode shell Emacs. Comment forcer eshell à fonctionner correctement avec git?

+1

Puis-je également suggérer Magit? http://zagadka.vm.bytemark.co.uk/magit/magit.html – baudtack

+0

Avoir la même erreur sur MacOS. Où puis-je ajouter le chemin pour que Eshell le voit? – Schpaencoder

Répondre

4

Cela semble être un problème avec les espaces dans le nom de répertoire du programme que vous voulez exécuter; cet espace semble ne pas être correctement échappé. Par exemple, si ce que vous voulez exécuter est "C: \ Program Files \ git \ git.exe commit ...", alors ce premier espace doit être échappé, ou le chemin complet entre guillemets, sinon cette ligne sera analysée dans les jetons "C: \ Program", "Files \ git \ git.exe", "...", le premier jeton étant la commande à exécuter.

Une première solution serait d'étendre le nom complet à la main et placer entre guillemets, par exemple:

"C:\Program Files\git\git.exe" commit ... 
+1

J'ai résolu le problème en réinstallant git dans c:/git, donc il n'y a pas d'espaces dans les chemins – Andreo

1

J'ai eu le problème même, et « résolu » en changeant PATH tel que git. exe (en c:\Program Files\Git\bin) vient avant git.cmd (en c:\program files\git\cmd, IIRC).

2

Je ne sais pas spécifiquement avec git et emacs, mais avec d'autres applications, il a travaillé pour moi de remplacer Program Files par Progra~1 dans votre PATH.

+0

l'erreur se produit quelque part dans git ou emacs.eshell, donc je ne peux pas gérer – Andreo

-2

Euh, eshell et git? Pourquoi? Utilisez simplement magit pour appeler git d'emacs; il est beaucoup plus riche que l'interface de ligne de commande.

+0

-1 L'interface de Magit ne supporte pas tout ce que fait l'interface de ligne de commande. Par exemple, il ne prend pas en charge les validations de signature PGP, ce qui en fait un problème pour moi. –

3

A eu un problème similaire, c'est pour magit, (sur MacOS). Ajoutez ce qui suit dans votre fichier de démarrage emacs:

(add-to-list 'exec-path "/usr/local/git/bin") 
(setq magit-git-executable "/usr/local/git/bin/git")