
    c4                         d dl Z d dlZd dlZd dlZd dlmZ d dlmZmZm	Z	m
Z
mZ d dlmZmZ ddlmZ  G d dej        ej                  ZdS )	    N)_)encodingerrormailpycompatutil)dateutilprocutil   )commonc                        e Zd Z G d d          Zd fd	Zd Zd Zd Zd Zd	 Z	d
 Z
d Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z xZS )gnuarch_sourcec                       e Zd Zd ZdS )gnuarch_source.gnuarch_revc                     || _         d| _        d | _        d| _        d | _        g | _        g | _        g | _        i | _        i | _	        d S )N    )
revsummarydateauthorcontinuationof	add_files	mod_files	del_files	ren_filesren_dirs)selfr   s     7/usr/lib/python3/dist-packages/hgext/convert/gnuarch.py__init__z#gnuarch_source.gnuarch_rev.__init__   sM    DHDLDIDK"&DDNDNDNDNDMMMr   N)__name__
__module____qualname__r    r   r   gnuarch_revr      s#        
	 
	 
	 
	 
	r   r$   Nc                     t          t          |                               ||||           t          j                            t          j                            |d                    s$t          j        t          d          |z            d | _
        t          j        d          rd| _
        nPt          j        d          rd| _
        n4t          j        t          d          t          d          dz  z             t          j                            | || j
                   t          j                            |          | _        d | _        d | _        d | _        i | _        i | _        i | _        t.          j        | _        g | _        d S )N)revs   {arch}s+   %s does not look like a GNU Arch repositorys   baz   tlas   cannot find a GNU Arch tools     (try installing the %s package))superr   r   ospathexistsjoinr   NoRepor   execmdr
   findexer   Abortcommandlinerealpathtmppathtreeversionlastrevchangesparentstagsr   archives)r   uirepotyper+   r&   	__class__s        r   r   zgnuarch_source.__init__+   sg   nd##,,R4d,KKKw~~bgll4;;<< 	-@AADH  
 F## 	S DKK'' S$k!$B"C"C"#$G"H"H6"Q#R S S S 	##D"dk:::G$$T**		 )r   c                    d |                      dd          D             | _        | j        dk    r|                     d| j                  }n|                     dd| j                  }|                                | _        | j                            d          }t          j        	                    t          j        t          j                              d|d	         z            | _        g | j        d <   | j        }d }|r| j                            t%          d
          |z             |                    d          d         }|| j        vr,| j                            t%          d          |z             d S |                     ddd|          \  }}|                     |d|z             d }|D ]}|                                }|                     |          | j        |<   g | j        |<   |                     dd| j        |          \  }	}|r|                     d|          }	|                     |	|           | j        |                             |           |}| j        |         j        rBd	                    | j        |         j                            d          d d                   } n|dd          dk    r n|d S d S )Nc                 8    g | ]}|                     d           S )   
)rstrip).0is     r   
<listcomp>z)gnuarch_source.before.<locals>.<listcomp>M   s/     
 
 
 !AHHUOO
 
 
r   s   archivess   -nr(   s   tree-version   -d   /s   hg-%sr   s   analyzing tree version %s...
r   sI   tree analysis stopped because it points to an unregistered archive %s...
s	   revisionss   -rs   -fs"   failed retrieving revisions for %ss   cat-logs   cat-archive-logs   --is   base-0)	runlines0r:   r/   run0r+   stripr5   splitr*   r-   r   fsencodetempfile
gettempdirr4   r8   r;   statusr   runlines	checkexitr$   r7   run_parsecatlogappendr   )
r   outputversionr5   childarchiverO   lr   catlogs
             r   beforezgnuarch_source.beforeK   s   
 
