【问题标题】:svn version control authentication fails when run from emacs从 emacs 运行时,svn 版本控制身份验证失败
【发布时间】:2012-12-03 09:24:15
【问题描述】:

我在我的桌面上使用native windows emacs 24.2 configured to use cygwin bash

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

svn: E170001: 无法连接到 URL 上的存储库 'https://address.to.repo' svn: E170001: 选项 'https://address.to.repo':授权失败:不能 向服务器验证:拒绝基本挑战

我也尝试连接 PSVN 接口,但最终也出现相同的错误消息。奇怪的是,它与 cygwin 终端和 emacs 的工作方式不同。对此的任何帮助将不胜感激。

【问题讨论】:

  • 明确指定 --password--username 是否有效?清除身份验证缓存也很有意义:svnbook.red-bean.com/en/1.7/…
  • 我清除了授权缓存。 Ecplictly 指定的密码和用户在 cygwin tty 中工作,但在 emacs 中没有任何改进。

标签: windows svn emacs cygwin basic-authentication


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    1. SVN 依赖于 HOME 路径来查找每个用户的设置(与大多数 unix 程序一样)。
    2. 在 cygwin 中,该变量具有类似于“/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(这就是cygwin 化的意思!!:O),为此您需要setup-cygwin,但特别需要一个依赖于cygwin-mount 的脚本。所以emacs-nt可以理解cygwin的路径“风格”。
    2. (不推荐)反过来,这就是我所做的,让 cygwin 通过软 cygwin 链接使用窗口的 HOME。 ln -s /cygdrive/c/Users/pablo/Roaming/ /home/pablo
    3. 建立一个软链接,以便 cygwin 的 subversion 目录指向 windows one ln -s /cygdrive/c/users/pablo/AppData/Roaming/.subversion /home/pablo/.subversion

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-08-07
      • 1970-01-01
      • 2016-04-09
      • 2018-11-02
      • 1970-01-01
      • 1970-01-01
      • 2013-01-02
      • 2014-01-24
      相关资源
      最近更新 更多