
    6h                        S SK Jr  S SKrS SKrS SKrS SKJrJr  S SKJ	r	  S SK
JrJrJr  S SKJr  SSKJr  \R$                  r " S	 S
\R&                  \R(                  5      rg)    )annotationsN)ElementTree	XMLParser)_)errorpycompatutil)dateutil   )commonc                  x   ^  \ rS rSrSS jrS rS 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U =r$ )darcs_source   c                   [         R                  R                  XX#US9  [         R                  R                  XS5        [        R
                  R                  [        R
                  R                  US5      5      (       d  [        [        S5      U-  5      e[         R                  " SSS9  U R                  S5      R                  5       S   R                  5       nUS:  a"  [        R                  " [        S	5      U-  5      eS
[!        5       ;  a  [        R                  " [        S5      5      e[        R
                  R#                  U5      U l        S U l        0 U l        0 U l        0 U l        U R-                  5       nU(       a  US;   a  [        [        S5      U-  5      eg U R.                  R1                  [        S5      5        g )N)revss   darcss   _darcss(   %s does not look like a darcs repository)debnames	   --versionr   s   2.1s,   darcs version 2.1 or newer needed (found %r)r   s*   Python ElementTree module is not available)s	   darcs-1.0s   hasheds3   %s repository format is unsupported, please upgrades#   failed to detect repository format!)r   converter_source__init__commandlineospathexistsjoinNoRepor   	checktoolrun0
splitlinesstripr   Abortglobalsrealpathlastrevchangesparentstagsformatuiwarn)selfr'   repotyper   r   versionr&   s          5/usr/lib/python3/dist-packages/hgext/convert/darcs.pyr   darcs_source.__init__   sv   ((8(M##Dh7 ww~~bggll4;<<FG$NOO84))L)446q9??AV++ABWL  	)++a MNOOGG$$T*		 22* 	  3 GGLLABC    c                   [         R                  " S[        R                  R	                  U R                  5      -   S-   S9U l        U R                  SU R
                  S9u  pU R                  U5        U R                  SSSU R                  S9nS nS nUR                  S	5       H  nU R                  UR                  S
5      5      nU R                  UR                  SS5      5      nUR                  S5      (       a  USS  R                  5       nOUb  XpR                  U'   S nX`R                   U'   U/U R"                  U'   UnM     / U R"                  U'   g )Ns   convert-   -)prefixs   initrepodirs   changesT)
xml_outputsummaryr3   patchhashname s   TAG    )r   mkdtempr   r   basenametmppathrun	checkexitxmlfindallrecodegetfindtext
startswithr   r%   r#   r$   )	r)   outputstatustreetagnamechildeltnoder8   s	            r,   beforedarcs_source.beforeG   s1   ''!1!1$))!<<tC
 '4<<@vxx4tyy  
 <<(C;;swwv/D;;s||FB78Dw''qr(..*$%)		'"!$LL#'&DLLE ) !Ur.   c                    U R                   R                  SU R                  -  5        [        R                  " U R                  SS9  g )Ns   cleaning up %s
T)ignore_errors)r'   debugr=   shutilrmtreer)   s    r,   afterdarcs_source.after`   s.    )DLL89dll$7r.   c                n   > [        U[        5      (       a  UR                  S5      n[        TU ]  X5      $ )Nlatin-1)
isinstancestrencodesuperrB   )r)   sencoding	__class__s      r,   rB   darcs_source.recoded   s/    a #Aw~a**r.   c                    [        5       n[        SS9nU R                  " U40 UD6nUR                  UR                  US9  UR                  5         U R                  UR                  5        UR                  5       $ )NrX   )r^   )parser)	r   r   _runparsestdoutwaitr?   
returncodegetroot)r)   cmdkwargsetreerb   ps         r,   r@   darcs_source.xmll   sc      I.IIc$V$AHHV,	q||$}}r.   c                8   U R                  SSU R                  S9u  pU R                  U5        [        R                  " SU[        R
                  5      nU(       d  g SR                  [        S UR                  S5      R                  S5       5       5      5      $ )N   shows   repor2   s   ^\s*Format:\s*(.*)$   ,c              3  @   #    U  H  oR                  5       v   M     g 7fN)r   ).0fs     r,   	<genexpr>&darcs_source.format.<locals>.<genexpr>   s     J3Ia		3Is   r   )
r>   r   r?   research	MULTILINEr   sortedgroupsplit)r)   rF   rG   ms       r,   r&   darcs_source.formatz   sr    '7DIIFvII-vr||DyyJ1771:3C3CD3IJJKKr.   c                    / nU R                  SSSU R                  S9u  p#U R                  U5        UR                  S5       H"  nUSS  nU(       d  M  UR	                  U5        M$     U$ )Nro   s   filesT)no_directoriesr3      
   )r>   r=   r?   r|   append)r)   manrF   rG   liner   s         r,   manifestdarcs_source.manifest   sm    XdDLL " 
 	vLL'D8Dt

