Netbeans javaHL svn+ssh 连接错误虽然我可以通过命令行连接

Netbeans javaHL svn+ssh connection error although I can connect via the command line

在 Netbeans - 8.0.2 中执行 SVN 操作,但版本不相关 - 例如 'Show annotations' 或 'Search History',使用内置客户端,例如 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 FAQ 的一些建议,但并没有完全解决我的问题。

即我尝试编辑 ~/.subversion/config 并将 ssh = $SVN_SSH ssh 的默认行更改为 ssh = $SVN_SSH ssh -q,因为我连接到 returns 横幅的服务器,然后重新启动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 中的终端 window 时,我得到 LC_CTYPE="UTF-8" 大概是因为在 OS X 应用程序需要设置自己的环境变量 - shell 不会公开它们。

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

# Host *
#  SendEnv LANG LC_*

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