
    6hh                    l   S r 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  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JrJrJrJrJrJrJr   SSK!J"r"  SS	KJ#r$   " S
 S\R8                  5      r% " S S\%\R                  5      r& " S S\%\RN                  5      r( " S S\R*                  5      r) " S S\RT                  5      r+ " S S\RX                  5      r-S r.\/r0\Rb                  (       a  \Rd                  r0 " S S\05      r3S"S jr4S r5 " S S5      r6 " S S5      r7 S#S jr8S  r9 S"S! jr:g)$zRepository class for viewing uncompressed bundles.

This provides a read-only repository interface to bundles as if they
were part of the actual repository.
    )annotationsN   )_)hexnullrev)bundle2changegroup	changelogcmdutil	discoveryencodingerrorexchangefilelog	localrepomanifestmdiffpathutilphasespycompatrevlogrevlogutilsutilvfs)urlutil)	constantsc                     ^  \ rS rSr  SS jr\R                  U 4S j5       rU 4S jrS r	U 4S jr
S rS rS	 rS
 rSrU =r$ )bundlerevlog9   c                X   [         R                  " U5      n[        R                  R                  XX#S9  X@l        [        U 5      nUS-
  U l        [        5       U l        UR                  5        GH  nUu  pppp[        U5      nUR                  5       U-
  nU R                  R                  U5      (       a6  U R                  R                  U R                  R                  U5      5        M  X:X  a  [        nOU" U5      nX4 HN  nU R                  R                  U5      (       a  M%  [         R"                  " UU R$                  ['        S5      5      e   U R                  R                  U5      (       d*  [         R"                  " XR$                  ['        S5      5      eU R                  U5      n[(        R*                  " UUUUUU R                  U	5      U R                  U
5      US9nU R                  R-                  U5        U R                  R                  U5        US-  nGM     g )N)targetradixr   s   unknown parents   unknown delta base)flagsdata_offsetdata_compressed_lengthdata_delta_baselink_revparent_rev_1parent_rev_2node_id)vfsmodreadonlyvfsr   __init__bundlelen
repotiprevset
bundlerevs	deltaitertellindexhas_nodeaddrevr   r   LookupError
display_idr   r   entryappend)selfopenerr!   r"   
cgunpacker
linkmappern	deltadatanodep1p2cs	deltabasedeltar#   sidedatasizestartlinkrevpbasereves                         6/usr/lib/python3/dist-packages/mercurial/bundlerepo.pyr-   bundlerevlog.__init__:   s    ##F+tFH Ia%%#--/IBK?Dbiu:DOO%,Ezz""4((##DJJNN4$89z!$R.Xzz**1--++4??A.?,@   ::&&y11''2G0H  hhy)G!!!'+ ' !XXb\!XXb\	A JJa OO"FAQ 0    c              #     >#    U R                   S:  a  S v   g [        TU ]	  5        nUv   S S S 5        g ! , (       d  f       g = f7f)Nr   )r0   superreading)r=   x	__class__s     rP   rU   bundlerevlog.readingv   s1     ??Q"a #""s   $A5	A
AAc                   > XR                   ::  a  [        TU ]  R                  U5      $ U R                  R                  U R                  U5      5        U R                  R                  U R                  U5      5      $ N)	r0   rT   _inner_chunkr.   seekrK   readlength)r=   r8   rW   s     rP   r\   bundlerevlog._chunk~   s\     //!7>((--C){{C 011rR   c                v   XR                   :  a8  X R                   :  a)  U R                  U   S   nX1:X  a  U R                  U5      $ O>XR                   ::  a/  X R                   ::  a   [        R                  R	                  XU5      $ [
        R                  " U R                  U5      U R                  U5      5      $ )z1return or calculate a delta between two revisions   )r0   r5   r\   r   revdiffr   textdiffrawdata)r=   rev1rev2revbs       rP   rc   bundlerevlog.revdiff   s    //!d__&<::d#A&D|{{4(( __$)@==((T::~~dll40$,,t2DEErR   c                t  > Uc  U R                  U5      nSnS n/ nUnX`R                  :  a  U R                  R                  (       a7  U R                  R                  S   U:X  a  U R                  R                  S   nO4UR	                  U5        U R
                  U   S   nX`R                  :  a  M  U[        :X  a  SnO'Uc$  [        T
U ]!  U R                  U5      U5      nUu  pnU(       a  SnU(       a?  U R                  UR                  5       5      n	[        R                  " XI/5      nU(       a  M?  X$U4$ )NFr      rb   rR   )r8   r0   r[   _revisioncacher<   r5   r   rT   _rawtextrC   r\   popr   patches)r=   rC   r8   	validatedrawtextchainiterrevr__rH   rW   s             rP   rm   bundlerevlog._rawtext   s   ;((4.C	'**KK..q1W<++44Q7LL!jj)!,G ' gG_ 		'"A &'"BIKK		,EmmGW5G e Y&&rR   c                    [         erZ   NotImplementedErrorr=   argskwargss      rP   addrevisionbundlerevlog.addrevision       !!rR   c                    [         erZ   rx   rz   s      rP   addgroupbundlerevlog.addgroup   r   rR   c                    [         erZ   rx   rz   s      rP   stripbundlerevlog.strip   r   rR   c                    [         erZ   rx   r=   s    rP   	checksizebundlerevlog.checksize   r   rR   )r.   r2   r0   )r>   z
typing.Any)__name__
__module____qualname____firstlineno__r-   
contextlibcontextmanagerrU   r\   rc   rm   r}   r   r   r   __static_attributes____classcell__rW   s   @rP   r   r   9   sU    : :x  2
F'@"""" "rR   r   c                      \ rS rSrS rSrg)bundlechangelog   c                    [         R                   R                  X5        S n[        R                  U U[        R                  S 4U R
                  UU5        g )Nc                    U $ rZ    )rV   s    rP   <lambda>*bundlechangelog.__init__.<locals>.<lambda>   s    qrR   )r
   r-   r   revlog_constantsKIND_CHANGELOGr"   )r=   r>   r?   r@   s       rP   r-   bundlechangelog.__init__   sJ    $$T2 
,,d3JJ	
rR   r   Nr   r   r   r   r-   r   r   rR   rP   r   r      s    

rR   r   c                  6   ^  \ rS rSr  SS jrU 4S jrSrU =r$ )bundlemanifest   c                <   [         R                  R                  XX&S9  [        R                  U U[        R
                  U4U R                  R                  UU5        Uc1  0 nU R                  R                  S:X  a  [        U R                  5      nXPl        X@l        g )N)trees   03)r   manifestrevlogr-   r   r   KIND_MANIFESTLOG_revlogr"   r.   version_getfilestarts_dirlogstarts_linkmapper)r=   nodeconstantsr>   r?   r@   dirlogstartsdirs          rP   r-   bundlemanifest.__init__   s     	((f(O..4LL	
 L{{""e+-dkk:)%rR   c           	       > XR                   ;   ah  U R                  R                  U R                   U   5        [        U R                  U R
                  U R                  U R                  U R                   US9$ [        TU ]!  U5      $ )N)r   )	r   r.   r]   r   r   r>   r   rT   dirlog)r=   drW   s     rP   r   bundlemanifest.dirlog   sv    """KKT//23!""  ""  w~a  rR   )r   r   )NrR   )r   r   r   r   r-   r   r   r   r   s   @rP   r   r      s     &6! !rR   r   c                      \ rS rSrS rSrg)bundlefilelog   c                    [         R                   R                  XU5        [        U[        R                  U4U R
                  R                  UUS9U l        g )N)r!   r"   r?   r@   )r   r-   r   r   KIND_FILELOGr   r"   )r=   r>   pathr?   r@   s        rP   r-   bundlefilelog.__init__   sF      t4#$1148,,$$!!
rR   )r   Nr   r   rR   rP   r   r      s    	
rR   r   c                      \ rS rSrS rSrg)
bundlepeeri  c                    gNFr   r   s    rP   canpushbundlepeer.canpush      rR   r   N)r   r   r   r   r   r   r   rR   rP   r   r     s    rR   r   c                  >   ^  \ rS rSrU 4S jrS rS rSS jrSrU =r	$ )bundlephasecachei
  c                   > [         TU ]  " U0 UD6  [        U S5      (       a&  [        R                  " U R
                  5      U l        g g )Nr>   )rT   r-   hasattrr+   r,   r>   )r=   r{   r|   rW   s      rP   r-   bundlephasecache.__init__  s=    $)&)4"" ,,T[[9DK #rR   c                    [         erZ   rx   )r=   repos     rP   writebundlephasecache.write  r   rR   c                    [         erZ   rx   )r=   r   fps      rP   _writebundlephasecache._write  r   rR   c                \    X0R                   U'   U(       a  U R                  5         SU l        g )NT)_phaseroots
invalidatedirty)r=   r   phasenewrootstrr   s         rP   _updaterootsbundlephasecache._updateroots  s$    "*OO
rR   )r   r>   )T)
r   r   r   r   r-   r   r   r   r   r   r   s   @rP   r   r   
  s    :
"" rR   r   c                   ^  0 n[        T R                  0 5       H1  nUS   nT R                  5       X'   [        U 4S j0 5       H  nM     M3     U$ )Ns   filenamec                 &   > T R                  S 5      $ rZ   )
deltachunk)r?   s   rP   r    _getfilestarts.<locals>.<lambda>"  s    *"7"7"=rR   )iterfilelogheaderr4   )r?   filespos	chunkdatafnamechunks   `    rP   r   r     sT    H*22B7	+&$//+=rBE C 8
 OrR   c                  @  ^  \ rS rSrSrS rS rS rS rSS jr	\
