
    6h*                        S SK Jr  S SKJr  S SKJrJr  S SKJrJ	r	J
r
JrJr  SSKJrJrJr  S rSrSrSS	 jr " S
 S\	R*                  5      rS rS rg)    )annotations)_)binhex)
bundlerepochangegrouperrormatchmdiff   )	constantsremotefilelogshallowutil   Nc              #    #    [        U[        R                  5      (       d  [        X]  X#XES9 S h  vN   g [	        U5      S:X  a  UR                  5       v   g [        R                  " X#R                  5      nUR                  US   5      S   nUR                  SU5        [        [	        U5      S-
  5       H/  nX(   X(S-      pU" U
5      nUR                  X:X5       S h  vN   M1     UR                  5       v   g  N N7f)Nunitsr   r   )
isinstancer   supergrouplencloser   	sortnodesparentsinsertrange	nodechunk)clsselfnodelistrloglookupr   reorderpiprevcurrlinknodes               C/usr/lib/python3/dist-packages/hgext/remotefilelog/shallowbundle.pyshallowgroupr*      s     dM7788)(&)NNN
8}jjl$$X||<H 	Xa[!!$AOOAq 3x=1$%[(q5/d$<>>$d=== &
 **,' 	O" 	>s"   0DD B1D$D%DDc                  V   ^  \ rS rSrU 4S jrS	S jrU 4S jrS rU 4S jrS r	Sr
U =r$ )
shallowcg1packer6   c                v   > [         R                  " U R                  5      (       a  Sn[        TU ]  " XX440 UD6$ )NF)r   	isenabled_repor   generate)r   
commonrevsclnodesfastpathlinkrevsourcekwargs	__class__s         r)   r1   shallowcg1packer.generate7   s<      ,,#Ow
<B
 	
    c           	     "    [        [        XX#US9$ )Nr   )r*   r,   )r   r    r!   r"   r   r#   s         r)   r   shallowcg1packer.group?   s    dd%
 	
r9   c                <  >  Uu  pEn[        R                  " U R                  5      (       a  U R                  n[	        U[
        R                  5      (       aH  [
        R                  R                  US5        UR                  (       a  [        R                  " SSS9e/ $ U R                  U5      nU[        :X  a3  [        U Vs/ s H  oR                  U5      (       a  M  UPM     sn5      n[        TU ]@  " U/UQ70 UD6$ ! [          a
    Uu  pVpxp GNf = fs  snf )Ns   foos   cannot pull from full bundless   use `hg unbundle` instead)hint)
ValueErrorr   r/   r0   r   r   bundlerepositoryfile_cgfilesposr	   AbortshouldaddfilegroupsNoFileslistshallowmatchr   generatefiles)r   changedfilesargsr6   	linknodesr2   r5   mfdictsr4   fnodesclrevsrepofilestosendfr7   s                 r)   rG   shallowcg1packer.generatefilesD   s   	P,0)I6   ,,::D$
 ; ;<<
 ++00v>##++89  	226:Kg%# ,I14E4Ea4HQI  w$\CDCFCC-  	PKOHJ&&	P& Js   D D!DDDc                   U R                   n[        R                  " U5      (       d  [        $ US:X  d  US:X  a  [        $ US:X  a4  UR                  R                  SS5      nUS:X  a  [        $ US:w  a  [        $ U R                  =(       d    / nUS:X  d  US	:X  aD  [        R                  U;   a  [        $ UR                  R                  [        S
5      5        [        $ [        $ )Ns   pushs   bundles   strips   remotefilelogs   strip.includefiless   locals   none   serves   pulls   pulling from a shallow repo
)r0   r   r/   AllFilesuiconfig
LocalFiles_bundlecapsr   BUNDLE2_CAPABLITYwarnr   rD   )r   r5   rN   cfgcapss        r)   rC   $shallowcg1packer.shouldaddfilegroups_   s    zz$$T**OW) 3O X''..!13HICh!!%2X7!2**d2!! Q?@Ar9   c                  > [        U[        R                  5      (       d  [        TU ]  XU5      $ U R                  n/ nU HD  nUR                  UR                  US9nUR                  5       U;  d  M3  UR                  U5        MF     U$ )N)fileid)	r   r   r   pruner0   filectxfilenamelinkrevappend)	r   r!   missingr2   rN   resultsfnodefctxr7   s	           r)   r`   shallowcg1packer.prune~   sv    $ ; ;<<7=
;;zzE<<e<<D||~Z/u%  r9   c              #    #    SnX1R                   :X  a1  UR                  U5      n[        R                  " [	        U5      5      nOUR                  X25      nUR                  U5      u  pxUR                  U5      n	U R                  X'XXI5      n
X-  n
[	        U
5      [	        U5      -   n[        R                  " U5      v   U
v   Uv   g 7f)Nr9   )nullidrawdatar   trivialdiffheaderr   revdiffr   flagsbuilddeltaheaderr   chunkheader)r   revlognodeprevnoder(   prefixdeltap1p2ro   metals               r)   r   shallowcg1packer.nodechunk   s     }}$NN4(E,,SZ8F NN82E%T"$$TrXMIE
"%%a((
s   CC	 NN)__name__
__module____qualname____firstlineno__r1   r   rG   rC   r`   r   __static_attributes____classcell__)r7   s   @r)   r,   r,   6   s'    


