
    6h%                        S SK Jr  S SKJrJr  SSKJr  SSKJr  SSK	J
r
Jr  SSKJr  SSKJr  SS	KJrJr   " S
 S\R(                  5      r " S S\5      rg)    )annotations)IterableIterator   )_)nullrev)errorrevlog)
repository)storageutil)	constantsrewritec                     \ rS rSr% S\S'   S\S'   S\S'   S-S	 jrS.S
 jrS/S jrS0S jrS r	S1S jr
S rS rS rS rS rS rS rS rS2S jrS rS rS rS rSSS\R2                  SS4S jrS\R8                  S4S jr     S3S jrS  rS! r S4S" jr!S# r"S$ r#S2S% jr$S& r%S' r&S( r'S5S) jr(     S6S* jr)S+ r*S,r+g)7filelog   revlog.revlog_revlogbytesnullidbool_fix_issue6528Fc           	        [         R                   " U[        R                  U4SR                  SU45      SSUS9U l        X R                  l        U R                  R                  U l        UR                  nUR                  SS5      U l	        g )N   /s   dataTF)targetradix
censorablecanonical_parent_order	try_splits   issue6528.fix-incoming)
r
   revlog_constantsKIND_FILELOGjoinr   filenamer   optionsgetr   )selfopenerpathr   optss        3/usr/lib/python3/dist-packages/mercurial/filelog.py__init__filelog.__init__$   sv    }}$1148))WdO,#(
 !%ll))~~"hh'@$G    c                    U R                   $ )zreturn an actual revlog instance if any

This exist because a lot of code leverage the fact the underlying
storage is a revlog for optimization, so giving simple way to access
the revlog instance helps such code.
)r   r%   s    r)   
get_revlogfilelog.get_revlog5   s     ||r,   c                ,    [        U R                  5      $ N)lenr   r.   s    r)   __len__filelog.__len__>   s    4<<  r,   c                6    U R                   R                  5       $ r2   )r   __iter__r.   s    r)   r7   filelog.__iter__A   s    ||$$&&r,   c                    XR                   [        4;   a  g U R                  R                  U5        g! [        [
        [        [        R                  4 a     gf = f)NFT)	r   r   r   rev	TypeError
ValueError
IndexErrorr	   LookupErrorr%   nodes     r)   hasnodefilelog.hasnodeD   sO    KK))	LLT":z53D3DE 		s   4 $AANc                4    U R                   R                  XS9$ )N)startstop)r   revsr%   rD   rE   s      r)   rF   filelog.revsN   s    ||  u 88r,   c                8    U R                   R                  U5      $ r2   )r   parentsr?   s     r)   rJ   filelog.parentsQ       ||##D))r,   c                8    U R                   R                  U5      $ r2   )r   
parentrevsr%   r:   s     r)   rN   filelog.parentrevsT       ||&&s++r,   c                8    U R                   R                  U5      $ r2   )r   r:   r?   s     r)   r:   filelog.revW   s    ||%%r,   c                8    U R                   R                  U5      $ r2   )r   r@   rO   s     r)   r@   filelog.nodeZ   s    ||  %%r,   c                l    [         R                  " U R                  XR                  R                  5      $ r2   )r   fileidlookupr   
display_idr?   s     r)   lookupfilelog.lookup]   s(    ''LL$ 7 7
 	
r,   c                8    U R                   R                  U5      $ r2   )r   linkrevrO   s     r)   r\   filelog.linkrevb   s    ||##C((r,   c                8    U R                   R                  X5      $ r2   )r   commonancestorsheads)r%   node1node2s      r)   r_   filelog.commonancestorsheadse   s    ||00>>r,   c                8    U R                   R                  U5      $ r2   )r   descendants)r%   rF   s     r)   rd   filelog.descendantsi   s    ||''--r,   c                8    U R                   R                  X5      $ r2   )r   headsrG   s      r)   rg   filelog.headsl   s    ||!!%..r,   c                8    U R                   R                  U5      $ r2   )r   childrenr?   s     r)   rj   filelog.childrenp       ||$$T**r,   c                8    U R                   R                  U5      $ r2   )r   
iscensoredrO   s     r)   rn   filelog.iscensoreds   rQ   r,   c                8    U R                   R                  U5      $ r2   )r   revisionr?   s     r)   rq   filelog.revisionv   rl   r,   c                8    U R                   R                  U5      $ r2   )r   rawdatar?   s     r)   rt   filelog.rawdatay   rL   r,   c           
     @    U R                   R                  UUUUUUUS9$ )N)
nodesorderrevisiondataassumehaveparentrevisions	deltamodesidedata_helpers
debug_info)r   emitrevisions)r%   nodesrw   rx   ry   rz   r{   r|   s           r)   r}   filelog.emitrevisions|   s5     ||))!%&?-! * 
 	
