
    	^c                         d dl Zd dlZd dlZej        j        Zej        j        Zd dlmZ d dl	m
Z
 ej                                         dad Z G d de          Z G d d          ZdS )	    N)getattr)utilc                 Z   ddl }|j                            |           |j                            |           |j                            |           |j                            |           |j                            |           g}t          |j        dd          }|r/dD ]+}dD ]&} ||||           }|r|	                    |           ',nGt          j        |j        d          r-|	                    |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_trusts   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_providerr   coreappendr   safehasattrget_windows_simple_providersvn_auth_open)poolsvn	providersgetprovidernametypeps          9/usr/lib/python3/dist-packages/hgext/convert/transport.py_create_auth_batonr   &   sK   
 	
&&t,,
((..
44T::
77==
55d;;I ;T K  	KK 	( 	(DO ( (KdD11 ($$Q'''(	( CJ(FGG 	KSZCCDIIJJJ8!!)T222    c                       e Zd ZdS )NotBranchErrorN)__name__
__module____qualname__ r   r   r   r   E   s        Dr   r   c                   :    e Zd ZdZddZ G d d          Zd ZdS )	SvnRaTransportz;
    Open an ra connection to a Subversion repository.
    r   Nc                 R   t                      | _        || _        d| _        d| _        | t          j        t          j        d          st          j	        
                    | j                  | _	        t          | j                  }|| j	        _        t          t          j                            d           at          | j	        _        	 t          j	                            | j        | j	        | j                  | _        d S # t$          $ rS}|j        \  }}|t          j        j        t          j        j        t          j        j        fv rt/          |           d }~ww xY w|| _        t          j                            | j        | j                            d                     d S )Nr   s   reparentutf8)Poolr   svn_urlusernamepasswordr   r   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   reparentencode)selfurlr+   abxxx_todo_changemeinstnums          r   __init__zSvnRaTransport.__init__N   sc   FF	 :T-cfkBB:*33DI>>DK#DI..B%'DK"! X;;DAA
!+DK*44L$+ty  '   /4sH3H?H,  
 )--- DGFOODGT\%8%8%@%@AAAAAs   5D 
E AEE c                   >    e Zd Zd ZddZddZ	 ddZddZddZdS )	SvnRaTransport.Reporterc                 $    |\  | _         | _        d S N)	_reporter_baton)r9   reporter_datas     r   r?   z SvnRaTransport.Reporter.__init__o   s    *7'DNDKKKr   Nc           	      d    t           j                            | j        | j        |||||           d S rC   )r   r+   reporter2_invoke_set_pathrD   rE   )r9   pathrevnumstart_empty
lock_tokenr   s         r   set_pathz SvnRaTransport.Reporter.set_pathr   s?    F,,    r   c                 ^    t           j                            | j        | j        ||           d S rC   )r   r+   reporter2_invoke_delete_pathrD   rE   )r9   rI   r   s      r   delete_pathz#SvnRaTransport.Reporter.delete_path}   s3    F//T4    r   c           
      f    t           j                            | j        | j        ||||||           d S rC   )r   r+   reporter2_invoke_link_pathrD   rE   )r9   rI   r:   revisionrK   rL   r   s          r   	link_pathz!SvnRaTransport.Reporter.link_path   sD     F--	 	 	 	 	r   c                 \    t           j                            | j        | j        |           d S rC   )r   r+   reporter2_invoke_finish_reportrD   rE   r9   r   s     r   finish_reportz%SvnRaTransport.Reporter.finish_report   s1    F11T    r   c                 \    t           j                            | j        | j        |           d S rC   )r   r+   reporter2_invoke_abort_reportrD   rE   rW   s     r   abort_reportz$SvnRaTransport.Reporter.abort_report   s1    F00T    r   rC   )	r   r    r!   r?   rM   rP   rT   rX   r[   r"   r   r   ReporterrA   n   s        	8 	8 	8		 		 		 			 	 	 	 FJ	 	 	 		 	 	 	
	 	 	 	 	 	r   r\   c                 j    |                      t          j        j        | j        ||g|R i |          S rC   )r\   r   r+   	do_update)r9   rJ   rI   r3   kwargss        r   r^   zSvnRaTransport.do_update   s>    }}FTWfdDTDDDVDD
 
 	
r   )r   N)r   r    r!   __doc__r?   r\   r^   r"   r   r   r$   r$   I   so         B B B B@* * * * * * * *X
 
 
 
 
r   r$   )r   r   svn.coresvn.rar   r'   r2   mercurial.pycompatr   	mercurialr   r+   
initializer.   r   r   r$   r"   r   r   <module>rf      s   (      
x}h2  & & & & & &      
      
3 3 3>	 	 	 	 	( 	 	 	T
 T
 T
 T
 T
 T
 T
 T
 T
 T
r   