如何检查一个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书中读取。 我明白:
--non-interactive
选项或其特定于客户端的对等方指示不要这样做)。 但我没有找到一种方法来检查是否需要验证。
谁能帮帮我吗!
所以我终于找到了一份工作:
output = `svn update "#{repo_path}" --non-interactive 2>&1`
check_authentication = output.include?("Authentication failed")
如果check_authentication
返回true
意味着认证失败,那么我建立用于输入新密码并将其发送给用户的GUI。