r,   c	                B    U R                   R                  UUUUUUUUS9$ )N)r@   flags
cachedelta)r   addrevision)	r%   rx   transactionr\   p1p2r@   r   r   s	            r)   r   filelog.addrevision   s8     ||''! ( 	
 		
r,   c	                \   U(       a  [         R                  " [        S5      5      eU R                  R	                  U5         U R
                  (       a!  [        R                  " U R                  U5      nU R                  R                  UUUUUUUS9sS S S 5        $ ! , (       d  f       g = f)Ns:   revlog storage does not support missing parents write mode)addrevisioncbduplicaterevisioncbr|   delta_base_reuse_policy)	r	   Abortr   r   _writingr   r   filter_delta_issue6528addgroup)	r%   deltas
linkmapperr   r   r   maybemissingparentsr|   r   s	            r)   r   filelog.addgroup   s     ++*  \\"";/"" 77fM<<((+$7%(? ) 	 0//s   AB
B+c                8    U R                   R                  U5      $ r2   )r   getstrippoint)r%   minlinks     r)   r   filelog.getstrippoint   s    ||))'22r,   c                8    U R                   R                  X5      $ r2   )r   strip)r%   r   r   s      r)   r   filelog.strip   s    ||!!'77r,   c                6    U R                   R                  XUS9$ )N)	tombstone)r   censorrevision)r%   trr@   r   s       r)   r   filelog.censorrevision   s    ||**2y*IIr,   c                6    U R                   R                  5       $ r2   )r   filesr.   s    r)   r   filelog.files   s    ||!!##r,   c                L    [         R                  " U R                  U5      5      $ r2   )r   filtermetadatarq   r?   s     r)   readfilelog.read   s    ))$--*=>>r,   c                    U(       d  UR                  S5      (       a  [        R                  " X!5      nU R                  XXEU5      nU R	                  U5      $ )Ns   
)
startswithr   packmetar   r@   )r%   textmetar   linkr   r   r:   s           r)   addfilelog.add   sE    4??7++''3Dt$B?yy~r,   c                .    [         R                  " X5      $ r2   )r   filerevisioncopiedr?   s     r)   renamedfilelog.renamed   s    --d99r,   c                    U R                  U5      nU R                  U5      (       a  gU R                  U5      (       a  [        U R	                  U5      5      $ U R
                  R                  U5      $ )z#return the size of a given revisionr   )r@   rn   r   r3   r   r   size)r%   r:   r@   s      r)   r   filelog.size   s\     yy~??3<<tyy'' ||  %%r,   c                :    [         R                  " XU5      (       + $ )z`compare text with a given file revision

returns True if text is different than what is stored.
)r   filedataequivalentr%   r@   r   s      r)   cmpfilelog.cmp   s    
 11$dCCCr,   c                8    U R                   R                  U5      $ r2   )r   verifyintegrity)r%   states     r)   r   filelog.verifyintegrity   s    ||++E22r,   c                <    U R                   R                  UUUUUS9$ )N)exclusivefilessharedfilesrevisionscounttrackedsize
storedsize)r   storageinfo)r%   r   r   r   r   r   s         r)   r   filelog.storageinfo   s/     ||'')#)#! ( 
 	
r,   c                    [        U[        5      (       d  SnXB-  n[        R                  " U5      eU R                  R
                  " XR                  40 UD6$ )Ns#   expected filelog to clone(), not %r)
isinstancer   r	   ProgrammingErrorr   clone)r%   r   
destrevlogkwargsmsgs        r)   r   filelog.clone  sM    *g..8CC((--||!!"&8&8CFCCr,   )r   r   r   F)returnr   )r   int)r   zIterator[int])r   N)NN)NNFNN)r,   )r   z#Iterable[repository.iverifyproblem])FFFFF),__name__
__module____qualname____firstlineno____annotations__r*   r/   r4   r7   rA   rF   rJ   rN   r:   r@   rY   r\   r_   rd   rg   rj   rn   rq   rt   r   CG_DELTAMODE_STDr}   r
   REVIDX_DEFAULT_FLAGSr   r   r   r   r   r   r   r   r   r   r   r   r   r   __static_attributes__ r,   r)   r   r      s   MH"!'9*,&&

)?./+,+* "'--
6 ))
6  ! $B38J$?:&D3
 
"Dr,   r   c                  N   ^  \ rS rSrSrSU 4S jjrU 4S jrU 4S jrS rSr	U =r
$ )	narrowfilelogi  z0Filelog variation to be used with narrow stores.c                .   > [         TU ]  XUS9  X0l        g )N)r   )superr*   _narrowmatch)r%   r&   r'   narrowmatchr   	__class__s        r)   r*   narrowfilelog.__init__  s    ;'r,   c                h   > [         TU ]  U5      nU(       a  U R                  US   5      (       d  g U$ )Nr   )r   r   r   )r%   r@   resr   s      r)   r   narrowfilelog.renamed  s2    god#  t((Q00
r,   c                   > U R                  U5      n[        TU ]	  U5      (       a  [        U R	                  U5      5      $ [        TU ]  U5      $ r2   )r@   r   r   r3   r   r   )r%   r:   r@   r   s      r)   r   narrowfilelog.size.  sC     yy~7?4  tyy''7<$$r,   c                ~    U R                  U R                  U5      5      (       a  US:g  $ U R                  U5      U:g  $ )Nr,   )rn   r:   r   r   s      r)   r   narrowfilelog.cmp7  s8     ??488D>**3;yy$&&r,   )r   r   )r   r   r   r   __doc__r*   r   r   r   r   __classcell__)r   s   @r)   r   r     s    :(,%	' 	'r,   r   N)
__future__r   typingr   r   i18nr   r@   r    r	   r
   
interfacesr   utilsr   revlogutilsr   r   r   ifilestorager   r   r   r,   r)   <module>r      sN    #
   oDj%% oDd/'G /'r,   