我是Python和PySVN的新手,我正在尝试使用pysvn导出我的SVN存储库。这是我的代码:
#set up svn login data
def svn_credentials (realm, username, may_save):
return True, svn_login_name, svn_login_password, False
#establish connection
svn_client = pysvn.Client ()
svn_client.callback_get_login = svn_credentials
#export data
svn_client.export('server-path-goes-here', 'client-path-goes-here', force=True)
哪个工作正常,但如果密码错误或用户名未知,则此代码就可以了。我相信它会在SVN端出现用户登录提示,但我不知道如何检查callback_get_login发生了什么。任何帮助将不胜感激。
答案 0 :(得分:4)
如果凭据错误,pysvn将调用回调,如果凭据仍然错误,它将再次调用它,并且它将继续这样做,直到凭据正确。
对于自动脚本,最好不要设置回调,而是通过在pysvn.Client实例上调用set_default_username和set_default_password来设置默认用户名和密码。
使用该设置不正确的凭据将导致pysvn传播异常,建议您设置可以捕获的回调并转换为有意义的错误消息。
答案 1 :(得分:1)
您使用的是SSH吗?在这种情况下,也许是SSH呈现登录提示,而PySVN对此无能为力。您可以尝试弄乱客户端的SSH配置以禁用键盘交互提示: