我认为完整的答案应该是这样的:
- SVN 依赖于 HOME 路径来查找每个用户的设置(与大多数 unix 程序一样)。
- 在 cygwin 中,该变量具有类似“/home/pablo”的内容。
- "/home/pablo" 真的翻译成 "drive:\cygwin_dir\home\pablo"
- Emacs-nt 从 windows 环境中获取它的 HOME,因此它与 cygwin 的 HOME 不同
- emac 的 vc-svn 使用错误的路径来查找其设置。
所以有两种解决方案(也许更多):
- 让 emacs-nt 使用 cygwin 的 HOME(这就是 cygwin 化的意思!!:O),为此您需要 setup-cygwin,但特别需要一个依赖于 cygwin-mount 的脚本。所以emacs-nt可以理解cygwin的路径“风格”。
- (不推荐)反过来,这就是我所做的,使 cygwin 通过软 cygwin 链接使用窗口的 HOME。
ln -s /cygdrive/c/Users/pablo/Roaming/ /home/pablo
- 建立一个软链接,使 cygwin 的 subversion 目录指向 windows one
ln -s /cygdrive/c/users/pablo/AppData/Roaming/.subversion /home/pablo/.subversion
第二种解决方案将导致 cygwin 的“.bashrc”未执行。所以那里定义的环境变量和别名不会被定义。我仍然认为可以做到,但我没有调整该解决方案所需的适当 cygwin 知识。所以现在我正在使用解决方案 3。