
    6h.,                       S SK Jr  S SKrS SKJr  S SKJrJrJrJ	r	J
r
JrJrJrJrJrJrJr  SrSrSrSrS	rS
rSrSrSrSr\R8                  " \5      r\R8                  " \5      r    SS jrS r S r!\RD                  " \\\45      S 5       r#\RD                  " \5      S 5       r$\RD                  " \5      S 5       r%S r&S r'g)    )annotationsN)_)bundle2changegrouperrorexchange	localrepo
narrowspecrepairrequirementsscmutiltransactionutilwireprototypess	   narrowacls   narrow:changespecs   narrow:responsespecs   narrow:specs   includes   excludes   KILLs   DONEs   >20s20s20sls   >20s20s20s20slc                   UR                   R                  SS5      (       d   eUR                  S5      nU V	s/ s H!  n	U	[        R                  " U5      ;   d  M  U	PM#     nn	U(       d  [        [        S5      5      e[        U5      n
[        [        [        UR                  S/ 5      5      5      n[        [        [        UR                  S/ 5      5      5      n[        U UUUU
UUUR                  SS 5      5        g s  sn	f )N   experimental   narrowservebrokenellipses   changegroups   no common changegroup versionincludepatsexcludepatsdepth)ui
configboolgetr   supportedoutgoingversions
ValueErrorr   maxsortedfilterboolgenerateellipsesbundle2)bundlerreposource
bundlecapsb2capsheadscommonkwargs
cgversionsvversionincludeexcludes                </usr/lib/python3/dist-packages/hgext/narrow/narrowbundle2.pygetbundlechangegrouppart_narrowr0   +   s     77o/KLLLLN+J A55d;; 	
  
 ;<==*oGVD&**]B"?@AGVD&**]B"?@AG

7D!	s   C>C>c           
        [         R                  " UR                  X#S9nUb3  [        U5      nUS:  a"  [        R
                  " [        S5      U-  5      e[        U=(       d    UR                  5       5      n[        U=(       d    UR                  /5      n[        R                  " XU[        5       XS9u  pnUR                  R                  S[        U
5      -  5        U	(       a  [        R                   " UUUSUS LUU
S9nUR#                  XYSS	5      nU R%                  S
US9nUR'                  SU5        [(        R*                  " U5      (       a  UR'                  SS5        g g g )N)r-   r.      s   depth must be positive, got %d)r   s   Found %d relevant revs
Tmatcherellipsesshallowellipsisroots	fullnodesF   narrow_widenr   data   version   treemanifest   1)r
   matchrootintr   Abortr   setr'   nullidr   _computeellipsisr   debuglenr   
getbundlergeneratenewpartaddparamr   istreemanifest)r"   r#   r-   r.   r,   r(   r'   r   r?   
visitnodesrelevant_nodesr7   packercgdataparts                  r/   r!   r!   O   s;    TYYIEE
19++a ABUJKK%&E(DKK=)F080I0IeSUE1-J 	GGMM-N0CCD''%'$
 UOL~F;j'*!!$''MM/40 (     c           
     <  ^^ [        U=(       d    TR                  /5      nU Vs1 s H  nTR                  R                  U5      iM      nnUmUU4S jn	U R	                  [
        U	" 5       S9  [        R                  " T[        5       XXU5      u  pnU
(       a~  [        R                  " UTUSSUUS9nUR                  XZSS5      nU R	                  SUS9nUR                  SU5        [        R                  " T5      (       a  UR                  S	S
5        g g g s  snf )Nc               3  z   >#    T H(  n [         v   TR                  R                  U 5      v   M*     [        v   g 7fN)_KILLNODESIGNAL	changelognode_DONESIGNAL)rdeadrevsr#   s    r/   genkills8generate_ellipses_bundle2_for_widening.<locals>.genkills   s3     A!!..%%a((  s   8;r:   TFr3   r9   r   r<   r=   r>   )rC   rD   rW   revrJ   _CHANGESPECPARTr   rE   r   rH   rI   rK   r   rL   )r"   r#   oldmatchnewmatchr,   r(   knownn	knownrevsr\   newvisitnewfullnewellipsisrO   rP   rQ   r[   s    `              @r/   &generate_ellipses_bundle2_for_wideningrh   y   s    (DKK=)F" 1661##A&I6
 H OOO(*O5%-%>%>ceV&"H{ ''%
 5/J~F;j'*!!$''MM/40 ( # 7s   %Dc                   [        UR                  R                  [        S5      R	                  5       5      n[        UR                  R                  [
        S5      R	                  5       5      n[        R                  " U5        [        R                  " U5        [        R                  U R                  R                  ;  aS  U R                  R                  R                  [        R                  5        [        R                  " U R                  5        U R                  R                  X#5        [        R                  " U R                  5        g )NrR   )rC   paramsr   _SPECPART_INCLUDE
splitlines_SPECPART_EXCLUDEr
   validatepatternsr   NARROW_REQUIREMENTr#   addr   writereporequirementssetnarrowpatscopytoworkingcopy)opinpartr   r   s       r/   _handlechangespec_2rv      s     fmm''(93?JJLMKfmm''(93?JJLMK,,**bgg.B.BB
  !@!@A%%bgg.GG+3  )rR   c                r   UR                  5       nUR                  S5      u  p4[        UR                  5       5      n[        UR                  5       5      n[        R
                  " U5        [        R
                  " U5        [        R                  U R                  R                  ;  aS  U R                  R                  R                  [        R                  5        [        R                  " U R                  5        U R                  R                  XV5        [        R                  " U R                  5        g )N    )readsplitrC   rl   r
   rn   r   ro   r#   rp   r   rq   rr   rs   )rt   ru   r;   incexcr   r   s          r/   _handlenarrowspecsr}      s    ;;=Dzz% HCcnn&'Kcnn&'K,,&&bgg.B.BB
  !@!@A%%bgg.GG+3  )rR   c                   U R                   nUR                  n[        5       n[        R                  " US5      nU[
        :w  a  U[        :X  a?  [        R                  " US5      nUR                  U5      (       a  UR                  U5        O"[        R                  " [        S5      U-  5      e[        R                  " US5      nU[
        :w  a  M  U(       a  UR                  U l         " S S[        5      n[        R                   R                  R                  X'" 5       5        ["        R$                  " U R&                  U[)        U5      SSS9nU(       a?  UR&                  R+                  5       U l        U R,                  R/                  5         Xl        [3        US	5      (       a!  U R5                  5         UR7                  5         g g )
N      s)   unexpected changespec node chunk type: %sc                      \ rS rSrS rSrg)'_handlechangespec.<locals>.dummybmstore   c                    g rU    )selfr#   trchangess       r/   applychanges4_handlechangespec.<locals>.dummybmstore.applychanges   s    rR   r   N)__name__
__module____qualname____firstlineno__r   __static_attributes__r   rR   r/   dummybmstorer      s    rR   r   Ts   widen)backuptopicsetnewnarrowpats)r#   rW   rC   r   readexactlyrY   rV   hasnoderp   r   rB   r   
_bookmarks_bookmarksbackupdictr	   localrepositoryr   stripr   listuninterruptible_widen_uninterr	__enter___widen_bundlehasattrgettransactionr   )	rt   ru   r#   clclkillschunksignalckr   	chgrpfiles	            r/   _handlechangespecr      sf   77D	B
 eG ))&!4K

$/)((4Bzz"~~B++>?+M  "--fa8 
$ "oo	4 	 	!!,,00|~FLLEE4gt8
	 !%!8!8!:B((*(
 t'((
 )rR   c           	       ^	 U R                   nU R                  nU R                  nU ?UR                  nUR	                  [        S5      5        UR                  US5      n [        R                  " X6XE5      nUR                  (       d  UR                  5       O[        R                  " 5       nU   [        U[        R                  5      (       a6  UR!                  S5       m	[        R"                  " X'U	4S j5        SSS5        O&UR%                  USSUR'                  U5      -   S5        SSS5        UR)                  5         [         R*                  " UR                  R,                  UR.                  5        U R0                  R3                  SSS5        UR5                  U5        g! , (       d  f       N= f! , (       d  f       N= f! UR)                  5         f = f)zFChangegroup exchange handler which restores temporarily-stripped nodess   adding branch
s   rbs   stripc                    > T $ rU   r   )r   s   r/   <lambda>)handlechangegroup_widen.<locals>.<lambda>#  s    RrR   Ns   bundle:T)r#   r   r   vfsnoter   openr   
readbundleverbosesilentr   nullcontextmanager
isinstancer   
unbundle20r   processbundleapplyjoinclosecleanup_undo_fileswarnvfs_mapr   __exit__unlink)
rt   ru   r#   r   r   r   fgenmaybe_silentr   s
            @r/   handlechangegroup_widenr     s_    77D	B  I

((CGGA !"E"A!!"8  "zzBIIKt/F/F/H 	 #w1122%%h/2))$Z@ 0/ 		(J)1D$Dd  	
	""477<<> dD1JJy 0/ \ 	
	s=   !AG
 01F9!F(=/F9,G
 (
F6	2F99
GG
 
Gc                 ,  ^^ [         R                  n SU S'   SU S'   SU S'   SU S'   SU S'   [        R                  S	   mU4S
 jnU[        R                  S	'   [        R
                  S	   mU4S jnTR                  Ul        U[        R
                  S	'   g)z?Enable narrow repo support in bundle2-related extension points.s   booleans   narrows   plains   depths   csvs   oldincludepatss   oldexcludepatss   knownr   c                   > U S   nUR                   R                  [        5      (       a  [        R                  " X!5      nUR                  SS5      (       a-  UR                   R                  SS5      (       a  [        U 0 UD6  g T" U 0 UD6  g )Nr2   narrowFr   r   )r   has_section_NARROWACL_SECTIONr   applynarrowaclr   r   r0   )argsr)   r#   origcgfns      r/   wrappedcgfnsetup.<locals>.wrappedcgfn?  s{    Aw77122,,T:F::h&&477+=+=9,
 ,
 ,T<V<d%f%rR   c                   > T" X5        [        U S5      (       a  [        X5        [        U S5      (       aA  [        R                  R                  R                  U R                  U R                  5        U ?g g )Nr   r   )r   r   r	   r   r   rC   r#   r   )rt   ru   origcghandlers     r/   wrappedcghandlersetup.<locals>.wrappedcghandlerP  sd    b!2''#B/2)**%%0044,, #	 +rR   N)r   GETBUNDLE_ARGUMENTSr   getbundle2partsmappingr   parthandlermappingrj   )getbundleargsr   r   r   r   s      @@r/   setupr   2  s    "66M)M)&M('-M#$'-M#$$M( ..~>H
& 7BH##N3 ..~>M$ ,221AG~.rR   )NNNN)(
__future__r   structmercurial.i18nr   	mercurialr   r   r   r   r	   r
   r   r   r   r   r   r   r   r_   	_RESSPECS	_SPECPARTrk   rm   rV   rY   _ELIDEDCSHEADER_ELIDEDMFHEADERcalcsize_CSHEADERSIZE_MFHEADERSIZEr0   r!   rh   parthandlerrv   r}   r   r   r   r   rR   r/   <module>r      s   #      " &"		   #00 
!H'1T:1z 	Y!24E FG* H*" 	Y*  * 	_%1  &1 h"J)BrR   