2010-04-12 16 views
5

Genel olarak Python ve PySVN için yeniyim ve SVN depomu pysvn kullanarak dışa aktarmaya çalışıyorum. çalışıyor, ancak şifre hatalı veya kullanıcı adı bilinmiyor ise, bu kod sadece otururPySVN ile giriş hataları nasıl yakalanır?

#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) 

: İşte benim kod. SVN tarafında bir kullanıcı giriş istemi ile sunulduğuna inanıyorum, ama callback_get_login ile neler olup bittiğini kontrol etmek için bir kayıp yaşıyorum. Herhangi bir yardım büyük takdir edilecektir.

cevap

1

SSH kullanıyor musunuz? Bu durumda, belki de giriş istemini sunan SSH'sidir ve PySVN bu konuda fazla bir şey yapamaz. Klavye interaktif istemlerini devre dışı bırakmak istemci tarafında SSH yapılandırma ile karıştırmasını deneyebilirsiniz:

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

+0

Aslında https üzerinden Unfuddle çağırıyor, bu yüzden ben ne yapabildiğim kadarıyla sınırlıyım. (Unfuddle'ın API'sinin bakmaya değer olup olmadığını merak etmeme rağmen ... hmm) – Geoff

+0

@ars Üzgünüz, bu sayfa mevcut değil. – umpirsky

4

kimlik bilgileri kimlik bilgileri hala tekrar arayacak yanlış ise yanlış pysvn, geri arama arayacak ise, ve yine, ve kimlik bilgileri doğru olana kadar bunu yapmaya devam edecektir.

Otomatikleştirilmiş bir komut dosyası için geri arama ayarını yapmamanız ve bunun yerine set_default_username ve pysvn.Client örneğinde set_default_password komutunu arayarak varsayılan kullanıcı adı ve parola ayarlamayı daha iyi yapabilirsiniz.

Bu kurulumda yanlış kimlik bilgileri pysvn'in bir istisnayı yaymasına neden olacak ve bu da yakalayabileceğiniz ve anlamlı bir hata mesajına dönüşebileceğiniz geri bildirimi ayarladığınızı gösterir.

+1

Pysvn hakkında kesinlikle nefret ediyorum. Girişin başarısız olduğu gerçeğinin tespiti için herhangi bir yol sağlamaz. En azından bazı durum değişkenlerini ayarlayabilmeniz için örnekte geçiş yapmaz. – spuriousdata

+0

Set_default_username ve set_default_password öğesini ayarlayıp callback_get_login öğesini kaldırdığımda "callback_get_login gerekli" hatası alıyorum. Herhangi bir fikir? – umpirsky

+0

Ayrıca interaktif bayrağını [set_interactive] (http://pysvn.tigris.org/docs/pysvn_prog_ref.html#pysvn_client_set_interactive) ile False olarak ayarlayarak çalışıyorum. Set_default_username ve set_default_password'a verilen geçerli verilerle birlikte, istemci istemsiz çalışır. –

İlgili konular