20

我在使用 TortoiseSvn 的 Windows 7 工作站上尝试使用以下语法检查 repo 时遇到问题:

svn co svn+ssh://user@ip/repo .

我为测试此问题所做的工作:

  • 修改 TortoiseSvn 的网络设置指向 ..\TortoisePlink.exe
  • 成功建立到目标机器的 ssh 连接,没有任何问题
  • 使用 OpenSsh 从运行 Ubuntu 的工作站成功签出 repos

当我尝试从 Windows 7 工作站上的命令行执行上述语法时,出现错误:

svn: E720087: Unable to connect to a repository at URL 'svn+ssh:///user@ip/repo'
svn: E720087: Can't create tunnel:The parameter is incorrect.

有趣的是,如果我使用 tortoise gui 浏览到 repo,我可以成功打开并查看 repo。但出于脚本目的,我需要从命令行执行此操作。

有什么建议么?

4

5 回答 5

44

要使 svn+ssh 与 Tortoise 一起使用,请确保%SVN_SSH%设置为您的 ssh 客户端(可能是 Tortoise 或 Putty 中的 plink.exe),并且路径必须使用正斜杠/或转义的反斜杠编写\\

尝试%SVN_SSH%在转义反斜杠时设置 plink 的绝对路径,类似于C:\\Program Files\\TortoiseSVN\\bin\\TortoisePlink.exe而不是..\TortoisePlink.exe

于 2013-04-25T12:10:53.927 回答
3
  • 使用 Plink 手动连接到服务器。定义 plink 所需和正确的(为您)启动选项
  • 将此行(使用 tortoiseplink 作为 windowless-plink)添加到%APPDATA%config文件中,[tunnels]部分
于 2013-04-25T20:07:56.563 回答
3

检查 TortoisePlink 的路径在你的 Tortoise SVN 配置中没有损坏...

  1. 开始 > 程序文件 > Tortoise SVN > 设置
  2. 在常规设置下,“Subversion 配置文件:”单击“编辑”
  3. 这将在记事本中打开配置文件
  4. 向下滚动到该[tunnels]部分并检查ssh应该取消注释的值,使用双斜杠等 - 我遇到了问题,因为路径的开头似乎有一个 Unicode 控制代码。
### 在 Windows 上,如果要指定命令的完整路径,
### 使用正斜杠 (/) 或成对的反斜杠 (\\) 作为
### 路径分隔符。单个反斜杠将被视为
### 为以下字符转义。
ssh = C\:\\Program Files\\TortoiseSVN\\bin\\TortoisePlink.exe
于 2018-10-11T20:46:10.993 回答
1

事实证明,配置文件的 Tunnels 部分中的行是区分大小写的。

例如: sh = $SVN_SSH "C:/path/putty/plink.exe" -2 -C -i "C:/path/username/serversvn.ppk" 可能有效

sh = $SVN_SSH "C:/path/PuTTY/plink.exe" -2 -C -i "C:/path/username/serversvn.ppk" 不起作用

于 2013-07-08T22:03:43.030 回答
0

我有一个类似但略有不同的问题。

我尝试通过 Pycharm 连接到我们的 SSH+SVN 服务器,但它挂了。通过Windows右键单击,tortoiseSVN尝试了常规方式并得到了同样的“无法创建隧道”问题。

我相信这个问题是因为我试图通过 pycharm 连接到我的 repo,它自动在 tortoise SVN 配置文件中创建了一条隧道线。

我按照凯文萨德勒的回答,但只是注释掉了 ssh 行,它就恢复了正常。签出和提交又开始工作了。

凯文的回答:

检查 TortoisePlink 的路径在你的 Tortoise SVN 配置中没有损坏...

  1. 开始 > 程序文件 > Tortoise SVN > 设置
  2. 在常规设置下,“Subversion 配置文件:”单击“编辑”
  3. 这将在记事本中打开配置文件
  4. 向下滚动到 [隧道] 部分。注释掉 SSH 行。
于 2020-01-10T18:12:24.287 回答