여기 내 코드가 pysvn에서 사용자 이름과 passwd를 캐시하는 방법
#!/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 세션을 설립 것으로 나타났습니다하지만, 각 세션에서, 그것은 먼저 "인증"헤더없이 OPTION 방법을 시도, 서버 응답 401 후에 "Authorization"헤더를 보냈습니다.
두 개의 URL이 동일한 도메인에 있으므로 왜 pysvn이 하위 세션에서 직접 username/passwd를 보내지 않으십니까?
너무 많은 401이 내 svn 서버를 응답하지 못하게 만들었 기 때문에이 질문이 있습니다. 그리고 일식에서 svnkit 잘 작동하고 자동으로 "인증"헤더를 보냅니다.
편집 : 알렉스 마르 텔리에 :
는알려진 - - 수 - 쓰기로 설정 해줄 당신이 호출 할 때 클라이언트에 명시 적 경로를 전달하려고합니다.
그것이 서빙 두 파일
두 응답의 영역이 동일한 서로 다른 영역을 보내는 것일 수있다되지 시도.
pysvn이 libsvn에서 "svn_client_cat2()"를 호출 한 것처럼 보입니다.이 함수는 동일한 URL과 동일한 영역에 대해서도 username/passwd를 캐시하지 않습니다. 그래서 더 이상이 문제를 해결할 수 없다고 생각합니다. libsvn에 새로운 인터페이스를 추가하고 username/passwd를 캐시하면 향후 작업에 많은 시간이 걸릴 것입니다. 어쨌든 고마워!