
    6h/4                        S SK Jr  S SKrS SKrS SKrS SKrS SKJr  S SKJ	r	J
r
JrJrJr  S SKJrJr  SSKJr   " S S	\R&                  \R(                  5      rg)
    )annotationsN)_)encodingerrormailpycompatutil)dateutilprocutil   )commonc                     ^  \ rS rSr " S S5      rSU 4S jjrS rS rS rS r	S	 r
S
 rS rS rS rS rS rS rS rS rS rS rS rSrU =r$ )gnuarch_source   c                      \ rS rSrS rSrg)gnuarch_source.gnuarch_rev    c                    Xl         SU l        S U l        SU l        S U l        / U l        / U l        / U l        0 U l        0 U l	        g )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__#gnuarch_source.gnuarch_rev.__init__!   sG    HDLDIDK"&DDNDNDNDNDMr   )
r   r   r   r   r   r   r   r   r   r   N)__name__
__module____qualname____firstlineno__r"   __static_attributes__ r   r!   gnuarch_revr       s    
	r   r*   c                  > [         TU ]  XX4S9  [        R                  R	                  [        R                  R                  US5      5      (       d"  [        R                  " [        S5      U-  5      eS U l	        [        R                  " S5      (       a  SU l	        OQ[        R                  " S5      (       a  SU l	        O.[        R                  " [        S5      [        S5      S-  -   5      e[        R                  R                  XU R                  5        [        R                  R                  U5      U l        S U l        S U l        S U l        0 U l        0 U l        0 U l        [,        R,                  U l        / U l        g )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"   ospathexistsjoinr   NoRepor   execmdr   findexer   Abortcommandlinerealpathtmppathtreeversionlastrevchangesparentstagsr   archives)r    uirepotyper1   r,   	__class__s        r!   r"   gnuarch_source.__init__-   s/   t7ww~~bggll4;<<--@ADH 
 F## DK''$kk!$B"C"#$G"H6"Q#R S S 	##Ddkk:GG$$T*		 ))r   c                   U R                  SS5       Vs/ s H  oR                  S5      PM     snU l        U R                  S:X  a  U R	                  SU R
                  5      nOU R	                  SSU R
                  5      nUR                  5       U l        U R                  R                  S5      n[        R
                  R                  [        R                  " [        R                  " 5       5      SUS	   -  5      U l        / U R                   S '   U R                  nS nU(       Ga  U R"                  R%                  ['        S
5      U-  5        UR                  S5      S   nX`R                  ;  a(  U R"                  R%                  ['        S5      U-  5        g U R)                  SSSU5      u  p'U R+                  USU-  5        S nU GH  nUR                  5       n	U R-                  U	5      U R.                  U	'   / U R                   U	'   U R1                  SSU R
                  U	5      u  pU(       a  U R	                  SU	5      n
U R3                  X5        U R                   U   R5                  U	5        U	nU R.                  U	   R6                  (       a<  SR                  U R.                  U	   R6                  R                  S5      S S 5      n  OU	SS  S:X  d  GM    O   U(       a  GM  g g s  snf )Ns   archivess   -n   
r.   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)	runlines0rstripr@   r5   run0r1   stripr;   splitr0   r3   r   fsencodetempfile
gettempdirr:   r>   rA   statusr   runlines	checkexitr*   r=   run_parsecatlogappendr   )r    ioutputversionr;   childarchiverR   lr   catlogs              r!   beforegnuarch_source.beforeM   s    &*^^K%G
%GHHUO%G
 ;;& YY		:FYYtyyAF!<<> ""((.ww||h1134h6K

  T&&GGNN1>?+MN!''-a0Gmm+; 	  "]]eUKNF NN=K
 Kggi$($4$4S$9S!$&S! "&*eTYY!L!YY'93?F!!&. U#**3/ 
 <<$33"'**S)88>>uEcrJ#K  rs8y(= 3 k)
s   K*c                    U R                   R                  SU R                  -  5        [        R                  " U R                  SS9  g )Ns   cleaning up %s
Tignore_errors)rA   debugr:   shutilrmtreer    s    r!   aftergnuarch_source.after   s.    )DLL89dll$7r   c                     U R                   S    $ N)r>   rg   s    r!   getheadsgnuarch_source.getheads   s    ||D!!r   c                   X R                   :w  a  [        R                  " [        S5      5      e[        R
                  R                  [        R
                  R                  U R                  U5      5      (       d  gU R                  X5      $ )Ns   internal calling inconsistency)NN)
r<   r   r7   r   r0   r1   lexistsr3   r:   _getfile)r    namer   s      r!   getfilegnuarch_source.getfile   sY    ,,++a ABCCwwrww||DLL$?@@}}T''r   c                   U(       a  [         R                  " [        S5      5      eU R                  U5        / n0 nU R                  U   R
                   H  nUR                  XQ45        M     U R                  U   R                   H  nUR                  XQ45        M     U R                  U   R                   H  nUR                  XQ45        M     U R                  U   R                   HG  nU R                  U   R                  U   nUR                  Xa45        UR                  Xq45        XdU'   MI     U R                  U   R                   HY  nU R                  U   R                  U   nU R                  Xg5      u  pX8 Vs/ s H  oUU4PM     sn-  nUR                  U	5        M[     Xl        [        [        U5      5      U[        5       4$ s  snf )Ns)   convert from arch does not support --full)r   r7   r   _updater=   r   rW   r   r   r   r   _rendirchangesupdater<   sortedset)
r    r   fullr=   copiesfsrctochgscpss
             r!   
getchangesgnuarch_source.getchanges   s   ++a LMNNSc",,ANNA8$ - c",,ANNA8$ - c",,ANNA8$ - <<$..Cc",,S1BNNC:&NNB9%2J	 / <<$--Cc"++C0B++C4ID$/$QC$//GMM#	 . c'l#VSU22	 0s   Gc                    U R                   U   n[        R                  " UR                  UR                  UR
                  U R                  U   US9$ )N)r   r   descr>   r   )r=   r   commitr   r   r   r>   )r    r   r=   s      r!   	getcommitgnuarch_source.getcommit   sE    ,,s#}}>>LL%
 	
r   c                    U R                   $ rk   )r?   rg   s    r!   gettagsgnuarch_source.gettags   s    yyr   c                   U R                   U/nXB-  nU Vs/ s H  n[        R                  " U5      PM     nn[        R                  " [
        R                  5      nUSUSU/-  nSR                  U5      nU R                  R                  US5        [
        R                  " [        R                  " [        R                  U5      5      $ s  snf )N   >s   2>    rF   )r5   r   
shellquoter   bytestrr0   devnullr3   rA   rd   systemrapplytonativestr)r    cmdargskwargscmdlineargbdevnulls          r!   _executegnuarch_source._execute   s    ;;$7>?w8&&s+w?##BJJ/D(E844))G$gu%yy)=)=wGHH @s    Cc                t   U R                   R                  SU-  5        U R                  SSU R                  U5      u  p#U(       a1  [        R
                  " U R                  SS9  U R                  U5        g U R                  U   S   nU R                   R                  SXA4-  5        U R                  X!5        g )Ns   applying revision %s...
s   replayrG   Trb   r   s)   computing changeset between %s and %s...
)	rA   rd   rS   r:   re   rf   _obtainrevisionr>   _parsechangeset)r    r   	changesetrR   old_revs        r!   ru   gnuarch_source._update   s    2S89 MM)UDLL#N	 MM$,,d;  %ll3'*GGGMM=N   0r   c                   [         R                  " [         R                  R                  U R                  U5      5      R
                  n[        R                  " U5      (       aP  [        R                  " [         R                  R                  U R                  U5      5      nU(       a  SnXC4$ Sn XC4$ [        R                  " [         R                  R                  U R                  U5      5      nUS-  =(       a    S=(       d    SnXC4$ )N   lr   I      x)r0   lstatr1   r3   r:   st_modestatS_ISLNKr	   readlinkreadfile)r    rq   r   modedatas        r!   rp   gnuarch_source._getfile   s    xxT\\489AA<<==dllD!ABD z	  z ==dllD!ABD5L*d1cDzr   c                L    / SQnU H  nUR                  U5      S:w  d  M    g   g)N)r-   s	   .arch-idss   .arch-inventoryrI   TF)find)r    rq   excludeexcs       r!   _excludegnuarch_source._exclude   s)    ?Cyy~#  r   c                   / n[         R                  " U5      n[        U5      S:  a  UR                  5       n[         R                  R                  X5      nU R                  U5      (       d}  [         R                  R                  U5      (       aH  U[         R                  " U5       Vs/ s H"  n[         R                  R                  XF5      PM$     sn-  nOUR                  U5        [        U5      S:  a  M  U$ s  snf )Nr   )	r0   listdirlenpopr1   r3   r   isdirrW   )r    r1   filescontentscpr|   s          r!   _readcontentsgnuarch_source._readcontents  s    ::d#(maAT%A ==##77==##RZZ] K]a!3] KKHLLO (ma  !Ls   *)C=c                \   / n0 nU R                  [        R                  R                  U R                  U5      5      nU Hg  n[        R                  R                  X5      n[        R                  R                  X&5      nUR                  U5        UR                  U5        XtU'   Mi     X44$ rk   )r   r0   r1   r3   r:   rW   )	r    r}   destr=   r{   r   r|   sds	            r!   rv   gnuarch_source._rendirchanges  s    ""277<<d#CDAS$AT%ANN1NN11I  r   c                P   U R                   R                  SU-  5        U R                  SXR                  5      nU R	                  U5        U R                   R                  SU-  5        U R                  U R                  5      nU R                  U   =R                  U-  sl        g )Ns   obtaining revision %s...
s   gets   analyzing revision %s...
)rA   rd   r   r:   rT   r   r=   r   )r    r   rY   r   s       r!   r   gnuarch_source._obtainrevision   s|    3c9:vsLL9v3c9:""4<<0S##u,#r   c                <    UR                  S5      (       a  USS  $ U$ )Ns   ./   )
startswith)r    r1   s     r!   _stripbasepathgnuarch_source._stripbasepath(  s!    ??5!!8Or   c                    [         R                  " U5      n[        R                  " [        R                  " US   S5      5      U R
                  U   l        U R                  US   5      U R
                  U   l        SR                  U R                  US   5      U R                  UR                  5       5      45      U R
                  U   l        U R                  U R
                  U   R                  5      U R
                  U   l        SU;   a'  U R                  US   5      U R
                  U   l        g g ! [         a#    [        R                  " [!        S5      U-  5      ef = f)NzStandard-dates   %Y-%m-%d %H:%M:%SCreators   

SummaryzContinuation-ofs   could not parse cat-log of %s)r   
parsebytesr
   datestrstrdater=   r   recoder   r3   get_payloadr   r   	Exceptionr   r7   r   )r    r   r   r^   s       r!   rV   gnuarch_source._parsecatlog-  s<   	I__T*F &.%5%5  !8:NO&DLL"
 (,{{6)3D'EDLL$ )0KKy 12KK 2 2 45)DLL% )-DLL4E4M4M(NDLL% !F*37;;,-4S!0 +  	I++a @ACGHH	Is   D6D: :-E'c                	   U GH  nUR                  5       nUR                  S5      (       az  UR                  S5      (       dd  U R                  USS  R                  5       5      nU R                  U5      (       d*  U R                  U   R
                  R                  U5        M  M  UR                  S5      (       a|  UR                  S5      (       df  U R                  USS  R                  5       5      nU R                  U5      (       d+  U R                  U   R                  R                  U5        GM3  GM6  UR                  S5      (       af  U R                  USS  R                  5       5      nU R                  U5      (       d+  U R                  U   R                  R                  U5        GM  GM  UR                  S5      (       af  U R                  US	S  R                  5       5      nU R                  U5      (       d+  U R                  U   R                  R                  U5        GM+  GM.  UR                  S
5      (       af  U R                  USS  R                  5       5      nU R                  U5      (       d+  U R                  U   R                  R                  U5        GM  GM  UR                  S5      (       a  USS  R                  5       R                  S5      n[        U5      S:X  a"  USS  R                  5       R                  S5      nU R                  US   5      nU R                  US   5      nU R                  U5      (       d7  U R                  U5      (       d  XpR                  U   R                  U'   GM  GM  GM  UR                  S5      (       af  U R                  USS  R                  5       5      nU R                  U5      (       d+  U R                  U   R                  R                  U5        GM  GM  UR                  S5      (       d  GM   USS  R                  5       R                  S5      n[        U5      S:X  a"  USS  R                  5       R                  S5      nU R                  US   5      nU R                  US   5      nU R                  U5      (       a  GM  U R                  U5      (       a  GM  XpR                  U   R                  U'   GM     g )N   As   A/r      Ds   D/s   Mbr   s   M->      Ms   =>r      	r   s   chs   />)rM   r   r   r   r=   r   rW   r   r   rN   r   r   r   )	r    r   r   r]   filer   r}   dstdirss	            r!   r   gnuarch_source._parsechangesetJ  s   A	A||D!!!,,u*=*=**1QR5;;=9}}T**LL%//66t< + d##ALL,?,?**1QR5;;=9}}T**LL%//66t< + e$$**1QR5;;=9}}T**LL%//66t< + f%%**1QR5;;=9}}T**LL%//66t< + d##**1QR5;;=9}}T**LL%//66t< + e$$!"++D1u:?abEKKM//6E))%(3))%(3}}S))$--2D2D7:LL%//4 3E) e$$**1QR5;;=9}}T**LL%//66t< + e$$u{{}**40t9>QR5;;=..u5D))$q'2))$q'2}}S))$--2D2D69LL%..s3c r   )
r@   r=   r   r5   r<   r>   r1   r?   r:   r;   rk   )r$   r%   r&   r'   r*   r"   r_   rh   rl   rr   r   r   r   r   ru   rp   r   r   rv   r   r   rV   r   r(   __classcell__)rC   s   @r!   r   r      sq     @M^8"(3>
I1
-
I:2: 2:r   r   )
__future__r   r0   re   r   rP   mercurial.i18nr   	mercurialr   r   r   r   r	   mercurial.utilsr
   r    r   converter_sourcer8   r   r)   r   r!   <module>r      sI    # 	      ]:V,,f.@.@ ]:r   