4  ( 
r.   c                     U R                   S    $ rr   )r$   rT   s    r,   getheadsdarcs_source.getheads   s    ||D!!r.   c                   U R                   U   nSn[        R                  " U R                  UR	                  S5      5      U5      nUR                  S5      S-   UR                  SS5      -   nSn[        R                  " U R                  UR	                  S5      5      [        R                  " XF5      U R                  U5      R                  5       U R                  U   S	9$ )
Ns   %a %b %d %H:%M:%S %Z %Y
local_dater8   
commentr9   s   %Y-%m-%d %H:%M:%S %1%2author)r   datedescr$   )r#   r
   strdaterB   rC   rD   r   commitdatestrr   r$   )r)   revrK   
dateformatr   r   newdateformats          r,   	getcommitdarcs_source.getcommit   s    ll3/
CGGL,A BJO||F#d*S\\)R-HH 2}};;swwx01!!$6T"((*LL%	
 	
r.   c                8   U R                  SU R                  SSU R                  U5      -  SSSU R                  S9u  p#U(       aU  UR	                  S5      S:X  a  U R                  X25        U R                  SSU R                  S	9u  p#U R                  X25        g g )
Ns   pullTs   hash %ss
   /bin/false)allmatchno_testno_posthookexternal_merger3   s   We have conflicts ins   revert)r   r3   )r>   r   rB   r=   findr?   )r)   r   rF   rG   s       r,   pulldarcs_source.pull   s    IIt{{3//(LL " 	
 {{23r9v.!XXiT4<<XPNFNN6*	 r.   c                   U(       a  [         R                  " [        S5      5      e0 n/ nS nU R                  U   R	                  S5       GHG  nUR
                  S;   a  M  UR
                  S:X  a  Uc  U R                  5       nU R                  UR                  S5      5      nU R                  UR                  S5      5      nXu;   a*  UR                  Xq45        UR                  X45        XsU'   M  US-   nU HW  n	U	R                  U5      (       d  M  US-   U	[        U5      S  -   n
UR                  X45        UR                  X45        XU
'   MY     GM  UR                  U R                  UR                  R                  5       5      U45        GMJ     U R                  U5        Xl        [!        U5      U[#        5       4$ )Ns*   convert from darcs does not support --fullr5   )add_directoryremove_directorymovefromto   /)r   r   r   r#   r   tagr   rB   rC   r   rE   lentextr   r   r"   rz   set)r)   r   fullcopiesr#   r   rK   sourcedestrt   fdests              r,   
getchangesdarcs_source.getchanges   sv   ++a MNOO<<$)))4Cww??ww& ;--/CSWWV_5{{3774=1=NNF=1NND;/#)4L $d]F  ||F33$ $taF.> >x0|4()u ! CHHNN,< =sCD1 52 			#g--r.   c                t   X R                   :w  a  [        R                  " [        S5      5      e[        R
                  R                  U R                  U5      n [        R                  " U5      n[        R                  " U5      R                  nUS-  =(       a    S=(       d    SnXE4$ ! [         a     gf = f)Ns   internal calling inconsistency)NNI      xr.   )r"   r   r   r   r   r   r   r=   r	   readfilelstatst_modeFileNotFoundError)r)   r8   r   r   datamodes         r,   getfiledarcs_source.getfile   s    ,,++a ABCCww||DLL$/	==&D88D>))D u&$-#z ! 		s   6B* *
B76B7c                    U R                   $ rr   )r%   rT   s    r,   gettagsdarcs_source.gettags   s    yyr.   )r#   r"   r$   r   r%   r=   rr   )__name__
__module____qualname____firstlineno__r   rM   rU   rB   r@   r&   r   r   r   r   r   r   r   __static_attributes____classcell__)r_   s   @r,   r   r      sM    &DP!28+L
"
+"!.F
 r.   r   )
__future__r   r   rw   rR   xml.etree.ElementTreer   r   mercurial.i18nr   	mercurialr   r   r	   mercurial.utilsr
   r9   r   r   r   r   r    r.   r,   <module>r      sT    # 	 	 
  
 % 	C6**F,>,> Cr.   