5

一般来说,我是 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 发生了什么。任何帮助将不胜感激。

4

2 回答 2

4

如果凭据错误,pysvn 将调用回调,如果凭据仍然错误,它将再次调用它,并且会一直这样做,直到凭据正确为止。

对于自动化脚本,您最好不要设置回调,而是通过在 pysvn.Client 实例上调用 set_default_username 和 set_default_password 来设置默认用户名和密码。

使用该设置不正确的凭据将导致 pysvn 传播异常,建议您设置可以捕获的回调并将其转换为有意义的错误消息。

于 2010-10-07T03:10:36.690 回答
1

你在使用 SSH 吗?在这种情况下,可能是 SSH 呈现登录提示,而 PySVN 对此无能为力。您可以尝试在客户端弄乱 SSH 配置以禁用键盘交互提示:

http://www.ssh.com/support/documentation/online/ssh/adminguide/32/Configuring_the_Server_and_Client.html

于 2010-04-13T05:10:02.200 回答