%)^^K%G%G
 
 
 ;&  YY	::FFYYtyAAF!<<>> "((..w||h13344h6K
 

  T& 7	GNN1>??+MNNN!''--a0Gdm++;  	    "]]eUK NFF NN=K  
 K  ggii$($4$4S$9$9S!$&S! "&*eTY!L!L @!YY'93??F!!&#... U#**3/// 
 <$3 "'**S)8>>uEEcrcJ# #K E rss8y((E )m  7	 7	 7	 7	 7	r   c                     | j                             d| j        z             t          j        | j        d           d S )Ns   cleaning up %s
Tignore_errors)r;   debugr4   shutilrmtreer   s    r   afterzgnuarch_source.after   s;    )DL8999dl$777777r   c                     | j         d          S N)r8   rb   s    r   getheadszgnuarch_source.getheads   s    |D!!r   c                    || j         k    r!t          j        t          d                    t          j                            t          j                            | j        |                    sdS | 	                    ||          S )Ns   internal calling inconsistency)NN)
r6   r   r1   r   r*   r+   lexistsr-   r4   _getfile)r   namer   s      r   getfilezgnuarch_source.getfile   si    $,+a ABBCCCwrw||DL$??@@ 	:}}T3'''r   c                    |r!t          j        t          d                    |                                g }i }| j                 j        D ]}|                    |f           | j                 j        D ]}|                    |f           | j                 j        D ]}|                    |f           | j                 j	        D ]M}| j                 j	        |         }|                    |f           |                    |f           |||<   N| j                 j
        D ]Y}| j                 j
        |         }|                     ||          \  }}	|fd|D             z  }|                    |	           Z| _        t          t          |                    |t                      fS )Ns)   convert from arch does not support --fullc                     g | ]}|fS r#   r#   )rB   fr   s     r   rD   z-gnuarch_source.getchanges.<locals>.<listcomp>   s    ///QC///r   )r   r1   r   _updater7   r   rT   r   r   r   r   _rendirchangesupdater6   sortedset)
r   r   fullr7   copiesrn   srctochgscpss
    `        r   
getchangeszgnuarch_source.getchanges   s    	O+a LMMNNNSc", 	% 	%ANNAs8$$$$c", 	% 	%ANNAs8$$$$c", 	% 	%ANNAs8$$$$<$. 	 	Cc",S1BNNC:&&&NNB9%%%F2JJ<$- 	 	Cc"+C0B++C44ID#////$////GMM#c'll##VSUU22r   c                     | j         |         }t          j        |j        |j        |j        | j        |         |          S )N)r   r   descr8   r   )r7   r   commitr   r   r   r8   )r   r   r7   s      r   	getcommitzgnuarch_source.getcommit   sC    ,s#}>L%
 
 
 	
r   c                     | j         S re   )r9   rb   s    r   gettagszgnuarch_source.gettags   s
    yr   c                 F   | j         |g}||z  }d |D             }t          j        t          j                  }|d|d|gz  }d                    |          }| j                            |d           t          j        t          j	        t          j        |                    S )Nc                 6    g | ]}t          j        |          S r#   )r
   
shellquote)rB   args     r   rD   z+gnuarch_source._execute.<locals>.<listcomp>   s#    ???8&s++???r      >s   2>    r@   )r/   r   bytestrr*   devnullr-   r;   r_   systemrapplyr
   tonativestr)r   cmdargskwargscmdlinebdevnulls         r   _executezgnuarch_source._execute   s    ;$4??w???#BJ//D(E844))G$$gu%%%y)=wGGHHHr   c                 x   | j                             d|z             |                     dd| j        |          \  }}|r2t	          j        | j        d           |                     |           d S | j        |         d         }| j                             d||fz             |                     ||           d S )Ns   applying revision %s...
s   replayrE   Tr]   r   s)   computing changeset between %s and %s...
)	r;   r_   rP   r4   r`   ra   _obtainrevisionr8   _parsechangeset)r   r   	changesetrO   old_revs        r   ro   zgnuarch_source._update   s    2S8999 MM)UDL#NN	6 
	1 M$,d;;;;  %%%%%l3'*GGMM=#N     C00000r   c                    t          j        t           j                            | j        |                    j        }t          j        |          r?t          j	        t           j                            | j        |                    }|rd}nCd}n@t          j
        t           j                            | j        |                    }|dz  rdpd}||fS )N   lr   I      x)r*   lstatr+   r-   r4   st_modestatS_ISLNKr   readlinkreadfile)r   rj   r   modedatas        r   ri   zgnuarch_source._getfile   s    xT\48899A< 	2=dlD!A!ABBD =dlD!A!ABBD5L*d1cDTzr   c                 P    g d}|D ]}|                     |          dk    r dS dS )N)r'   s	   .arch-idss   .arch-inventoryrG   TF)find)r   rj   excludeexcs       r   _excludezgnuarch_source._exclude   sB    ??? 	 	Cyy~~##tt $ur   c                    g }t          j        |          }t          |          dk    r|                                t           j                            |          }|                     |          sXt           j                            |          r$|fdt          j        |          D             z  }n|                               t          |          dk    |S )Nr   c                 P    g | ]"}t           j                            |          #S r#   )r*   r+   r-   )rB   rn   cs     r   rD   z0gnuarch_source._readcontents.<locals>.<listcomp>  s)     K K Ka!3!3 K K Kr   )	r*   listdirlenpopr+   r-   r   isdirrT   )r   r+   filescontentspr   s        @r   _readcontentszgnuarch_source._readcontents  s    :d##(mmaAT1%%A ==## $7==## $ K K K KRZ]] K K KKHHLLOOO (mma r   c                 j   g }i }|                      t          j                            | j        |                    }|D ]q}t          j                            ||          }t          j                            ||          }|                    |           |                    |           |||<   r||fS re   )r   r*   r+   r-   r4   rT   )	r   rv   destr7   ru   r   rn   sds	            r   rp   zgnuarch_source._rendirchanges  s    ""27<<d#C#CDD 	 	AS!$$AT1%%ANN1NN1F1IIr   c                 F   | j                             d|z             |                     d|| j                  }|                     |           | j                             d|z             |                     | j                  }| j        |         xj        |z  c_        d S )Ns   obtaining revision %s...
s   gets   analyzing revision %s...
)r;   r_   r   r4   rQ   r   r7   r   )r   r   rU   r   s       r   r   zgnuarch_source._obtainrevision  s    3c9:::vsDL99v3c9:::""4<00S##u,####r   c                 D    |                     d          r
|dd          S |S )Ns   ./   )
startswith)r   r+   s     r   _stripbasepathzgnuarch_source._stripbasepath&  s(    ??5!! 	8Or   c                    	 t          j        |          }t          j        t          j        |d         d                    | j        |         _        |                     |d                   | j        |         _        d	                    |                     |d                   |                     |
                                          f          | j        |         _        |                     | j        |         j                  | j        |         _        d|v r-|                     |d                   | j        |         _        d S d S # t          $ r% t          j        t!          d          |z            w xY w)NzStandard-dates   %Y-%m-%d %H:%M:%SCreators   

SummaryzContinuation-ofs   could not parse cat-log of %s)r   
parsebytesr	   datestrstrdater7   r   recoder   r-   get_payloadr   r   	Exceptionr   r1   r   )r   r   r   rZ   s       r   rS   zgnuarch_source._parsecatlog+  sg   	I_T**F &.%5 !8:NOO& &DL"
 (,{{6)3D'E'EDL$ )0KKy 122KK 2 2 4 455) )DL% )-DL4E4M(N(NDL% !F**37;;,-4 4S!000 +*  	I 	I 	I+a @AACGHHH	Is   EE /E:c                 ~
   |D ]8}|                                 }|                    d          r|                    d          sj|                     |dd                                                     }|                     |          s%| j        |         j                            |           |                    d          r|                    d          sk|                     |dd                                                     }|                     |          s%| j        |         j                            |           @|                    d          rk|                     |dd                                                     }|                     |          s%| j        |         j                            |           |                    d          rk|                     |d	d                                                     }|                     |          s%| j        |         j                            |           @|                    d
          rk|                     |dd                                                     }|                     |          s%| j        |         j                            |           |                    d          r|dd                                           	                    d          }t          |          dk    r/|dd                                           	                    d          }|                     |d                   }|                     |d                   }|                     |          s*|                     |          s|| j        |         j        |<   |                    d          rk|                     |dd                                                     }|                     |          s%| j        |         j                            |           =|                    d          r|dd                                           	                    d          }t          |          dk    r/|dd                                           	                    d          }|                     |d                   }|                     |d                   }|                     |          s*|                     |          s|| j        |         j        |<   :d S )N   As   A/r      Ds   D/s   Mbr   s   M->      Ms   =>r      	r   s   chs   />)rJ   r   r   r   r7   r   rT   r   r   rK   r   r   r   )	r   r   r   rY   filer   rv   dstdirss	            r   r   zgnuarch_source._parsechangesetH  sq    1	: 1	:A		A||D!! .:!,,u*=*= .:**1QRR5;;==99}}T** =L%/66t<<<d## ):ALL,?,? ):**1QRR5;;==99}}T** =L%/66t<<<e$$ $:**1QRR5;;==99}}T** =L%/66t<<<f%% :**1QRR5;;==99}}T** =L%/66t<<<d## :**1QRR5;;==99}}T** =L%/66t<<<e$$ :!""++D11u::??abbEKKMM//66E))%(33))%(33}}S)) ;$--2D2D ;7:DL%/4e$$ :**1QRR5;;==99}}T** =L%/66t<<<e$$ :u{{}}**400t99>>QRR5;;==..u55D))$q'22))$q'22}}S)) :$--2D2D :69DL%.s3c1	: 1	:r   re   )r    r!   r"   r$   r   r[   rc   rf   rk   rz   r~   r   r   ro   ri   r   r   rp   r   r   rS   r   __classcell__)r=   s   @r   r   r      so                   @M M M^8 8 8" " "( ( (3 3 3>
 
 
  I I I1 1 1      
 
 
- - -  
I I I:2: 2: 2: 2: 2: 2: 2:r   r   )r*   r`   r   rM   mercurial.i18nr   	mercurialr   r   r   r   r   mercurial.utilsr	   r
    r   converter_sourcer2   r   r#   r   r   <module>r      s   
			                                   ]: ]: ]: ]: ]:V,f.@ ]: ]: ]: ]: ]:r   