D6>
 r9   r,   c                   [         R                  " U5      (       d  U " XX4/UQ70 UD6$ UR                  n US:X  a  UR                  S5      nS n	S n
U=(       d    /  H  nUR	                  S5      (       a*  U[        S5      S  nU(       a  UR                  S5      n	MA  MC  UR	                  S5      (       d  M[  U[        S5      S  nU(       d  Mr  UR                  S5      n
M     U	(       d  U
(       a)  [        R                  " UR                  SS X5      Ul        O[        R                  " 5       Ul        U " XX4/UQ70 UD6Xql        $ ! Xql        f = f)NrS   
bundlecapss   includepattern=    s   excludepattern=r9   )
r   r/   rF   get
startswithr   splitr
   rootalways)origrN   outgoingversionr5   rI   r6   originalr   includepatternexcludepatterncapraws                r)   makechangegroupr      s1     &&DGEdEfEE  H%XL1J!N!N!'R'>>"455c"4578C),5)9 ^^$677c"4578Cs),5)9 ( $)KKIIsD.%! %*LLN!DGEdEfE$Hs   A=E 7E A2E Ec           	     J  ^^%^&^' [         R                  " T5      (       d  U " TX#XE/UQ70 UD6$ Sn[        5       n	0 m'/ m&TR                  R	                  [        S5      US9n
 UR                  5       nU(       d  OUS   nTR                  R                  SU-  5        U
R                  5         TR                  U5      (       d5  TR                  U5      nUR                  5       nUR                  XU5        M  S n UR                  U5      nU(       d  O:US   nUT'X4'   T&R                  X45        X;  a  US-  nU	R                  U5        MS  Uc  [         R"                  " [        S5      5      eGM  [        5       m%U%U&UU'4S jnSn/ nT& HZ  u  nnT'UU4   nUS   US	   US
   /nU H9  nUTR$                  :X  d  UU4T';   a  M  UR                  U['        U5      45        M;     M\     TR(                  R+                  U5        T&(       Ga{  T&R-                  S5      u  nnUU4T%;   a  M&  US-  nU[/        T&5      S-   :  a  [         R"                  " [        S5      5      eTR                  U5      nT'UU4   nUu	  nnnnnnnnnU" UUUU5      (       d  M  UR1                  U5      n[2        R4                  " UU5      n [7        U [8        5      (       d  [9        U 5      n [         R:                  " U 5      u  n!n SU!;   a&  U!S   n"[=        U!S   5      n#U" UUU"U#5      (       d  GM  UU4 H'  n$U$TR$                  :w  d  M  U" UUUU$5      (       a  M'  M)     UR                  U U!UUUU5        T%R                  UU45        SnT&(       a  GM{  U
R?                  5         [/        T'5      U4$ )Nr   s   files)totals   filenames   adding %s revisions
r   s#   received file revlog group is emptyc                   > UTR                   :w  a6  X#4T;  a/  X#4T;  a  gTR                  SX45        TR                  SX#45        gg)NTr   F)rk   r   )rP   rs   depfdepnode	processedqueuerN   revisiondatass       r)   	available&addchangegroupfiles.<locals>.available   sM    dkk!toY&F?m3 LLQI&LLTO,r9   r      s   circular node dependencys   copys   copyrev) r   r/   setrU   makeprogressr   filelogheaderdebug	incrementrF   r@   	deltaiteraddgroup
deltachunkrd   addr	   rB   rk   r   fileserviceprefetchpopr   rl   r   patchr   bytes	parsemetar   complete)(r   rN   r5   revmaptrpexpectedfilesrI   r6   newfilesvisitedprogress	chunkdatarP   fldeltaschainrevisiondatar   	skipcountprefetchfilesrs   
dependents	dependentrw   rx   r(   	deltabaserv   ro   sidedataproto_flagsbasetextry   copyfromcopynoder$   r   r   r   s(    `                                   @@@r)   addchangegroupfilesr      s      &&D&#NtNvNNHeGME ww##AhK}#EH
((*	k".23  ##1B%%'FKK, ",,U3L OE(4M1*%LL!$AA/ 2 =++a FGHHS V I  I M4$aY/"1o|AQH
#IDKK'Ay>]+J  !S^!45 $  	m, ))A,4t9	!Q	s5zA~%++a ;<==YYq\$aY/ 
	
 D!Y//zz)${{4'$&&;D **40
dd?G}H4
+,HQh99bADKK D!Q// 
 	tT3"b1q$i 	_ %b }x''r9   r}   )
__future__r   mercurial.i18nr   mercurial.noder   r   	mercurialr   r   r	   r
   r    r   r   r   rD   rW   rT   r*   cgpackerr,   r   r   r|   r9   r)   <module>r      sZ    #  #   
0c{++ cL%>R(r9   