
    q&f                         d dl Zd dlZd dlZej                  j
                  Zej                  j                  Zej                  j                          da	d Z
 G d de      Z G d d      Zy)    Nc                 V   ddl }|j                  j                  |       |j                  j                  |       |j                  j	                  |       |j                  j                  |       |j                  j                  |       g}t        |j                  dd      }|r-dD ]'  }dD ]   } ||||       }|s|j                  |       " ) n@t        |j                  d      r*|j                  |j                  j                  |              |j                  j                  ||       S )z)Create a Subversion authentication baton.r   N'svn_auth_get_platform_specific_provider)s   gnome_keyrings   keychains   kwallets   windows)s   simples   ssl_client_cert_pws   ssl_server_trustget_windows_simple_provider)
svn.clientclientget_simple_providerget_username_provider!get_ssl_client_cert_file_provider$get_ssl_client_cert_pw_file_provider"get_ssl_server_trust_file_providergetattrcoreappendhasattrr   svn_auth_open)poolsvn	providersgetprovidernametypeps          9/usr/lib/python3/dist-packages/hgext/convert/transport.py_create_auth_batonr   &   s   
 	

&&t,

((.

44T:

77=

55d;I ;TK K 	(DO (dD1$$Q'(	( 3::<=SZZCCDIJ88!!)T22    c                       e Zd Zy)NotBranchErrorN)__name__
__module____qualname__ r   r   r   r   E   s    r   r   c                   2    e Zd ZdZddZ G d d      Zd Zy)SvnRaTransportz;
    Open an ra connection to a Subversion repository.
    Nc                    t               | _        || _        d| _        d| _        |t        t        j                  d      st        j                  j                  | j                        | _        t        | j                        }|| j                  _        t        t        j                  j                  d       at        | j                  _        	 t        j                  j!                  | j                  | j                  | j                        | _        y || _        t        j                  j/                  | j                  | j                  j1                  d             y # t"        $ ro}|j$                  \  }}|t        j                  j&                  t        j                  j(                  t        j                  j*                  fv rt-        |       d }~ww xY w)Nr   reparentutf8)Poolr   svn_urlusernamepasswordr   r   rar   create_contextr   
auth_baton
svn_configr   svn_config_get_configconfigopen_ra_sessionSubversionExceptionargsSVN_ERR_RA_ILLEGAL_URL"SVN_ERR_RA_LOCAL_REPOS_OPEN_FAILEDSVN_ERR_BAD_URLr   r%   encode)selfurlr+   abxxx_todo_changemeinstnums          r   __init__zSvnRaTransport.__init__N   sO   F	 :WSVVZ8**33DII>DK#DII.B%'DKK"! XX;;DA
!+DKK**44LL$++tyy DGFFOODGGT\\%8%8%@A ' /44sHH33HH??HH,, 
 )--s   AE   	G)A*GGc                   <    e Zd Zd ZddZddZ	 ddZddZddZy)	SvnRaTransport.Reporterc                 "    |\  | _         | _        y N)	_reporter_baton)r8   reporter_datas     r   r>   z SvnRaTransport.Reporter.__init__o   s    *7'DNDKr   Nc           	      v    t         j                  j                  | j                  | j                  |||||       y rB   )r   r+   reporter2_invoke_set_pathrC   rD   )r8   pathrevnumstart_empty
lock_tokenr   s         r   set_pathz SvnRaTransport.Reporter.set_pathr   s1    FF,,r   c                 p    t         j                  j                  | j                  | j                  ||       y rB   )r   r+   reporter2_invoke_delete_pathrC   rD   )r8   rH   r   s      r   delete_pathz#SvnRaTransport.Reporter.delete_path}   s%    FF//T4r   c           
      x    t         j                  j                  | j                  | j                  ||||||       y rB   )r   r+   reporter2_invoke_link_pathrC   rD   )r8   rH   r9   revisionrJ   rK   r   s          r   	link_pathz!SvnRaTransport.Reporter.link_path   s6     FF--	r   c                 n    t         j                  j                  | j                  | j                  |       y rB   )r   r+   reporter2_invoke_finish_reportrC   rD   r8   r   s     r   finish_reportz%SvnRaTransport.Reporter.finish_report   s#    FF11Tr   c                 n    t         j                  j                  | j                  | j                  |       y rB   )r   r+   reporter2_invoke_abort_reportrC   rD   rV   s     r   abort_reportz$SvnRaTransport.Reporter.abort_report   s#    FF00Tr   rB   )	r   r   r    r>   rL   rO   rS   rW   rZ   r!   r   r   Reporterr@   n   s'    	8			 FJ		
	r   r[   c                 ~    | j                  t        j                  j                  | j                  ||g|i |      S rB   )r[   r   r+   	do_update)r8   rI   rH   r3   kwargss        r   r]   zSvnRaTransport.do_update   s7    }}FFTWWfdDTDVD
 	
r   )r   N)r   r   r    __doc__r>   r[   r]   r!   r   r   r#   r#   I   s    B@* *X
r   r#   )r   r   svn.coresvn.rar   r'   r2   r+   
initializer.   r   r   r#   r!   r   r   <module>rc      sd   *    xx}}hh22 
    
3>	( 	T
 T
r   