如何检查一个svn命令是否需要验证

是否有任何可能的方法来检查SVN更新是否需要身份验证?

场景:我已经编写了一个ruby GUI应用程序,它以预定方式更新SVN存储库(从静态路径)。 这作为一个Windows服务来执行。 还有tortoisesvn安装。

在我执行的时候是红宝石

svn update local_path_to_repository --username user --password password在我的脚本中,然后它工作正常,因为我通过更新命令的用户名和密码。

但是,tortoisesvn在我第一次签出仓库时会保存密码(通过缓存密码,使用标准的Windows加密服务来加密磁盘上的密码),所以我不一定每次都需要传递用户名和密码。 因此我只在脚本中有svn update local_path_to_repository

问题:这工作正常,直到我更改我的LDAP密码。 一旦我的LDAP密码被更改,所有的存储库都无法更新,因为它正在请求新的密码,但没有用于传递新密码的用户界面。

我只需要在svn更新需要这些凭据时创建用户名和密码UI,但并非总是如此。 我如何实现这一目标?

更新:从SVN书中读取。 我明白:

  • 客户端检查用户是否将任何凭证指定为命令行选项(--username和/或--password)。 如果没有,或者这些选项未能成功认证,那么
  • 客户端在运行时认证/区域中查找服务器的主机名,端口和领域,以查看用户是否已经缓存了适当的凭证。 如果不是,或者如果缓存的凭证无法验证,那么
  • 最后,客户端会提示用户(除非通过--non-interactive选项或其特定于客户端的对等方指示不要这样做)。
  • 但我没有找到一种方法来检查是否需要验证。

    谁能帮帮我吗!


    所以我终于找到了一份工作:

    output = `svn update "#{repo_path}" --non-interactive 2>&1`
    check_authentication = output.include?("Authentication failed")
    

    如果check_authentication返回true意味着认证失败,那么我建立用于输入新密码并将其发送给用户的GUI。

    链接地址: http://www.djcxy.com/p/24475.html

    上一篇: How to check if a svn command needs authentication

    下一篇: How to get cookies from WKWebView?