从emacs运行svn版本控制身份验证时失败



我在桌面上使用的是配置为使用cygwin-bash的本机windows emacs 24.2。

当我从cygwin-bash运行SVN时,一切都很好。它会记住我的授权凭据并连接到存储库。但是,当我尝试从emacs中运行任何版本控制命令时,我总是会收到以下消息:

svn:E170001:无法连接到URL处的存储库'https://address.to.repo'svn:E170001:选项'https://address.to.repo':授权失败:无法向服务器进行身份验证:拒绝基本质询

我还尝试连接PSVN接口,结果也显示了相同的错误消息。奇怪的是,它与cygwin终端和emacs的工作方式不同。如有任何帮助,我们将不胜感激。

现在已解决。问题是Emacs NT cygwin集成仍然使用windows HOME路径,而不是使用cygwinized HOME目录。

我认为完整的答案应该是这样的:

  1. SVN依赖于HOME路径来查找其每个用户的设置(就像大多数unix程序一样)
  2. 在cygwin中,variable有类似"/home/pablo"的含义
  3. "/home/pablo"实际翻译为"drive:\cygwin_dir\home\pablo">
  4. Emacs nt从windows环境中获取其HOME,因此它与cygwin的HOME不同
  5. emac的vc-svn使用错误的路径来查找其设置

所以有两种解决方案(可能更多):

  1. 让emacs-nt使用cygwin的HOME(所以这就是cygwinization的意思!!:O),您需要为此设置cygwin,但特别需要一个脚本,它取决于cygwin装载。因此emacs-nt可以理解cygwin的路径"风格">
  2. (不推荐)另一种方式,也就是我所做的,让cygwin通过一个软的cygwin链接使用窗口的HOME。ln -s /cygdrive/c/Users/pablo/Roaming/ /home/pablo
  3. 制作一个软链接,使cygwin的subversion目录指向windows oneln -s /cygdrive/c/users/pablo/AppData/Roaming/.subversion /home/pablo/.subversion

第二个解决方案将导致cygwin的".bashrc"未执行。所以在那里定义的环境变量和别名不会被定义。我仍然认为这是可以做到的,但我没有调整该解决方案所需的适当的cygwin知识。现在我使用的是3号解决方案。

相关内容

最新更新