有时候 ssh 的端口不是 22,虽然这种情况很少,但还是遇到了。
svn co svn+ssh://liuwei@[host]:[port]/svn/liuwei/hello/trunk hello
svn: E170013: Unable to connect to a repository at URL 'svn+ssh://liuwei@[host]:[port]/svn/liuwei/hello/trunk'
svn: E210002: 为了更好的诊断 SSH 连接问题,请从你的 Subversion 配置文件中,[tunnels] 节,删除 ssh 命令行参数 -q 。
svn: E210002: 网络连接意外关闭
按提示理解,subversion 有一个配置文件,可以调整 ssh 命令参数。利用这个配置,在参数中加上端口号。
ssh = ssh -p [port]
然后,将 url 中的端口号去掉,
svn co svn+ssh://liuwei@[host]/svn/liuwei/hello/trunk hello
可以了。
处于好奇,想实时如果这时候 url 中还有端口号会怎样,还是报错了。
svn co svn+ssh://liuwei@[host]:[port]/svn/liuwei/hello/trunk hello
ssh: Could not resolve [host]:[port]: Temporary failure in name resolution
svn: E170013: Unable to connect to a repository at URL 'svn+ssh://liuwei@[host]:[port]/svn/liuwei/hello/trunk'
svn: E210002: 为了更好的诊断 SSH 连接问题,请从你的 Subversion 配置文件中,[tunnels] 节,删除 ssh 命令行参数 -q 。
svn: E210002: 网络连接意外关闭
所以,必须去掉 url 中的端口号。
感觉这是 subversion 的一个 bug。