如何从命令行使用带有Tortoise SVN的svn + ssh

时间:2013-04-25 11:59:20

标签: windows shell svn command-line tortoisesvn

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

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

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

  • 将TortoiseSvn的网络设置修改为指向.. \ TortoisePlink.exe
  • 成功建立了与目标计算机的ssh连接,没有任何问题
  • 使用OpenSsh
  • 成功检出了运行Ubuntu的工作站的回购

当我尝试从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.

有趣的是,如果我使用乌龟gui浏览回购,我可以成功打开并查看回购。但我需要从命令行执行此操作以进行脚本编写。

有什么建议吗?

5 个答案:

答案 0 :(得分:36)

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

尝试使用plink的绝对路径设置%SVN_SSH%,同时转义反斜杠,例如C:\\Program Files\\TortoiseSVN\\bin\\TortoisePlink.exe而不是..\TortoisePlink.exe

答案 1 :(得分:3)

  • 手动使用Plink连接到服务器。为plink
  • 定义所需的和正确的(适合您)启动选项
  • 将此行(使用tortoiseplink作为无窗口链接)添加到%APPDATA%config文件[tunnels]部分

答案 2 :(得分: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” 将无法正常工作

答案 3 :(得分:0)

在您的Tortoise SVN配置中检查TortoisePlink的路径是否未损坏...

  1. 开始>程序文件> Tortoise SVN>设置
  2. 在“常规设置”下的“ Subversion配置文件:”中,单击“编辑”
  3. 这将在记事本中打开配置文件
  4. 向下滚动到[tunnels]部分,并检查ssh的值,该值应不加注释,使用双斜杠等-我遇到了问题,因为在开始时似乎有Unicode控制代码路径。
### On Windows, if you are specifying a full path to a command,
### use a forward slash (/) or a paired backslash (\\) as the
### path separator.  A single backslash will be treated as an
### escape for the following character. 
ssh = C\:\\Program Files\\TortoiseSVN\\bin\\TortoisePlink.exe

答案 4 :(得分:0)

我遇到了类似但略有不同的问题。

我尝试通过Pycharm连接到我们的SSH + SVN服务器,并且挂起了。尝试通过Windows鼠标右键单击常规方法tortoiseSVN,并遇到相同的“无法创建隧道”问题。

我认为这个问题是由我创建的,因为我试图通过pycharm连接到我的存储库,而pycharm会在SVN配置文件中自动创建一条隧道行。

我遵循了凯文·萨德勒的回答,但只是注释掉了ssh线,并且它恢复了正常。检出和提交再次起作用。

凯文的答案:

检查Tortoise SVN配置中TortoisePlink的路径是否未损坏...

  1. 开始>程序文件> Tortoise SVN>设置
  2. 在“常规设置”下,“ Subversion配置文件:”单击“编辑”
  3. 这将在记事本中打开配置文件
  4. 向下滚动到[tunnels]部分。注释掉SSH行。
相关问题