【问题标题】:svn hangs on checkout in Windowssvn 在 Windows 结帐时挂起
【发布时间】:2023-04-10 03:44:01
【问题描述】:

尝试使用 svn checkout svn+ssh://USER@REPO . 检出存储库

在调用plink.exe 时,我已将%SVN_SSH% 变量设置为包含-v 标志,我得到的最后一个日志是Using username "USER".,之后命令行无限期挂起。

我在尝试使用 TortoiseSVN 和 Intellij 中的 Subversion 集成检查存储库时遇到了类似的问题。

我使用 PuTTY 连接到服务器或直接在命令行中调用 plink 没有问题。使用带有plink-v 标志,我会在使用svn checkout 挂起的行之后立即提示我输入密码。

我有 Windows 7 Ultimate SP 1,svn 版本 1.8.13,plink 版本 0.60。

【问题讨论】:

    标签: windows svn ssh


    【解决方案1】:

    问题似乎是您必须使用 SVN 的公钥身份验证才能在 Windows 中正确使用 SSH。

    网上有一些关于如何做到这一点的教程,但对我有用的是this one

    我在其他教程中没有发现的重要区别是使用chmod 命令更改对服务器上公钥文件的访问权限。

    【讨论】:

    • 这里一样,无法使用常规密码,而使用密钥确实有效。
    【解决方案2】:

    现在说可能为时已晚,但我遇到了类似的问题。 在我的情况下,问题出在plink.exe 的命令行中。

    要正确解决所有问题并且不要输入无限的登录名和密码:

    1. 使用pageant.exe添加ppk密钥,避免手动输入密码。
    2. 使用SVN_SSH环境变量和-l "<username>"参数来避免手动输入用户名,避免在svn存储库url中使用用户名。
    3. SVN_SSH 环境变量与-batch 参数一起使用,以避免在脚本模式下挂起。

    生成的SVN_SSH 环境变量应如下所示:

    SVN_SSH="<path-to-plink>/plink.exe" -batch -l "<USER>"

    警告SVN_SSH 变量路径中的反斜杠字符是转义字符,您必须使用双精度来自行转义它或将其替换为正斜杠 - /

    但要小心git svn 命令,因为SVN_SSH 变量可以用消息破坏git:

    Can't create session: Unable to connect to a repository at URL 'svn+ssh://...': Error in child process: exec of '' failed: No such file or directory at .../Git/mingw64/share/perl5/Git/SVN.pm line 310.

    在这种情况下,您必须改用msyscygwin 工具中的ssh-pageant

    我已经创建了另一个帖子,详细描述了如何为 svn.exegit.exe 逐步执行此操作:How to use git-svn with svn+ssh url

    【讨论】:

      猜你喜欢
      • 2013-08-27
      • 1970-01-01
      • 1970-01-01
      • 2015-08-15
      • 1970-01-01
      • 1970-01-01
      • 2023-03-10
      • 1970-01-01
      • 2020-12-19
      相关资源
      最近更新 更多