HEX
Server: Apache
System: Linux p102.lithium.hosting 4.18.0-553.141.1.el8_10.x86_64 #1 SMP Fri Jul 10 17:48:02 UTC 2026 x86_64
User: bvzmoamr (9955)
PHP: 8.1.34
Disabled: syslog
Upload Files
File: //proc/thread-self/root/lib64/python2.7/site-packages/mercurial/manifest.pyo
�
1�3\c@@sddlmZddlZddlZddlZddlZddlmZddlm	Z	m
Z
mZmZddl
mZmZmZmZmZmZmZddlmZejd�ZejZd	�Zd
�Zdefd��YZd
efd��YZd�Zd�Z defd��YZ!y
ej"Z!Wne#k
rTnXej$ej%�defd��Y�Z&de'd�Z(d�Z)d�Z*d�Z+d�Z,defd��YZ-dej.fd��YZ/ej$ej0�defd��Y�Z1ej$ej2�d efd!��Y�Z3ej$ej4�d"efd#��Y�Z5ej$ej6�d$efd%��Y�Z7ej$ej4�d&efd'��Y�Z8ej$ej6�d(efd)��Y�Z9d*e-fd+��YZ:d,e9fd-��YZ;d.e1fd/��YZ<dS(0i(tabsolute_importNi(t_(tbinthextnullidtnullrev(terrortmdifftpolicytpycompatt
repositorytrevlogtutil(t
interfaceutiltparserscc@s�|r%|ddkr%td��nd}x�|j�D]�}|dk	re||kretd��n|}|jd�\}}t|�dkr�|t|d �|dfVq8|t|�dfVq8WdS(Ni����s
s"Manifest did not end in a newline.s#Manifest lines not in sorted order.si(t(t
ValueErrortNonet
splitlinestsplittlenR(tdatatprevtltftn((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyt_parse&scC@sjg}g}xD|D]<\}}}|j|�|jd|t|�|f�qWt|�dj|�S(Ns%s%s%s
R(tappendRt_checkforbiddentjoin(tittfilestlinesRRtfl((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyt_text9s
$
tlazymanifestitercB@s)eZd�Zd�Zd�ZeZRS(cC@sd|_||_dS(Ni(tpostlm(tselfR%((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyt__init__Fs	cC@s|S(N((R&((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyt__iter__JscC@s�y|jj|j�\}}Wntk
r8t�nX|dkr\|jd7_|dS|jd7_|jd|�}|||!S(Ni����iis(R%t_getR$t
IndexErrort
StopIterationtfind(R&RR$tzeropos((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pytnextMs

(t__name__t
__module__R'R(R.t__next__(((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR#Es			tlazymanifestiterentriescB@s)eZd�Zd�Zd�ZeZRS(cC@s||_d|_dS(Ni(R%R$(R&R%((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR'\s	cC@s|S(N((R&((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR(`scC@s�y|jj|j�\}}Wntk
r8t�nX|dkrX|jd7_|S|jd|�}t||jj|j|dd�}|jj||j|�}|jd7_|||!||fS(Ni����isi((	R%R)R$R*R+R,t	unhexlifyt	extrainfot	_getflags(R&RR$R-thashvaltflags((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR.cs

(R/R0R'R(R.R1(((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR2[s			cC@s8t||||!�}|r4|t|d@�7}n|S(Ni�(Rtchr(RtextraR$tlengthts((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR3tscC@s||k||kS(N((tatb((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyt_cmpzst
_lazymanifestcB@s�eZdddd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d�Zd	�Zd
�Z
d�Zd�Zd
�Zd�Zed�Zd�Zd�Zd�Zd�Zd�ZRS(cC@sw|dkrL|j|�|_dgt|j�|_||_g|_n'||_||_||_||_dS(Ni(Rt	findlinest	positionsRR4Rt	extradata(R&RRAR4RB((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR'~s	


cC@s�|s
gS|jd�}|dks5|ddkrDtd��ndg}||jd� }x�|t|�dkr�|dkr�|j|d�||d|jd|d�!}||kr�td��n|}|jd|d�}qcW|S(Ns
i����s"Manifest did not end in a newline.isis#Manifest lines not in sorted order.(R,RRR(R&RR$RARtnexts((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR@�s	%!cC@s<|j|}|dkr&|j|fS|j|ddfS(Niii����(RARRB(R&tindexR$((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR)�s

cC@sA|dkr-|j||jjd|d�!S|j|ddS(Nisi(RR,RB(R&R$((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyt_getkey�s!cC@s�d}t|j�d}x|||kr�||d}|j|}|j|�}t||�}|dkrq|S|dkr�|d}q|d}qWdS(Niiii����(RRARER>(R&tkeytfirsttlasttmidpointtnextpost	candidatetr((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pytbsearch�s

cC@s�d}t|j�d}x�||kr�||d}|j|}|j|�}t||�}|dkrw|tfS|dkr�|d}q|d}qW|tfS(Niii(RRARER>tTruetFalse(R&RFRGRHRIRJRKRL((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pytbsearch2�s


cC@s|j|�dkS(Ni����(RM(R&RF((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyt__contains__�scC@sY|d}|jd|�}|dkr;t|�d}n||krKdS|j||!S(Ni)s
i����iR(R,RR(R&RtneedleR$tstarttend((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR5�s
cC@s�t|t�std��n|j|�}|dkrBt�n|j|�\}}|dkru|d|dfS|jd|�}t||j||dd�}|j	|||�}||fS(Ns'getitem: manifest keys must be a bytes.i����iisi((
t
isinstancetbytest	TypeErrorRMtKeyErrorR)R,R3R4R5(R&RFRRRR$R-R6R7((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyt__getitem__�s	 cC@s�|j|�\}}|s$t�n|j|}|j| |j|d|_|j| |j|d|_|dkr�|j| d|j|d|_ndS(Niis(RPRXRAR4R(R&RFRRtfoundtcur((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyt__delitem__�s	
cC@s�t|t�std��nt|t�s@t|�dkrOtd��n|d}t|t�s�dt|�ko�dknr�td��n|d}t|�dkr�|d	 }nt|t�s�t|�dkr�td
|��n|j|�\}}|r�|j|}|dkrN|||df|j|d<q�|jj|||df�t|j�|j|<nk|jj|||df�|j| t|j�g|j||_|j	| dg|j	||_	dS(Ns-setitem: manifest keys must be a byte string.is1Manifest values must be a tuple of (node, flags).iiis"node must be a 20-byte byte stringii����s'flags must a 0 or 1 byte string, got %r(
RURVRWttupleRRPRARBRR4(R&RFtvalueR6R7RRRZR$((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyt__setitem__�s."
3

"
",cC@st|j|j|j|j�S(N(R?RRAR4RB(R&((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pytcopyscC@s6t|j�dkrdSg}d}d}d}dgt|j�|_x�|t|j�kr|j|dkrP|j|}|}xotr�||j|<|d7}|t|j�ks�|j|dkr�Pn||j||7}|j|}q�W|jjd|�}|dkr(|d7}n|||7}|j|j||!�qMx�|t|j�kr|j|dkr|j|}|j|d}|j|j|��||j|<t|d�dkr�t	|dd�|j|<n|t|d�7}|d7}qSWqMWdj
|�|_g|_dS(Niis
i����iiR(RRBRAR4RNRR,Rt_packtordR(R&Rtlast_cuttitoffsetR[tend_cuttt((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyt_compactsD
	

(
+

cC@s*|ddt|dd �|ddS(Nisiiis
(R(R&td((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyRa?scC@s|j�|jS(N(RhR(R&((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyttextBs
cC@s�i}x�|j�D]|\}}}||krG||fdf||<q||}||f|kr|||f|f||<q|rd||<qqWxB|j�D]4\}}}||kr�d||ff||<q�q�W|S(s2Finds changes between the current manifest and m2.RN(NR(NR(titerentriesR(R&tm2tcleantdifftfnte1R7te2((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyRnFs
cC@s
t|�S(N(R2(R&((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyRk[scC@s
t|�S(N(R#(R&((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pytiterkeys^scC@s
t|�S(N(R#(R&((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR(ascC@s
t|j�S(N(RRA(R&((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyt__len__dscC@sOtd�}x<|j�D].\}}}||�r||f||<qqW|S(NR(R?Rk(R&tfilterfntcRRR!((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyt
filtercopygs
N(R/R0RR'R@R)RERMRPRQR5RYR\R_R`RhRaRjRORnRkRrR(RsRv(((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR?}s*											
			&						tmanifestdictcB@s"eZdd�Zd�Zd�Zd�Zd�ZeZd�Zd�Z	d�Z
d	�Zd
�Zd�Z
dd�Zed
��Zd�Zd�Zd�Zd�Zd�Zded�Zd�Zdd�Zdd�Zd�Zd�Zd�Zd�Zd�Z d�Z!RS(RcC@st|�|_dS(N(R?t_lm(R&R((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR'vscC@s|j|dS(Ni(Rx(R&RF((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyRYyscC@s|j|S(N(Rx(R&RF((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR,|scC@s
t|j�S(N(RRx(R&((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyRsscC@st|j�dkS(Ni(RRx(R&((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyt__nonzero__�scC@s#||j|d�f|j|<dS(NR(R7Rx(R&RFtnode((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR_�scC@s|dkrtS||jkS(N(RRORx(R&RF((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyRQ�scC@s|j|=dS(N(Rx(R&RF((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR\�scC@s
|jj�S(N(RxR((R&((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR(�scC@s
|jj�S(N(RxRr(R&((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyRr�scC@st|j��S(N(tlistRr(R&((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pytkeys�scC@s`|r1|j|�}|j|�}|j|�S|j|�}td�|j�D��}|S(s7Set of files in this manifest that are not in the othercs@s/|]%\}}|dddkr|VqdS(iiN(R(t.0tfilepatht	hashflags((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pys	<genexpr>�s	(tmatchest
filesnotinRntsett	iteritems(R&Rltmatchtm1RnR((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR��s
	cC@s
tj|�S(N(Rtdirs(R&((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyt_dirs�scC@s|jS(N(R�(R&((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR��scC@s
||jkS(N(R�(R&tdir((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pythasdir�sc@sP|j�}t|�dkoO|j�pO|j�oOt�fd�|D��S(snChecks whether we can correctly and quickly iterate over matcher
        files instead of over manifest files.idc3@s|]}|�kVqdS(N((R}Ro(R&(s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pys	<genexpr>�s(RRtisexacttprefixtall(R&R�R((R&s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyt_filesfastpath�scc@s�|j�r,xt|�D]}|VqWdSt|j��}|j|�rmxt|�D]}|VqZWdSx>|D]6}||kr�|j|�n||�rt|VqtqtW|jd�x6t|�D](}|j|�s�|j	|d�q�q�WdS(s�Generates matching file names.

        Equivalent to manifest.matches(match).iterkeys(), but without creating
        an entirely new manifest.

        It also reports nonexistent files by marking them bad with match.bad().
        Nt.(talwaystiterR�RR�tsortedtremovetdiscardR�tbadR(R&R�RtfsetRo((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pytwalk�s$		

cC@s�|j�r|j�S|j|�rrt�}|j}x4|j�D]&}||krD|||j|<qDqDW|St�}|jj|�|_|S(s6generate a new manifest filtered by the match argument(R�R`R�RwRxRRv(R&R�tmR%Ro((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR��s
			cC@sM|r7|j|�}|j|�}|j|d|�S|jj|j|�S(szFinds changes between the current manifest and m2.

        Args:
          m2: the manifest to which this manifest should be compared.
          clean: if true, include files unchanged between these manifests
                 with a None value in the returned dictionary.

        The result is returned as a dict with filename as key and
        values of the form ((n1,fl1),(n2,fl2)), where n1/n2 is the
        nodeid in the current/other manifest and fl1/fl2 is the flag
        in the current/other manifest. Where the file does not exist,
        the nodeid will be None and the flags will be the empty
        string.
        Rm(R�RnRx(R&RlR�RmR�((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyRn�s
cC@s|||f|j|<dS(N(Rx(R&RFtflag((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pytsetflagscC@s,y|j|dSWntk
r'|SXdS(Ni(RxRX(R&RFtdefault((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pytgets
cC@s,y|j|dSWntk
r'|SXdS(Ni(RxRX(R&RFR�((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR7
s
cC@st�}|jj�|_|S(N(RwRxR`(R&Ru((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR`s	cC@sd�|jj�D�S(Ncs@s|]}|d VqdS(iN((R}tx((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pys	<genexpr>s(RxRk(R&((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pytitemsscC@sd�|jj�D�S(Ncs@s|]}|d VqdS(iN((R}R�((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pys	<genexpr>s(RxRk(R&((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR�scC@s
|jj�S(N(RxRk(R&((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyRkscC@s
|jj�S(N(RxRj(R&((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyRj!scC@s�g}d}d}dg}d}tj|�}t|�}t|�dkr�x!|D]\}	}
t||	|�\}}|
s�|j|	\}}
d|	t|�|
f}n+||kr�tt	d�|	��nd}|dk	r+||kr+||kr+||kr|}n|rn|j
|�qnqU|dk	rY|j
||dj|�g�n|}|}|g}qUW|dk	r�|j
||dj|�g�nt||�\}}n6t
|j��}tjtj|�tj|��}||fS(s�Given a base manifest text as a bytearray and a list of changes
        relative to that text, compute a delta that can be used by revlog.
        Rii�s%s%s%s
s!failed to remove %s from manifestN(RRtbufferR{Rt_msearchRxRtAssertionErrorRRRt
_addlistdeltat	bytearrayRjRttextdiff(R&tbasetchangestdeltatdstarttdendtdlineRStaddbufRttodeleteRTthR!Rt	deltatextt	arraytext((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyt	fastdelta%sD	$	"
"N("R/R0R'RYR,RsRyt__bool__R_RQR\R(RrR|RR�t
propertycacheR�R�R�R�R�R�RORnR�R�R7R`R�R�RkRjR�(((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyRwts:														$							c	@s7��fd�}|s"||fSt���|s=�}nx�||kr�||d}|}x1|dkr��|d|!dkr�|d8}qcW||d�}t�||!�|kr�||dd�d}q@|}q@W||d�}�||!}||kr)||dd�}||dfS||fSdS(	sEreturn a tuple (start, end) that says where to find s within m.

    If the string is found m[start:end] are the line containing
    that string.  If start == end the string was not found and
    they indicate the proper sorted insertion point.

    m should be a buffer, a memoryview or a byte string.
    s is a byte stringc@s8x1|�kr3�||d!|kr3|d7}qW|S(Ni((RdRu(tlenmR�(s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pytadvancecs&iiis
si(N(RRV(	R�R;tlothiR�tmidRSRTRZ((R�R�s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR�Zs*	
	&

cC@sRxK|D]C}d|ks%d|krtjtd�tj|���qqWdS(s'Check filenames for illegal characters.s
s
s)'\n' and '\r' disallowed in filenames: %rN(RtStorageErrorRR	tbytestr(RR((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR�s

	cC@s�d}t�}xG|D]?\}}}||||!7}|rO|t|�7}n|}qW|||7}djd�|D��}||fS(NiRcs@s:|]0\}}}tjd||t|��|VqdS(s>lllN(tstructtpackR(R}RSRTtcontent((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pys	<genexpr>�s(R�R(taddlistR�tcurrentpositiont
newaddlistRSRTR�R�((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR��s	

cC@s@d|kr2|jdd�\}}|d|fSd|fSdS(Nt/iR(R(RR�tsubpath((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyt_splittopdir�scC@sdS(N(R(R;((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyt<lambda>�RttreemanifestcB@s�eZddd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z	e	Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�ZeZd�Zd�Zd�Zd�Zd-d�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z d-d�Z!e"d��Z#d�Z$d �Z%d!�Z&d"�Z'd#�Z(d$�Z)d-e*d%�Z+d&�Z,d'�Z-d(�Z.d)�Z/d*�Z0d+�Z1d-d,�Z2RS(.RcC@s�||_t|_t|_t|_t|_i|_i|_	i|_
i|_|r|d�}|j||�t
|_ndS(NcS@std��dS(Ns4treemanifest constructor only accepts flat manifests(R�(tsubdirtsubm((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pytreadsubtree�s(t_dirRt_nodet_noopt	_loadfunct	_copyfuncROt_dirtyR�t	_lazydirst_filest_flagstparseRN(R&R�RjR�((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR'�s										cC@s|j|S(N(R�(R&tpath((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyt_subpath�scC@sw|j}x^|jj�D]M\}\}}}}|rS|||�j�||<q|||�||<qWi|_dS(N(R�R�R�R`(R&tselfdirsRiR�RzR�tdocopy((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyt_loadalllazy�s	(cC@sv|jj|�}|rr|\}}}}|rO|||�j�|j|<n|||�|j|<|j|=ndS(N(R�R�R`R�(R&RitvR�RzR�R�((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyt	_loadlazy�scC@s\|s
dS|dks"|dkr0|j�dS|j}x|D]}||d�q@W|S(NR�tthisR�(RR�R�(R&tvisittloadlazytk((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyt_loadchildrensetlazy�s
	
cC@s�g}xZ|jj�D]I\}}|jj|�}|sO|d|dkr|j|�qqWx<|jj�D]+\}}||jkrs|j|�qsqsWx(|D] }|j|�|j|�q�WdS(smload items in t1 and t2 if they're needed for diffing.

        The criteria currently is:
        - if it's not present in _lazydirs in either t1 or t2, load it in the
          other (it may already be loaded or it may not exist, doesn't matter)
        - if it's present in _lazydirs in both, compare the nodeid; if it
          differs, load it in both
        iN(R�R�R�RR�(R&tt1tt2t
toloadlazyRitv1tv2((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyt
_loaddifflazy�s	

cC@sQ|j�t|j�}|j�x'|jj�D]}||j�7}q3W|S(N(t_loadRR�R�R�tvaluesRs(R&tsizeR�((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyRs�s

cC@s|j�S(N(t_isempty(R&((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyRy�scC@sp|j�|js;|jr?td�|jj�D��r?tS|j�|jpotd�|jj�D��S(Ncs@s|]}|j�VqdS(N(R�(R}R�((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pys	<genexpr>scs@s|]}|j�VqdS(N(R�(R}R�((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pys	<genexpr>
s(R�R�R�tanyR�ROR�R�(R&((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR�s


cC@s;d|jt|j�t|jtk�|jt|�fS(Ns;<treemanifest dir=%s, node=%s, loaded=%s, dirty=%s at 0x%x>(R�RR�tboolR�R�R�tid(R&((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyt__repr__scC@s|jS(s}The directory that this tree manifest represents, including a
        trailing '/'. Empty string for the repo root directory.(R�(R&((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR�scC@s|jS(s�This node of this instance. nullid for unsaved instances. Should
        be updated when the instance is read or written from a revlog.
        (R�(R&((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyRzscC@s||_t|_dS(N(R�ROR�(R&Rz((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pytsetnodes	cc@s�|j�|j�x�ttj|jj�|jj���D]`\}}||jkr�|j|�||j	j
|d�fVq?x|j�D]}|Vq�Wq?WdS(NR(R�R�R�t	itertoolstchainR�R�R�R�R�R�Rk(R&tpRR�((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyRk"s

)cc@s�|j�|j�x�ttj|jj�|jj���D]Z\}}||jkrq|j|�|fVq?x%|j	�D]\}}||fVq~Wq?WdS(N(
R�R�R�R�R�R�R�R�R�R�(R&R�RRtsn((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR�-s

cc@s~|j�|j�xcttj|j|j��D]C}||jkrY|j|�Vq3x|j|D]}|VqgWq3WdS(N(R�R�R�R�R�R�R�R�(R&R�R((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyRr:s

%cC@st|j��S(N(R{Rr(R&((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR|DscC@s
|j�S(N(Rr(R&((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR(GscC@sw|dkrtS|j�t|�\}}|rf|j|�||jkrRtS|j|j|�S||jkSdS(N(RROR�R�R�R�RQR�(R&RR�R�((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyRQJs

cC@sp|j�t|�\}}|rY|j|�||jkrB|S|j|j||�S|jj||�SdS(N(R�R�R�R�R�R�(R&RR�R�R�((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR�Ys

cC@sR|j�t|�\}}|rC|j|�|j|j|�S|j|SdS(N(R�R�R�R�RYR�(R&RR�R�((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyRYes

cC@s�|j�t|�\}}|rV|j|�||jkrBdS|j|j|�S||jkst||jkrxdS|jj|d�SdS(NR(R�R�R�R�R7R�R�R�(R&RR�R�((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR7os

cC@sg|j�t|�\}}|rC|j|�|j|j|�S|j||jj|d�fSdS(NR(R�R�R�R�R,R�R�R�(R&RR�R�((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR,}s

cC@s�|j�t|�\}}|rf|j|�|j|j|�|j|j�r�|j|=q�n&|j|=||jkr�|j|=nt|_	dS(N(
R�R�R�R�R\R�R�R�RNR�(R&RR�R�((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR\�s



cC@s�|j�t|�\}}|rw|j|�||jkr]t|j|��|j|<n|j|j||�n|d |j|<t|_	dS(Ni(
R�R�R�R�R�R�R_R�RNR�(R&RRR�R�((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR_�s

cC@sb|jtk	r/|jt}|_||�n/|jtk	r^|jt}|_||�ndS(N(R�R�R�(R&tlftcf((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR��s
cC@s�|j�t|�\}}|rw|j|�||jkr]t|j|��|j|<n|j|j||�n
||j|<t|_	dS(s/Set the flags (symlink, executable) for path f.N(
R�R�R�R�R�R�R�R�RNR�(R&RR7R�R�((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR��s


c@s}t�j�}�j|_�j|_�jtkrm�fd�}�jtkra||�qy||_n�j|_|S(Nc@s��j�d��jj�D�|_|j}x-�jj�D]\}}|j�||<q?Wtj�j�|_tj�j�|_dS(NcS@s7i|]-\}\}}}}|||tf|�qS((RN(R}RiR�RRLRu((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pys
<dictcomp>�s	(R�R�R�R�R`tdictR�R�(R;tsdirsRiR�(R&(s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR��s
	(R�R�R�R�R�R�R�(R&R`R�((R&s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR`�s	
c@sm|r>|j�r>�j|�}|j|�}|j|�St�����fd����|��S(s7Set of files in this manifest that are not in the otherc@s�|j|jkr*|jr*|jr*dS|j�|j��j||�x\|jj�D]K\}}||jkr�|j|}�||�q^�j|j��q^Wx9|jD].}||jkr��j	|j
|��q�q�WdS(N(R�R�R�R�R�R�tupdateRrR�taddR�(R�R�RiR�RlRo(t_filesnotinRR&(s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR��s&


(R�R�R�R�(R&RlR�R�((R�RR&s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR��s
	
cC@s
tj|�S(N(RR�(R&((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyt_alldirs�scC@s|jS(N(R�(R&((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR��scC@s||j�t|�\}}|rV|j|�||jkrR|j|j|�StS|d}||jkp{||jkS(NR�(R�R�R�R�R�ROR�(R&R�ttopdirR�tdirslash((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR��s


cc@s�|j�r,xt|�D]}|VqWdSt|j��}x8|j|�D]'}||krp|j|�n|VqNW|jd�x6t|�D](}|j|�s�|j	|d�q�q�WdS(s�Generates matching file names.

        Equivalent to manifest.matches(match).iterkeys(), but without creating
        an entirely new manifest.

        It also reports nonexistent files by marking them bad with match.bad().
        NR�(R�R�R�Rt_walkR�R�R�R�R�R(R&R�RR�Ro((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR��s		
cc@s�|j|jd pd�}|s&dS|j�|j|�}x�tt|j�t|j��D]{}||jkr�|j|�}||�r�|Vq�qb|s�|d |krbx&|j|j	|�D]}|Vq�WqbqbWdS(s5Recursively generates matching file names for walk().i����R�N(
tvisitchildrensetR�R�R�R�R{R�R�R�R�(R&R�R�R�tfullpR((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR�s
)cC@s#|j�r|j�S|j|�S(s6generate a new manifest filtered by the match argument(R�R`t_matches(R&R�((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR�-s
c	C@st|j|jd pd�}|dkr2|j�St|j�}|sK|S|j�x�|jD]}|dkr�||kr�q_n|j|�}||�s�q_n|j||j|<||jkr_|j||j|<q_q_W|j|�}xd|j	j
�D]S\}}|r)|d |kr)qn|j|�}|j�s||j	|<qqW|j�spt
|_n|S(sLrecursively generate a new manifest filtered by the match argument.
        i����R�R�R�(R�R�R`R�R�R�R�R�R�R�R�R�R�RNR�(	R&R�R�tretRoR�R�R�R�((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR�4s4

c@s|rD|j�rD�j|�}|j|�}|j|d��Si�t�������fd����|��S(szFinds changes between the current manifest and m2.

        Args:
          m2: the manifest to which this manifest should be compared.
          clean: if true, include files unchanged between these manifests
                 with a None value in the returned dictionary.

        The result is returned as a dict with filename as key and
        values of the form ((n1,fl1),(n2,fl2)), where n1/n2 is the
        nodeid in the current/other manifest and fl1/fl2 is the flag
        in the current/other manifest. Where the file does not exist,
        the nodeid will be None and the flags will be the empty
        string.
        Rmc
@s�|j|jkr*|jr*|jr*dS|j�|j��j||�x?|jj�D].\}}|jj|��}�||�q^Wx<|jj�D]+\}}||jkr���|�q�q�Wx�|jj�D]�\}}|jj|d�}|jj|d�}|jj|d�}	||ksB||	krj||f||	ff�|j
|�<q��r�d�|j
|�<q�q�Wxc|jj�D]R\}}||jkr�|jj|d�}	d||	ff�|j
|�<q�q�WdS(NR(NR(R�R�R�R�R�R�R�R�R�RR�(
R�R�RiR�RlRotn1tfl1tn2tfl2(t_diffRmt	emptytreetresultR&(s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyRrs.&

((R�R�RnR�(R&RlR�RmR�((RRmRRR&s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyRn]s	
cC@s$|jo#|jo#|j|jkS(N(R�R�(R&Rl((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pytunmodifiedsince�scC@s�|j}|j}x�t|�D]�\}}}|dkrc|d}||�||tf||<qd|kr�|||<|r�|j||�q�q||j|<|r||j|<qqWdS(NRgR�(R�R�RROR�R�R�(R&RjR�tselflazyR�RRR!((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR��s		


cC@s|j�t|j��S(s3Get the full data of this manifest as a bytestring.(R�R"Rk(R&((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyRj�s
cC@s�|j�|j}g|jj�D]#\}}|d |ddf^q#}g|jD]#}|d |j|jdf^qV}g|jD]"}||j|||�f^q�}tt|||��S(s�Get the full data of this directory as a bytestring. Make sure that
        any submanifests have been written first, so their nodeids are correct.
        i����iRg(	R�R7R�R�R�R�R�R"R�(R&R7RiR�tlazydirsR�RR((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pytdirtext�s
	932c@s��fd�}||_dS(Nc@s |j����t|_dS(N(R�ROR�(R;(tgettextR�(s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyt_load_for_read�s(R�(R&R
R�R((R
R�s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pytread�sc@s|j�|j�|j�t���fd�}|j|jd pLd�}|j|�}|dksy|dkr�d}nx�|jj�D]u\}}|r�|d |kr�q�n|||�}	|||�}
|	tkr�|
|	}	}
n|||	|
|�q�WdS(Nc@s6|jj|�}|r |dS|jj|��jS(Ni(R�R�R�R�(R�Ritld(R(s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pytgetnode�si����R�R�R�(	R�R�R�R�R�RR�R�R(R&R�RltwritesubtreeR�RR�RiR�tsubp1tsubp2((Rs8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyt
writesubtrees�s"


		cc@s�|r'|j|jd pd�r'dS|sA||jd �rI|Vn|j�|j�x?|jj�D].\}}x|jd|�D]}|Vq�WqmWdS(s�Returns an iterator of the subtrees of this manifest, including this
        manifest itself.

        If `matcher` is provided, it only returns subtrees that match.
        i����R�Ntmatcher(tvisitdirR�R�R�R�R�twalksubtrees(R&RRiR�tsubtree((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR�s#

N(3R/R0R'R�R�R�R�R�RsRyR�R�R�R�RzR�RkR�R�RrR|R(RQRR�RYR7R,R\R_R�R�R`R�R�R�R�R�R�R�R�R�RORnRR�RjR	RRR(((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR��s\				
					
							
				
		
		
		
							)5						tmanifestfulltextcachecB@sweZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zdd
�Z
ed�ZRS(
s�File-backed LRU cache for the manifest cache

    File consists of entries, up to EOF:

    - 20 bytes node, 4 bytes length, <length> manifest data

    These are written in reverse cache order (oldest to newest).

    cC@s5tt|�j|�t|_t|_d|_dS(N(tsuperRR'ROR�t_readRt_opener(R&tmax((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR'�s		c	C@s|js|jdkrdSy�|jd���}tt|�j}x�tr�|jd�}t|�dkrqPny#t	j
d|jd��d}Wnt	jk
r�PnXt|j|��}t|�|kr�Pn|||�qFWWdQXWnt
k
rnXt|_t|_dS(NRis>Lii(RRRRRR_RNRRR�tunpackRR�tIOErrorROR�(R&tfpR�RzR�R^((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR�s*	#
	c	C@s�|js|jdkrdS|jdddtdt���}|jj}x}tr�|j|jkr�|j|j�|jt	j
dt|j���|j|j�n||jkr�Pn|j}qMWWdQXdS(NRtwt
atomictempt
checkambigs>L(
R�RRRNt_headRRFt_cachetwriteR�R�RR^(R&RRz((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR$s	"cC@s)|js|j�ntt|�j�S(N(RRRRRs(R&((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyRs*s	
cC@s,|js|j�ntt|�j|�S(N(RRRRRQ(R&R�((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyRQ/s	
cC@s)|js|j�ntt|�j�S(N(RRRRR((R&((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR(4s	
cC@s_|js|j�n|jj|�|jk	}tt|�j|�}|r[t|_	n|S(N(
RRR#R�R"RRRYRNR�(R&R�tsetdirtyR^((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyRY9s	
cC@s<|js|j�ntt|�j||�t|_dS(N(RRRRR_RNR�(R&R�R�((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR_Cs	
cC@s9|js|j�ntt|�j|�t|_dS(N(RRRRR\RNR�(R&R�((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR\Is	
cC@s2|js|j�ntt|�j|d|�S(NR�(RRRRR�(R&R�R�((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR�Os	
cC@s<tt|�j�|r/t|_|j�nt|_dS(N(RRtclearRNR�R$ROR(R&tclear_persisted_data((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR&Ts
	
N(R/R0t__doc__R'RR$RsRQR(RYR_R\RR�ROR&(((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR�s								
		tmanifestrevlogcB@s�eZdZdd"d"ed�Zd�Zed��Zed�Z	d�Z
d"d"d�Zd�Zd	�Z
d
�Zd�Zd�Zd
�Zd�Zd�Zd�Zd�Zd"ed�Zd�Zd�Zd�Zd"eeed�Zd"d�Zd�Zd�Zd�Zd�Zd�Z eeeeed�Z!ed��Z"e"j#d��Z"ed ��Z$e$j#d!��Z$RS(#snA revlog that stores manifest texts. This is responsible for caching the
    full-text manifest contents.
    Rc	C@s(d}t}t|dd
�}|d
k	rQ|jd|�}|jdt�}n|pZ||_t|�|_|rxn|d
kr�d}|r�d||}q�n||_|r�||_ni|d6|_t	j	||dt
|�d	t�|_|jj
|_
|jj|_|jj|_d
S(s�Constructs a new manifest revlog

        `indexfile` - used by extensions to have two manifests at once, like
        when transitioning between flatmanifeset and treemanifests.

        `treemanifest` - used to indicate this is a tree manifest revlog. Opener
        options can also be used to make this a tree manifest revlog. The opener
        option takes precedence, so if it is set to True, we ignore whatever
        value is passed in to the constructor.
        itoptionstmanifestcachesizeR�s00manifest.ismeta/RR!tmmaplargeindexN(ROtgetattrRR�t_treeondiskRt_fulltextcachettreet_dirlogcacheRR�RNt_revlogRDtversiont
_generaldelta(	R&topenerR0tdirlogcachet	indexfileR�t	cachesizetoptiontreemanifesttopts((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR'`s0	
c@s�tj|d�sdS|j|j_tj|��tj|����fd�}|j|j�dk	r}|j
|�ndS(s1Persist the manifestfulltextcache on lock releaset_lockrefNc@s[��}��}|dks*|dkr.dS|jjd�|k	rJdS|jj�dS(NR(Rtmanifestlogt
getstorageR/R$(trepoR&(tmanifestrevlogreftreporef(s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pytpersistmanifestcache�s		(RtsafehasattrtcachevfsR/Rtweakreftreft_currentlockR;Rt
_afterlock(R&R>RA((R?R@s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyt_setupmanifestcachehooks�s
cC@s|jS(N(R/(R&((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyt
fulltextcache�scC@s7|jj�|jjd|�i||j6|_dS(NR'(R2tclearcachesR/R&R0R1(R&R'((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyRJ�s
cC@sT|r	n||jkrIt|j||jd|j�}||j|<n|j|S(NR�(R1R)R5R.(R&Ritmfrevlog((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pytdirlog�s	c
	C@s�||jkr�tj|d�r�t|�tjg|D]}
|
tf^q8g|D]}
|
tf^qT�}|j|j||�\}}
|j	j
|�|
f}tj|�}|j	j||||||�}n�|j
r3||j|�}||j|�}|j||||||d|	�}d}n6|j�}|j	j|||||�}t|�}|dk	r�||j|<n|S(NR�R�(RIRRBRtheapqtmergeRORNR�R2trevR�taddrevisionR.R0t_addtreeRRjR�(R&R�ttransactiontlinktp1tp2taddedtremovedtreadtreeR�R�tworkR�R�t
cachedeltaRjRR�Rl((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR��s*!
""			c@s�jdkr7|j|�s-|j|�r7|j�S����fd�}|j||||�|j�}	d}
�jdkr�|	|j�kr�|j�}
q�|	|j�kr�|j�}
q�n|
s��jj|	��|j�|j��}
n|j|
�|
S(NRc@sD�j|j��}|j|��||ddd�d|�dS(NRXR�(RLR�R�R(R�RRR�tsublog(RSRXR&RR(s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR�s(	R0RRzRR	RR2RPR�(R&R�RRRSR�RlRXR�RRjR((RSRXR&RRs8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyRQ�s"$	

cC@s
t|j�S(N(RR2(R&((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyRsscC@s
|jj�S(N(R2R((R&((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR(scC@s|jj|�S(N(R2RO(R&Rz((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyROscC@s|jj|�S(N(R2Rz(R&RO((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyRz
scC@s|jj|�S(N(R2tlookup(R&R^((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR\
scC@s|jj|�S(N(R2t
parentrevs(R&RO((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR]scC@s|jj|�S(N(R2tparents(R&Rz((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR^scC@s|jj|�S(N(R2tlinkrev(R&RO((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR_scC@s
|jj�S(N(R2t	checksize(R&((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR`scC@s|jj|d|d|�S(Nt_dftraw(R2trevision(R&RzRaRb((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyRcscC@s|jj||�S(N(R2trevdiff(R&trev1trev2((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyRdscC@s|jj||�S(N(R2tcmp(R&RzRj((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyRg"scC@s|jj|�S(N(R2tdeltaparent(R&RO((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyRh%sc
C@s(|jj|d|d|d|d|�S(Nt
nodesordertrevisiondatatassumehaveparentrevisionst
deltaprevious(R2t
emitrevisions(R&tnodesRiRjRkRl((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyRm(s	cC@s|jj|||d|�S(Nt
addrevisioncb(R2taddgroup(R&tdeltast
linkmapperRRRo((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyRp0scC@s|jj|�S(N(R2trawsize(R&RO((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyRs4scC@s|jj|�S(N(R2t
getstrippoint(R&tminlink((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyRt7scC@s|jj||�S(N(R2tstrip(R&RuRR((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyRv:scC@s
|jj�S(N(R2R(R&((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR=scK@s:t|t�s!tjd��n|jj||j|�S(Ns"expected manifestrevlog to clone()(RUR)RtProgrammingErrorR2tclone(R&ttrt
destrevlogtkwargs((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyRx@scC@s+|jjd|d|d|d|d|�S(Ntexclusivefilestsharedfilestrevisionscountttrackedsizet
storedsize(R2tstorageinfo(R&R|R}R~RR�((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR�FscC@s
|jjS(N(R2R7(R&((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR7NscC@s||j_dS(N(R2R7(R&R^((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR7RscC@s
|jjS(N(R2R5(R&((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR5VscC@s||j_dS(N(R2R5(R&R^((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR5ZsN(%R/R0R(RROR'RHtpropertyRIRJRLR�RQRsR(RORzR\R]R^R_R`RcRdRgRhRmRpRsRtRvRRxR�R7tsetterR5(((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR)[sN	2		
(																		R<cB@sJeZdZd�Zd�Zed�Zd�Zed�Z	d�Z
RS(s�A collection class representing the collection of manifest snapshots
    referenced by commits in the repository.

    In this situation, 'manifest' refers to the abstract concept of a snapshot
    of the list of files in the given commit. Consumers of the output of this
    class do not care about the implementation details of the actual manifests
    they receive (i.e. tree or flat or lazily loaded, etc).cC@s�t}d}t|dd�}|dk	rQ|jd|�}|jd|�}n||_||_|jj|�|j�|_i|_	t
j|�|j	d<||_dS(NiR*R�R+R(
ROR-RR�t_treemanifestst
_rootstoreRHtnarrowmatcht_narrowmatcht_dirmancacheRtlrucachedictt
_cachesize(R&R5R>t	rootstoretusetreemanifestR8R:((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR'gs			cC@s|jd|�S(sgRetrieves the manifest instance for the given node. Throws a
        LookupError if not found.
        R(R�(R&Rz((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyRY|scC@sd||jj|d�kr*|j||S|jj�se|jj|d pOd�set||�Sn|r�|jjr�|r�|j|�j	|�nt
|||�}q
tjt
d�|��nF|r�|jj	|�n|jr�t
|d|�}nt||�}|tkr`|jj|�}|sStj|j�}||j|<n|||<n|S(s�Retrieves the manifest instance for the given node. Throws a
        LookupError if not found.

        `verify` - if True an exception will be thrown if the node is not in
                   the revlog
        i����R�s9cannot ask for manifest directory '%s' in a flat manifestR((R�R�R�R�RtexcludeddirmanifestctxR�R.R=ROttreemanifestctxRtAbortRR�tmanifestctxRRR�R�(R&R0RztverifyR�tmancache((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR��s2	
	
cC@s|jj|�S(N(R�RL(R&R0((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR=�scC@s$|jj�|jjd|�dS(NR'(R�R&R�RJ(R&R'((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyRJ�s
cC@s|jj|�S(N(R�RO(R&Rz((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyRO�s(R/R0R(R'RYRNR�R=RORJRO(((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR<^s		+	tmemmanifestctxcB@sAeZd�Zd�Zd�Zd�Zd�Zdd�ZRS(cC@s||_t�|_dS(N(t_manifestlogRwt
_manifestdict(R&R<((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR'�s	cC@s|jjd�S(NR(R�R=(R&((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyt_storage�scC@s
t|j�S(N(R�R�(R&((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pytnew�scC@s(t|j�}|j�j�|_|S(N(R�R�RR`R�(R&tmemmf((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR`�scC@s|jS(N(R�(R&((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR�sc
C@s.|j�j|j||||||d|�S(NR�(R�R�R�(R&RRRSRTRURVRWR�((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR$�sN(	R/R0R'R�R�R`RRR$(((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR��s					R�cB@steZdZd�Zd�Zd�Zd�Zd�Zed��Z	d�Z
ed�Zed	�Z
d
�ZRS(sxA class representing a single revision of a manifest, including its
    contents, its parent revs, and its linkrev.
    cC@s||_d|_||_dS(N(R�Rt_dataR�(R&R<Rz((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR'�s		cC@s|jjd�S(NR(R�R=(R&((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR��scC@s|jS(N(R�(R&((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyRz�scC@s
t|j�S(N(R�R�(R&((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR��scC@s(t|j�}|j�j�|_|S(N(R�R�RR`R�(R&R�((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR`�scC@s|j�j|j�S(N(R�R^R�(R&((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR^�scC@s�|jdkr�|jtkr-t�|_q�|j�}|j|jkrgtj|j|j�}n.|j	|j�}t
|�}||j|j<t|�|_n|jS(N(R�RR�RRwR�RIR	R�RcR�(R&tstoreRjR�((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR�scC@sb|j�}|j|j�}|j|�}|tkrX||j|�krX|j�S|j�S(sCalls either readdelta or read, based on which would be less work.
        readdelta is called if the delta is against the p1, and therefore can be
        read quickly.

        If `shallow` is True, nothing changes since this is a flat manifest.
        (R�ROR�RhRR]t	readdeltaR(R&tshallowR�RLRh((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pytreadfasts!
cC@sL|j�}|j|j�}tj|j|j|�|��}t|�S(s
Returns a manifest containing just the entries that are present
        in this manifest, but not in its p1 manifest. This is efficient to read
        if the revlog delta is already p1.

        Changing the value of `shallow` has no effect on flat manifests.
        (R�ROR�Rt	patchtextRdRhRw(R&R�R�RLRi((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR�s$cC@s|j�j|�S(N(RR,(R&RF((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR,s(R/R0R(R'R�RzR�R`R�R^RROR�R�R,(((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR��s	
					tmemtreemanifestctxcB@sGeZdd�Zd�Zdd�Zd�Zd�Zdd�ZRS(RcC@s"||_||_t�|_dS(N(R�R�R�t
_treemanifest(R&R<R�((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR'!s		cC@s|jjd�S(NR(R�R=(R&((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR�&scC@st|jd|�S(NR�(R�R�(R&R�((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR�)scC@s.t|jd|j�}|jj�|_|S(NR�(R�R�R�R�R`(R&R�((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR`,scC@s|jS(N(R�(R&((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR1sc	@sC�fd�}�j�j�j||||||d|d|�S(Nc@s�jj||�j�S(N(R�R�R(R�Rz(R&(s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyRX5sRXR�(R�R�R�(	R&RRRSRTRURVRWR�RX((R&s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR$4sN(	R/R0R'R�R�R`RRR$(((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR�s			R�cB@sqeZd�Zd�Zd�Zd�Zdd�Zd�Zed��Z	e
d�Ze
d	�Zd
�Z
RS(cC@s(||_||_d|_||_dS(N(R�R�RR�R�(R&R<R�Rz((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR'=s			cC@sW|jj}|j�sD|j|jd p.d�sDt|j�Sn|jj|j�S(Ni����R�(R�R�R�RR�texcludedmanifestrevlogR=(R&R�((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR�Ks
c@s"�jdkr�j���jtkr9t��_q�jr�td�j�}��fd�}�fd�}|j||�|j	�j�|�_q�j�j
kr�tj�j
�j�}n.�j
�j�}t|�}|�j
�j<td�jd|��_n�jS(NR�c@s�j�j�S(N(RcR�((R&R�(s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR
Zsc@s�jj||dt�j�S(NR�(R�R�ROR(R�R�(R&(s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR�\sRj(R�RR�R�RR�R.R�RR�RIR	R�RcR�(R&R�R
R�RjR�((R&R�s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyRRs$	cC@s|jS(N(R�(R&((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyRznsRcC@st|jd|�S(NR�(R�R�(R&R�((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR�qscC@s1t|jd|j�}|j�j�|_|S(NR�(R�R�R�RR`R�(R&R�((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR`tscC@s|j�j|j�S(N(R�R^R�(R&((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR^yscC@s|j�}|rR|j|j�}tj|j|j|�|��}t|�S|j|j|j��}|jj	|j
|j|��j�}|j�}t
d|j
�}xa|j|�j�D]J\}	\\}
}\}}
|r�|||	<|
r|j|	|
�qq�q�W|SdS(sReturns a manifest containing just the entries that are present
        in this manifest, but not in its p1 manifest. This is efficient to read
        if the revlog delta is already p1.

        If `shallow` is True, this will read the delta for this directory,
        without recursively reading subdirectory manifests. Instead, any
        subdirectory entry will be reported as it appears in the manifest, i.e.
        the subdirectory will be reported among files and distinguished only by
        its 't' flag.
        R�N(R�ROR�RR�RdRhRwR�R�R�RzRR�RnR�R�(R&R�R�RLRitr0tm0R�tmdRtn0tfl0R�R((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR�}s$
'4
cC@s�|j�}|j|j�}|j|�}|tkr^||j|�kr^|jd|�S|rzt|j|j��S|j	�SdS(s#Calls either readdelta or read, based on which would be less work.
        readdelta is called if the delta is against the p1, and therefore can be
        read quickly.

        If `shallow` is True, it only returns the entries from this manifest,
        and not any submanifests.
        R�N(
R�ROR�RhRR]R�RwRcR(R&R�R�RLRh((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR��scC@s|j�j|�S(N(RR,(R&RF((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR,�s(R/R0R'R�RRzR�R`R�R^ROR�R�R,(((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR�;s					texcludeddircB@s eZdZd�Zd�ZRS(s�Stand-in for a directory that is excluded from the repository.

    With narrowing active on a repository that uses treemanifests,
    some of the directory revlogs will be excluded from the resulting
    clone. This is a huge storage win for clients, but means we need
    some sort of pseudo-manifest to surface to internals so we can
    detect a merge conflict outside the narrowspec. That's what this
    class is: it stands in for a directory whose node is known, but
    whose contents are unknown.
    cC@s=tt|�j|�||_||jd<d|jd<dS(NRRg(RR�R'R�R�R�(R&R�Rz((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR'�s	
cC@s|S(N((R&((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR`�s(R/R0R(R'R`(((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR��s
	
R�cB@s)eZdZd�Zd�Zd�ZRS(sBcontext wrapper for excludeddir - see that docstring for rationalecC@s||_||_dS(N(R�R�(R&R�Rz((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR'�s	cC@st|j|j�S(N(R�R�R�(R&((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR�scG@stjd|j��dS(Ns.attempt to write manifest from excluded dir %s(RRwR�(R&targs((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR$�s(R/R0R(R'RR$(((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR��s		R�cB@sDeZdZd�Zd�Zd�Zd�Zd�Zd�ZRS(s\Stand-in for excluded treemanifest revlogs.

    When narrowing is active on a treemanifest repository, we'll have
    references to directories we can't see due to the revlog being
    skipped. This class exists to conform to the manifestrevlog
    interface for those directories and proactively prevent writes to
    outside the narrowspec.
    cC@s
||_dS(N(R�(R&R�((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR'�scC@stjd|j��dS(Ns(attempt to get length of excluded dir %s(RRwR�(R&((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyRs�scC@stjd|j��dS(Ns'attempt to get rev from excluded dir %s(RRwR�(R&Rz((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyRO�scC@stjd|j��dS(Ns+attempt to get linkrev from excluded dir %s(RRwR�(R&Rz((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR_�scC@stjd|j��dS(Ns(attempt to get node from excluded dir %s(RRwR�(R&RO((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyRz�scO@sdS(N((R&R�R{((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR��s(	R/R0R(R'RsROR_RzR�(((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyR��s					(=t
__future__RRMR�R�RDti18nRRzRRRRRRRRR	R
RRtutilsR
t	importmodRR�RR"tobjectR#R2R3R>R?tlazymanifesttAttributeErrortimplementert
imanifestdictRwRR�RR�R�R�R�R�RtimanifeststorageR)timanifestlogR<timanifestrevisionwritableR�timanifestrevisionstoredR�R�R�R�R�R�(((s8/usr/lib64/python2.7/site-packages/mercurial/manifest.pyt<module>s`"4						�

�(				��Gm�XOu