gpt4 book ai didi

python - 如何在pysvn中缓存用户名和密码

转载 作者:太空宇宙 更新时间:2023-11-03 19:36:31 25 4
gpt4 key购买 nike

这是我的代码

#!/usr/bin/python
# -*- coding:utf-8 -*-
import sys
import pysvn
def main():
client = pysvn.Client()
client.callback_get_login = lambda realm, username, may_save:(True, "myusername", "mypasswd", True)
print client.cat('http://svn.mydomain.com/file1.py')
print client.cat('http://svn.mydomain.com/file2.py')
return 0

if __name__ == "__main__":
sys.exit(main())

我注意到 pysvn 建立了两个 HTTP session ,但在每个 session 中,它首先尝试了一个不带“Authorization” header 的 OPTION 方法,在服务器响应 401 后,它发送了“Authorization” header 。

既然两个url在同一个域中,为什么pysvn不直接在后续 session 中发送用户名/密码?

我有这个问题是因为我怀疑太多的401导致我的svn服务器无法响应。 Eclipse 中的 svnkit 工作正常并自动发送“Authorization” header 。

编辑:致亚历克斯·马尔泰利:

try passing an explicit path to a known-to-be-writable config dir when you call Client.

试过了,不行

it may be that the serving is sending different realms for the two files

两个响应的领域是相同的。

看起来 pysvn 从 libsvn 调用“svn_client_cat2()”,并且即使对于相同的 url 和相同的领域,该函数也不会在调用之间缓存用户名/密码。所以我认为我不能对这个问题做更多的事情,向 libsvn 添加新接口(interface)并缓存用户名/密码以供将来的操作将花费太多时间来完成我的任务。不管怎样,谢谢!

最佳答案

看起来(错误假设第一)配置目录可能不可写 - 尝试在调用 Client 时将显式路径传递给已知可写的配置目录。

如果这没有帮助(错误假设二),则可能是服务正在为两个文件发送不同的领域(事实上,它是相同的域并不能阻止服务器这样做,尽管它会可能是服务器方面的特殊配置选择或配置错误...但是由于“401 太多”而失败的服务器无论如何都有一些特殊之处,所以它已经是一个嫌疑人;-)。

关于python - 如何在pysvn中缓存用户名和密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3325489/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com