emacs守护进程和magit

时间:2015-09-05 13:35:51

标签: git emacs daemon magit

我一直在尝试将emacs作为服务器,并且遇到了magit的问题。我们有一个Gitlab服务器正在工作,当我尝试使用magit进行推送或拉动时,我遇到了密码问题。当我从命令行使用git时,这不会发生,更重要的是,如果我“直接”运行emacs(而不是使用守护进程运行emacsclient),则不会发生这种情况。 我应该提一下,我正在运行Ubuntu 15.04,而我正在使用emacs 25。

我想知道其他人是否遇到过这种行为?或者可以指点我的补救措施?谢谢你的关注!

3 个答案:

答案 0 :(得分:2)

现有答案中的建议使我找到了解决方案。我希望这会对遇到这个问题的其他人有所帮助。我使用systemd启动了emacs守护进程,结果发现我在emacsd.service文件中需要一个额外的指令:

[Service]
...
Environment=SSH_AUTH_SOCK=%t/keyring/ssh
...

所以,感谢领导 - 他们让我走上正确的轨道找到答案。

答案 1 :(得分:1)

这取决于用于上游repo url的协议。

通常,当ssh在$HOME/.ssh中找不到合适的私钥/公钥时,会询问密码。
当服务作为守护程序启动时,$HOME可能会有所不同,而不是由用户启动。

因此,如果ssh url访问上游GitLab存储库,则可以解释两次尝试之间的差异。

答案 2 :(得分:1)

至少可以说,你不是第一个遇到此问题的人。这就是FAQ中提到的原因,它将您带到Pushing with Magit from Windows

总结了各种选项并包含故障排除说明。但仍然不是每个人都能够弄明白(或者为我们提供足够准确的信息以便从远处进行诊断),因此核心贡献者编写了一个软件包,即使在配置不充分的系统上也可以使用。该页面上也提到了该包。