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 に答える