我一直试图让Windows 7 x86上的emacs shell(版本24)内的git工作。 (*)罪魁祸首实际上是ssh,这是行不通的。例如,输入:“Github for Windows”中有什么魔法让它在emacs中工作?
ssh -T [email protected]
将永远挂,无论在Emacs的shell类型(Emacs的外壳(又名ESHELL)或MSYS的bash)。在emacs之外,它工作得很好(在bash或cmd.exe中)。
请注意-T
参数,它表示“不分配伪tty”(emacs不能分配伪tty,至少在Windows上不分配)。所以这不是问题。
我使用ssh.exe无论从MSYS(不MSYS-GIT)或 “混帐的Windows” 尝试。谨防! “Git for Windows”与“Github for Windows”不同。 “Git for Windows”是通过在msys-git(专为此目的而存在的开发环境)下构建git而获得的二进制文件和支持实用程序的安装程序。出于这个原因,它的“Git for Windows”经常被错误地称为msys-git。
输入“Github for Windows”。使用他们的git/ssh版本,我可以在emacs shell下使用git和ssh。据我所知,该程序简单地在封装下使用“Git for Windows”。不过,这是一个修改版本。例如,添加了一个etc/ssh/ssh_config
文件。
我已经确定了一些etc/ssh/ssh_config
配置的是原始的ssh来在Emacs工作。然而,这并不能解释它为什么会起作用,因为在“Git for Windows”中使用这个配置文件并不能解决问题。
所以想什么,我知道什么是GitHub的团队,以“混帐的Windows”进行其它更改为它在Emacs工作。
我甚至不能确定,“在Emacs的工作”是一个预期的目标。这就是为什么这个问题的答案很重要:如果未来版本的“Github for Windows”打破了emacs-compatibility,我将无法再使用emacs shell中的git。
(*)是的,我知道所有关于VC-混帐,magit,流浪汉,等我不感兴趣。
我确实在后台运行ssh-agent。所以github的windows必须在启动时考虑到这一点。 – Norswap 2012-08-04 09:12:53