Netbeans javaHL svn+ssh连接错误,尽管我可以通过命令行进行连接



在Netbeans中执行SVN操作-8.0.2,但版本不相关-如"显示注释"或"搜索历史记录",使用内置客户端(如CLI、JavaHL或SvnKit),通过SVN+ssh连接到远程存储库,以及ssh隧道-在.ssh/config中配置-我从Netbeans收到连接错误,但在从终端执行SVN时不会。我使用的是OS X.

隧道在~/.ssh/config中设置正确,因为我可以通过终端在命令行上执行SVN操作,这些操作会进入远程存储库,例如签出、指责、日志,但当我试图在Netbeans中显示注释时,我会遇到连接失败。

我从Netbeans得到的错误是

org.apache.subversion.javahl.ClientException: E210002: There was a problem while connecting to [URL] on port 22

我尝试了Netbeans Subversion SSH常见问题解答中的一些建议,但它并没有完全解决我的问题。

也就是说,我尝试编辑~/.subversion/config,并将ssh = $SVN_SSH ssh的默认行更改为ssh = $SVN_SSH ssh -q,因为我连接的服务器返回了一个横幅,并重新启动了Netbeans,但我得到了同样的错误。

我找到了自己的答案。首先,在Netbeans首选项中,我将SVN客户端更改为CLI。这提供了比设置为SvnKit或JavaHL 更好的错误消息

您还可以在~/Library/Application Support/NetBeans/8.0/var/log/messages.log(在OS X上)上检查Netbeans错误消息

服务器横幅仍然显示在这条消息中,因为我有两个ssh跳到远程服务器(在我的.ssh/config中使用nc),所以查找man ssh_confg时,我发现了一个LogLevel QUIET参数,我将它添加到了隧道中涉及的主机中。

这从错误消息中删除了服务器横幅,但我仍然收到这个错误

/etc/profile.d/lang.sh: line 19: warning: setlocale: LC_CTYPE: cannot change locale (UTF-8): No such file or directory
svnserve: warning: cannot set LC_CTYPE locale
svnserve: warning: environment variable LC_CTYPE is UTF-8
svnserve: warning: please check that your locale name is correct

当我转到Terminal.app并运行locale时,我会得到LC_CTYPE="en_AU.UTF-8",但当我转到Netbeans中的终端窗口时,我得到LC_CTYPE="UTF-8",可能是因为在OSX上,应用程序需要设置自己的环境变量-shell不会公开它们。

在这种情况下,我可以用sudo vim /etc/ssh_config在自己的机器上编辑/etc/ssh_config,并注释掉下面的行(注释掉后显示)。

# Host *
#  SendEnv LANG LC_*

这解决了我的问题。我现在可以执行我通常会执行的所有svn功能,例如通过ssh隧道连接时显示注释和搜索历史记录。这适用于CLI,但不适用于SvnKit

最新更新