
    6h                        S SK Jr  SSKJr  SSKJr  SSKJr  SSKJ	r	JrJ
r
Jr  SSKJr  S	 rS
 r " S S\5      rS rg)    )annotations   )sha1nodeconstants   )INDEX_ENTRY_V0)_)errornoderevlogutilsutil)nodemapc                    [        U S-	  5      $ )N   intqs    @/usr/lib/python3/dist-packages/mercurial/revlogutils/revlogv0.py	getoffsetr      s    qBw<    c                    [        U S-  5      $ )Ni  r   r   s    r   gettyper       s    q6z?r   c            
      8  ^  \ rS rSrSr\R                  r\R                  " SS\
R                  \
R                  \
R                  \
R                  \R                  S9r\R                   S 5       rS rS rS rU 4S jrU 4S	 jrS
 rS rS rS rSS jrSrU =r$ )revlogoldindex$   r   data_offsetdata_compressed_lengthdata_delta_baselink_revparent_rev_1parent_rev_2node_idc                    [         R                  " [        R                  [        R
                  05      n[        S[        U 5      5       H  nX   S   nX!U'   M     U$ )Nr      )nodemaputilNodeMapr   nullidr
   nullrevrangelen)selfr   rns       r   _nodemaprevlogoldindex._nodemap1   sP    %%'8'?'?&NOq#d)$A
AAJ % r   c                    XR                   ;   $ )z*return True if the node exist in the indexr/   r,   r
   s     r   has_noderevlogoldindex.has_node9   s    }}$$r   c                     U R                   U   $ )zIreturn a revision for a node

If the node is unknown, raise a RevlogErrorr2   r3   s     r   revrevlogoldindex.rev=   s     }}T""r   c                8    U R                   R                  U5      $ )zAreturn a revision for a node

If the node is unknown, return None)r/   getr3   s     r   get_revrevlogoldindex.get_revC   s     }}  &&r   c                Z   > [        U 5      U R                  US   '   [        TU ]  U5        g )Nr%   )r+   r/   superappend)r,   tup	__class__s     r   r?   revlogoldindex.appendI   s%     #D	c!fsr   c                  > [        U[        5      (       a  UR                  S:X  a  UR                  b  [	        S5      e[        UR                  [        U 5      5       H  nU R                  X   S   	 M     [        TU ])  U5        g )Ns.   deleting slices only supports a:-1 with step 1r%   )
isinstanceslicestopstep
ValueErrorr*   startr+   r/   r>   __delitem__)r,   ir-   rA   s      r   rK   revlogoldindex.__delitem__M   sg    !U##166R<166;MNOOqwwD	*Adgaj) +Ar   c                <    U R                   R                  SS 5        g )Nr/   )__dict__pop)r,   s    r   clearcachesrevlogoldindex.clearcachesT   s    *d+r   c                P    US:X  a  U R                   $ [        R                  X5      $ )NrD   )	null_itemlist__getitem__)r,   rL   s     r   rV   revlogoldindex.__getitem__W   s$    7>>!((r   c                    g)z!pack header information in binaryr    )r,   headers     r   pack_headerrevlogoldindex.pack_header\   s    r   c                    X   n[        US   5      (       a  [        R                  " [        S5      5      e[	        US   5      US   US   US   XS      S   XS      S   US   4n[
        R                  " U6 $ )	z4return the raw binary string representing a revisionr   s'   index entry flags need revlog version 1r            r%      )r   r	   RevlogErrorr   r   r   pack)r,   r7   entrye2s       r   entry_binaryrevlogoldindex.entry_binary`   s    	58##<=  eAh!H!H!HqN1qN1!H
 ""B''r   c                H  ^ [        U 5      nUb  [        X25      nU(       d  [        R                  /$ S/US-   -  n[	        U5      nTb  U4S jU 5       nU H  nSXF'   X   nS=XGS   '   XGS   '   M     [        U5       VVs/ s H  u  phU(       d  M  UPM     snn$ s  snnf )Nr   r   c              3  6   >#    U  H  oT;  d  M
  Uv   M     g 7f)NrY   ).0r-   excluded_revss     r   	<genexpr>*revlogoldindex.headrevs.<locals>.<genexpr>|   s     >t!'=AAts   		r`   ra   )r+   minr
   r)   r*   	enumerate)	r,   rk   stop_revcountisheadrevsr-   evals	    `       r   headrevsrevlogoldindex.headrevsr   s    D	(ELL>!	"U|$>t>DAFIA*++FQ4L6A$<  !*& 19 1faS 1999s   BBrY   )NN)__name__
__module____qualname____firstlineno__rust_ext_compatr   size
entry_sizer   rd   r
   r)   r   r(   rT   r   propertycacher/   r4   r7   r;   r?   rK   rQ   rV   r[   rf   rv   __static_attributes____classcell__)rA   s   @r   r   r   $   s    O$$J!! \\\\!((I 
 %#',)
($: :r   r   c                <   [         R                  n/ n[        R                  " [        R
                  [        R                  05      nS=pg[        U 5      nXs-   U::  a  XXs-    n	Xs-  n[         R                  " U	5      n
[        R                  " U
S   U
S   U
S   U
S   UR                  U
S   [        R                  5      UR                  U
S   [        R                  5      U
S   S9nUR                  U5        XeU
S   '   US-  nXs-   U::  a  M  [        U5      nUS 4$ )	Nr   r   r   r^   r_   r`   ra   r   )r   r}   r&   r'   r
   r(   r)   r+   unpackr   rd   r:   r?   r   )datainlineuses_generaldeltasindexr   r.   offlcurrt   re   s               r   parse_index_v0r      s   AE!!4;;"=>GKAD	A
'Q,!!!#&!#$Q4aDqT QqT4<<8 QqT4<<8aD
 	R!	Q! 'Q,$ 5!E$;r   N)
__future__r   r
   r   	constantsr   i18nr    r	   r   r   r   r&   r   r   rU   r   r   rY   r   r   <module>r      sD    # $  
^:T ^:Br   