R                  S 5       r\
R                  S	 5       rS
 r\
R                  S 5       rS r\
R                  S 5       r\
R                  S 5       rS rU 4S jrS rS rSS jrS rSU 4S jjrSrU =r$ )bundlerepositoryi-  a  A repository instance that is a union of a local repo and a bundle.

Instances represent a read-only repository composed of a local repository
with the contents of a bundle file applied. The repository instance is
conceptually similar to the state of a repository after an
``hg unbundle`` operation. However, the contents of the bundle are never
applied to the actual base repository.

Instances constructed directly are not usable as repository objects.
Use instance() or makebundlerepository() to create instances.
c                r   X0l         X l        U R                  R                  SSSS5        0 U l        S U l        S U l        S U l        [        R                  " US5      n[        R                  " U R                  XA5      n[        U[        R                  5      (       a  XPl        S nUR                  SS9 H]  nUR                   S:X  a  U R#                  XW5        M&  UR                   S	:X  d  M8  U(       a  [%        S
5      eUnU R'                  XW5        M_     U(       d  [(        R*                  " [-        S5      5      eUR/                  S[0        R2                  5        g [        U[4        R6                  5      (       a  U R9                  XQ5        g [(        R*                  " [-        S5      [!        U5      -  5      e)N   phasess   publishFs
   bundlerepo   rbT)seekable   phase-heads   changegroups#   can't process multiple changegroupss   No changegroups foundr   s   bundle type %r cannot be read)_tempparent_urlui	setconfig_cgfilespos_bundlefile_cgunpackertempfiler   	posixfiler   
readbundle
isinstancer   
unbundle20	iterpartstype_handle_bundle2_phase_partry   _handle_bundle2_cg_partr   Abortr   r]   osSEEK_SETr	   cg1unpacker_handle_bundle1)r=   
bundlepathurl
tempparentfr.   cgpartparts           rP   r-   bundlerepository.__init__:  sb   %	)ZF NN:u-$$TWWa<fg0011%F(($(799.33FAYY.01B  "F00> 8 kk!$<"=>> KK2;;' 7 788  4++23d6lB rR   c           
        UR                  5       (       aG  U R                  UR                  SSS9n[        R                  " U R
                  X2U R                  5      nXl        Xl        U R                  R                  S-   U l        [        R                  " U S [        R                  X R                  S   Vs/ s H  oDR                  5       PM     sn5        g s  snf )Ns   .hg10un   HG10UN)headerr   )
compressed_writetempbundler^   r   r   r   r   r   r   r
   r0   firstnewrevr   retractboundarydraftrC   )r=   r.   r   r  ctxs        rP   r    bundlerepository._handle_bundle1h  s    %%fkk:i%PA((!JF!!>>44q8LL#'(8(8(:#;<#;CXXZ#;<		
 =s   8Cc           
     T   UR                   S:X  d   eUnUR                  R                  S5      n [        U5      nUc  [
        R                  nU[
        R                  ;  a%  [        S5      nXT-  n[        R                  " U5      eUR                  R                  SS5      n[        R                  " U 5      nXg;  a#  [        S5      n[        R                  " X-  5      eUR                  5       (       a  U R                  UR                  SU-  5      n[        R                   " XcS5      U l        U R$                  R&                  S	-   U l        [
        R*                  " U S UX R(                  S   V	s/ s H  oR-                  5       PM     sn	5        g ! [         a     GNef = fs  sn	f )
Nr   s   targetphases   unsupported targetphase: %ds   versions   01s#   Unsupported changegroup version: %ss   .cg%suns   UNr   )r   paramsgetint	TypeErrorr   r  	allphasesr   r   r   r	   supportedincomingversionsr  r	  r^   getunbundlerr   r
   r0   r
  r  rC   )
r=   r.   r  cgstreamtargetphasemr   legalcgversmsgr  s
             rP   r   (bundlerepository._handle_bundle2_cg_partx  si   yyN***kkoon5	k*K  ,,Kf...01AA++a. ++//*e4!;;DA%:;C++cm,,,,TYY
W8LMH&33GuM>>44q8#'(8(8(:#;<#;CXXZ#;<		
'  		. =s   F 3F%
F"!F"c                    UR                   S:X  d   eU R                  5       n[        R                  " U5      n[        R                  " US U5        g )Nr   c                     g rZ   r   r   rR   rP   r   =bundlerepository._handle_bundle2_phase_part.<locals>.<lambda>  s    $rR   )r   
unfilteredr   binarydecodeupdatephases)r=   r.   r  unfiheadsbyphases        rP   r   +bundlerepository._handle_bundle2_phase_part  sB    yyN*** **40D,=rR   c                Z   U R                   R                  SUS9u  pEXPl        [        R                  " US5       nUR                  U5         U" S5      nU(       d  OUR                  U5        M#  SSS5        U R                   R                  U R                  SS9$ ! , (       d  f       N2= f)zWrite a temporary file to disks
   hg-bundle-)prefixsuffixwbi   Nr   )mode)r   mkstempr   r   fdopenr   open)r=   readfnr(  r  fdtemptempfptempr   s           rP   r	  !bundlerepository._writetempbundle  s    xx''}V'LYYvt$LL uU#	  % xx}}T]]}77 %$s   6B
B*c                ,    [        X R                  5      $ rZ   )r   _phasedefaultsr   s    rP   _phasecachebundlerepository._phasecache  s    &9&9::rR   c                    U R                   R                  5         [        U R                  U R                   5      nU R                   R	                  5       U l        U$ rZ   )r   changelogheaderr   svfsr4   manstart)r=   cs     rP   r
   bundlerepository.changelog  sG     	((*DIIt'7'78((--/rR   c                    g rZ   r   r   s    rP   _refreshchangelog"bundlerepository._refreshchangelog  s     	rR   c                   U R                   R                  U R                  5        U R                   R                  5         U R	                  5       R
                  R                  n[        U R                  U R                  U R                   U5      nU R                   R                  5       U l        [        R                  " U R                  XU R                  5       5      $ rZ   )r   r]   r:  manifestheaderr   r
   r8   r   r   r9  r4   	filestartr   manifestlognarrowmatch)r=   r@   	rootstores      rP   rC  bundlerepository.manifestlog  s    dmm,'')__&0044
"		4+;+;Z
	 ))..0##IIt(8(8(:
 	
rR   c                   U R                   R                  U R                  5        U R                   R                  5         U R                   R	                  5        H  nM     U R                   R                  5       U l        g)z_Consumes the manifest portion of the bundle, setting filestart so the
file portion can be read.N)r   r]   r:  rA  r3   r4   rB  )r=   rH   s     rP   _consumemanifest!bundlerepository._consumemanifest  s`     	dmm,'')%%//1E 2))..0rR   c                2    U R                     U R                  $ rZ   )r
   r:  r   s    rP   r:  bundlerepository.manstart  s    }}rR   c                r    U R                     SU R                  ;  a  U R                  5         U R                  $ )NrB  )rC  __dict__rH  rB  r   s    rP   rB  bundlerepository.filestart  s/     dmm+!!#~~rR   c                    U R                   $ rZ   )r   r   s    rP   r   bundlerepository.url  s    yyrR   c                  > U R                   (       d?  U R                  R                  U R                  5        [	        U R                  5      U l         XR                   ;   am  U R                  R                  U R                   U   5        U R                  5       R                  R                  n[        U R                  XR                  U5      $ [        TU ]-  U5      $ rZ   )r   r   r]   rB  r   r   r
   r8   r   r9  rT   file)r=   r  r@   rW   s      rP   rR  bundlerepository.file  s    !!$..1-d.>.>?D   !!$"2"21"56*4488J A/?/?LL7<?"rR   c                   U R                   R                  5         U R                  b%  U R                  R	                  U R                  5        U R
                  (       a"  [        R                  " U R
                  S5        gg)z'Close assigned bundle file immediately.NT)r   closer   r   unlinkr   shutilrmtreer   s    rP   rU  bundlerepository.close  sT     ==$HHOODMM*MM$**D1 rR   c                    gr   r   r   s    rP   cancopybundlerepository.cancopy   r   rR   c                    [        XUS9$ )N)r   remotehidden)r   )r=   r   r^  s      rP   peerbundlerepository.peer  s    $EErR   c                ,    [         R                  " 5       $ rZ   )r   getcwdr   s    rP   rb  bundlerepository.getcwd  s      rR   c                  > Uc  U R                   nU R                  R                  U5      nU R                  R                  U5      n[        S5      nU R                  R                  U:  a'  U R
                  R                  U[        U5      -  5        U R                  R                  U:  a'  U R
                  R                  U[        U5      -  5        [        TU ]%  X5      $ )Ns9   setting parent to node %s that only exists in the bundle
)
nullidr
   r8   r   r0   r   warnr   rT   
setparents)r=   rD   rE   p1revp2revr  rW   s         rP   rg  bundlerepository.setparents
  s    :B""2&""2&MN>>$$u,GGLLs2w'>>$$u,GGLLs2w'w!"))rR   )	r   r   r   r   r   rB  r
  r:  r   )rR   r   rZ   )r   r   r   r   __doc__r-   r   r   r   r	  r   unfilteredpropertycacher5  r
   r>  rC  rH  r:  rB  r   rR  rU  r[  r_  rb  rg  r   r   r   s   @rP   r   r   -  s    
,\
 
@>8 &&; '; && '
 &&
 '
1 && ' &&
 '

#2F!
* 
*rR   r   c                x   U(       a  [         R                  " [        S5      5      eU R                  SS5      nU(       d.  [        R
                  " [        R                  " 5       5      nUc  SnU(       aW  [        R                  " 5       nXV:X  a  SnO:[        R                  " U5      nUR                  U5      (       a  U[        U5      S  n[        R                  " U5      nUR                  5       nUR                  S:X  a,  UR!                  SS5      n[        U5      S:X  a  XXS   pOUu  pOXQp[#        X	U
5      $ )Ns#   cannot create new bundle repositorys   bundles   mainreporootrR      +r   r   )r   r   r   configr   findrepor   rb  r   normasprefix
startswithr/   r   r   	localpathschemesplitmakebundlerepository)r   r   createintents
createopts
parentpathcwdusrepopath
bundlenames              rP   instancer    s   kk!BCDD9o6J%%hoo&78
J ooJ'',C$$S))'C
3
DA;;=Dxx9JJtQq6Q;#-tj#$ Hj)*j99rR   c                   U(       a  S[         R                  " U5      U4-  nOSU-  n [        R                  " XSS9nSn " S S[        UR                  5      nXdl        [        R                  XBX55        U$ ! [        R
                   a    e [        R                   aS    [        R                  " 5       n [        R                  " XSS9n N! [         a    [        R                  " U5        e f = ff = f)	z?Make a bundle repository object based on repo and bundle paths.s   bundle:%s+%ss	   bundle:%sF)rw  NTc                      \ rS rSrSrg)5makebundlerepository.<locals>.derivedbundlerepositoryiX  r   N)r   r   r   r   r   r   rR   rP   derivedbundlerepositoryr  X  s    rR   r  )r   
expandpathr   r  r   RequirementError	RepoErrorr   mkdtemp	ExceptionrW  rX  r   rW   r-   )r   r~  r   r   r   r   r  s          rP   rv  rv  9  s    !:J GGZ'!!"u=
"2DNN  -Nd@K! !! ?? %%'
	%%bTBD 	MM*%		s   A9 9=C47C"C00C4c                  &    \ rS rSrS rS rS rSrg)bundletransactionmanageria  c                    g rZ   r   r   s    rP   transaction$bundletransactionmanager.transactionb  s    rR   c                    [         erZ   rx   r   s    rP   rU  bundletransactionmanager.closee  r   rR   c                    [         erZ   rx   r   s    rP   release bundletransactionmanager.releaseh  r   rR   r   N)r   r   r   r   r  rU  r  r   r   rR   rP   r  r  a  s    ""rR   r  c                       \ rS rSrS rS rSrg)getremotechanges_state_trackeril  c                z    S U l         S U l        Xl        UR                  5       U l        X l        X0l        X@l        g rZ   )r.   
bundlerepor_  localr   incomingcommonrheads)r=   r_  r  r  r  s        rP   r-   'getremotechanges_state_tracker.__init__m  s5    	  !rR   c                    U R                   (       a  U R                   R                  5          U R                  (       a   [        R                  " U R                  5        U R
                  R                  5         g ! U R
                  R                  5         f = f!  U R                  (       a   [        R                  " U R                  5        U R
                  R                  5         f ! U R
                  R                  5         f = f= frZ   )r  rU  r.   r   rV  r_  r   s    rP   cleanup&getremotechanges_state_tracker.cleanup~  s    	"%%'";;IIdkk*		!		!	";;IIdkk*		!		!s.   +B 1A: :BD1C'D'DD)r.   r  r  r  r   r_  r  N)r   r   r   r   r-   r  r   r   rR   rP   r  r  l  s    "	"rR   r  c                   [         R                  " XX5S9nUu  pxn	U(       d-   U(       a  [        R                  " U5        U/ UR
                  4$ [        U5      n
U	 Vs/ s H  oU
;  d  M
  UPM     n	n[        X(Xy5      n [        XXUS9nUR                  XR                  4$ ! [         a     Nof = fs  snf !   UR                  5         e = f)a  obtains a bundle of changes incoming from peer

"onlyheads" restricts the returned changes to those reachable from the
  specified heads.
"bundlename", if given, stores the bundle to this file path permanently;
  otherwise it's stored to a temp file and gets deleted again when you call
  the returned "cleanupfn".
"force" indicates whether to proceed on unrelated repos.

Returns a tuple (local, csets, cleanupfn):

"local" is a local repo from which to obtain the actual incoming
  changesets; it is a bundlerepo for the obtained bundle when the
  original "peer" is remote.
"csets" lists the incoming changeset node ids.
"cleanupfn" must be called without arguments when you're done processing
  the changes; it closes both the original "peer" and the one returned
  here.
)headsforcer  	onlyheads)r   findcommonincomingr   rV  OSErrorrU  r1   r  _getremotechanges_slowpathr   r  )r   r   r_  r  r  r  tmpr  r  r  	commonsetrV   statecsetss                 rP   getremotechangesr    s    , 
&
&t
PC"Ff			*% R##FI6AI#5aF6*46JE*ti
 66  		
 7s)   B# 	B3+B3 "B8 #
B0/B08Cc                   UR                  SS5      nSU;  =(       a    SU;   nU(       + =(       a=    U R                  R                  S5      =(       a    U R                  R                  S5      nU(       a  U R                  R                  5        nUR	                  SSU R
                  U R                  [        R                  " USS9S	S
.5      R                  5       n	[        R                  " XR                  5       U5      =ol        S S S 5        GOU R                  R                  S5      (       a\  U R                  R                  5        nUR	                  SSU R
                  U R                  S.5      R                  5       nS S S 5        OUcx  U R                  R                  S5      (       dX  U R                  R                  5        nUR	                  SU R                  SS.5      R                  5       nS S S 5        S U l        O[U R                  R                  5        nUR	                  SU R                  U R                  SS.5      R                  5       nS S S 5        U R                  (       a  SnOSn[         R"                  " UWX<5      =ol        U(       a  S U l        W
$ ! , (       d  f       N= f! , (       d  f       Nc= f! , (       d  f       N= f! , (       d  f       N= f)Ns   devels   legacy.exchanges   bundle2s   bundle1s	   getbundles   incomings   client)roleT)   source   common   headss
   bundlecapss   cg)r  r  r  s   changegroupsubsetr   )s   nodesr  )s   basesr  r  s   HG10BZr  )
configlistr_  capablecommandexecutorcallcommandr  r  r   
caps20to10resultr	   writechunks_forwardchunksr.   r  r   r   writebundle)r  r   r   r  r  legexcforcebundle1
canbundle2rO   b2r   cg
bundletypes                rP   _create_bundler    sn    ]]8%78FV+D
f0DL 	+JJ|,	+JJz* 
 ZZ'')Q*$||#ll#+#6#6t)#L	 fh  $/#:#:%%'$ EL *)  ::l++++-]] #.#(<<"',, &(  .- uzz'9'9:N'O'O ++-]]""'..#. &(  .  EL++-]]("'.."',,#. &(  . ??"J"J&22J 
 	
 L{ *)" .- .- .-s1   A9J)9J:.K$9K)
J7:
K
K
K*c                   U(       d  U R                   (       d`  [        U UUUUS9nU R                   (       dB  [        UR                  UR                  U5      =U l         U l        UR                  5       U l        U R                   (       a  U R                   R                  5       U l         U R                   R                  R                  U R                  U R                  5      nU R
                  (       a  U R
                  nXwR                  S   Vs/ s H  oR                  5       PM     n	nU R                  R                  5        n
U
R!                  SSS05      R#                  5       nS S S 5        [$        R&                  " XpR                  S U	S9n[)        5       Ul        [$        R,                  " UW5        U$ s  snf ! , (       d  f       N[= f)Nr  s   listkeyss	   namespacer   )r   r  )r   r  rv  baseuirootr  r  r  r   r
   findmissingr  r
  rC   r_  r  r  r  r   pulloperationr  	trmanager_pullapplyphases)r  r   r   r  r  r   r  r  r  	reponodesrO   remotephasespullops                rP   r  r    sh    !
 1ETYY2 EOe.
  ::<EL  //446OO%%11%,,ME%%
+56L6L6N+OP+OCXXZ+O	PZZ'')Q== )
 fh  * ''

Y
 45!!&,7L! Q))s   F8#F==
G)NN)NNF);rk  
__future__r   r   r   rW  typingi18nr   rC   r   r    r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r+   utilsr   r   r   r   r   r   r   r   	localpeerr   
phasecacher   r   object_bundle_repo_baseclassTYPE_CHECKINGlocalrepositoryr   r  rv  r  r  r  r  r  r   rR   rP   <module>r     s*   #  	   
     *
D"6== D"N
lI$7$7 
'!\8#:#: '!T

GOO 

$$ 
v(( &   	&66g*- g*T:D%P" "" "> <A,^IZ 15.rR   