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/self/root/lib64/python2.7/site-packages/mercurial/context.pyo
�
1�3\c@@s|ddlmZddlZddlZddlZddlZddlmZddlm	Z	m
Z
mZmZm
Z
mZmZmZddlmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#ddl$m%Z%m&Z&e#j'Z'de(fd	��YZ)d
e)fd��YZ*de(fd
��YZ+de+fd��YZ,de)fd��YZ-de-fd��YZ.de+fd��YZ/de/fd��YZ0de-fd��YZ1de/fd��YZ2de.fd��YZ3d�Z4d�Z5d �Z6d!e-fd"��YZ7d#e/fd$��YZ8d%e-fd&��YZ9d'e(fd(��YZ:dS()i(tabsolute_importNi(t_(taddednodeidthextmodifiednodeidtnullidtnullrevtshorttwdirfilenodeidstwdirid(tdagoptencodingterrortfilesettmatchtobsoletetpatchtpathutiltphasestpycompattrepoviewtscmutiltsparsetsubrepotsubrepoutiltutil(tdateutilt
stringutiltbasectxc
B@s�eZdZd�Zd�Zeje�Zd�Zd�Z	d�Z
d�Zd�Zd�Z
d	�Zd
�Zd�Zed��Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd.d�Zd�Zd�Zd�Z d�Z!d�Z"d�Z#d�Z$d�Z%d�Z&d �Z'd!�Z(d"�Z)d#�Z*e+d$�Z,d%�Z-d&�Z.d.d.d.d'e/d.d(�Z0d.d.d.d.d.d)d)d.d.d*�	Z1d+�Z2d,�Z3d.d.e/e/e/e/d-�Z4RS(/sIA basectx object represents the common logic for its children:
    changectx: read-only context that is already present in the repo,
    workingctx: a context that represents the working directory and can
                be committed,
    memctx: a context that represents changes in-memory and can also
            be committed.cC@s
||_dS(N(t_repo(tselftrepo((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyt__init__;scC@st|j��S(N(Rtnode(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyt	__bytes__>scC@sdt|�jt|�fS(Ns<%s %s>(ttypet__name__tstr(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyt__repr__CscC@sEy,t|�t|�ko*|j|jkSWntk
r@tSXdS(N(R#t_revtAttributeErrortFalse(Rtother((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyt__eq__Fs,
cC@s||kS(N((RR*((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyt__ne__LscC@s
||jkS(N(t	_manifest(Rtkey((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyt__contains__OscC@s
|j|�S(N(tfilectx(RR.((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyt__getitem__RscC@s
t|j�S(N(titerR-(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyt__iter__UscC@s
|j�S(s�Builds a manifest that includes the given status results, if this is
        a working copy context. For non-working copy contexts, it just returns
        the normal manifest.(tmanifest(Rtstatus((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyt_buildstatusmanifestXscC@s|S(sfThis internal method provides a way for child objects to override the
        match operator.
        ((RR*R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyt_matchstatus^scC@s�d}|j�dk	rB|j�|j�krB|j|�}n|j|�}|dkro|j|�}ngg}	}
g}g}|j|j|j}
}}t|
�}|j|d|d|�}x|j�D]�\}}||kr�q�n|dkr|j	|�q�n|\\}}\}}|dkrJ|
j	|�q�|dkrf|j	|�q�||kr�|	j	|�q�|t
kr�|	j	|�q�||j||�r�|	j	|�q�|j	|�q�W|rtg|D]+}||kr�|s||�r�|^q�}g|D]+}||kr|s@||�r|^q}g|D]}||krS|^qS}ntj
|	|
||
|||�S(s.build a status with respect to another contextRtcleanN(tNonetrevR6tdeletedtunknowntignoredtsettdifft	iteritemstappendRtcmpRR5(RR*tsRtlistignoredt	listcleantlistunknowntmf2tmf1tmodifiedtaddedtremovedR8R;R<R=t
deletedsettdtfntvaluetnode1tflag1tnode2tflag2((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyt_buildstatusdsL	*

(cC@stj||jj�S(N(RtstateRtui(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pytsubstate�scC@s|j|dS(Ni(RW(Rtsubpath((s7/usr/lib64/python2.7/site-packages/mercurial/context.pytsubrev�scC@s|jS(N(R'(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR:�scC@s|jS(N(t_node(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR!�scC@st|j��S(N(RR!(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR�scC@s|jS(N(R-(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR4�scC@s|jS(N(t_manifestctx(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pytmanifestctx�scC@s|jS(N(R(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR�scC@stj|j�S(N(Rt
phasenamestphase(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pytphasestr�scC@s|j�tjkS(N(R^Rtpublic(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pytmutable�scC@stj||d|�S(Ntbadfn(R
R(RtexprRb((s7/usr/lib64/python2.7/site-packages/mercurial/context.pytmatchfileset�scC@s|j�tj|jd�kS(s!True if the changeset is obsoleteR(R:tobsmodtgetrevsR(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR�scC@s|j�tj|jd�kS(s True if the changeset is extincttextinct(R:ReRfR(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyRg�scC@s|j�tj|jd�kS(s:True if the changeset is not obsolete, but its ancestor istorphan(R:ReRfR(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyRh�scC@s|j�tj|jd�kS(s�True if the changeset tries to be a successor of a public changeset

        Only non-public and non-obsolete changesets may be phase-divergent.
        tphasedivergent(R:ReRfR(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyRi�scC@s|j�tj|jd�kS(s�Is a successor of a changeset with multiple possible successor sets

        Only non-public and non-obsolete changesets may be content-divergent.
        tcontentdivergent(R:ReRfR(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyRj�scC@s"|j�p!|j�p!|j�S(sTTrue if the changeset is either orphan, phase-divergent or
        content-divergent(RhRiRj(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyt
isunstable�scC@s^g}|j�r"|jd�n|j�r>|jd�n|j�rZ|jd�n|S(s�return the list of instabilities affecting this changeset.

        Instabilities are returned as strings. possible values are:
        - orphan,
        - phase-divergent,
        - content-divergent.
        Rhsphase-divergentscontent-divergent(RhRARiRj(Rt
instabilities((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyRl�scC@s|jS(s)return contexts for each parent changeset(t_parents(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pytparents�scC@s|jdS(Ni(Rm(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pytp1�scC@s.|j}t|�dkr#|dS|jtS(Nii(RmtlenRR(RRn((s7/usr/lib64/python2.7/site-packages/mercurial/context.pytp2�s	cC@s d|jkrey!|j||jj|�fSWqetk
ratj|j|td���qeXnd|jks�||j�kr�||j	kr�|j	||j	j|�fSn|j
j}y#||jj
j|�\}}Wn/tk
rtj|j|td���nX||fS(NR-snot found in manifestt_manifestdelta(t__dict__R-tflagstKeyErrorRtManifestLookupErrorRZRtfilesRrRtmanifestlogt
_changesetR4tfind(RtpathtmflR!tflag((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyt	_fileinfo�s"!
!
#
cC@s|j|�dS(Ni(R~(RR{((s7/usr/lib64/python2.7/site-packages/mercurial/context.pytfilenode
scC@s1y|j|�dSWntjk
r,dSXdS(Nit(R~RtLookupError(RR{((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyRt
scC@stj||d|�S(s>return a subrepo for the stored revision of path, never wdir()tallowcreate(R(RR{R�((s7/usr/lib64/python2.7/site-packages/mercurial/context.pytsubscC@stj|||�S(N(Rtnullsubrepo(RR{tpctx((s7/usr/lib64/python2.7/site-packages/mercurial/context.pytnullsubscC@stj||dt�S(s]return a subrepo for the stored revision, or wdir if this is a wdir
        context.
        t	allowwdir(RtTrue(RR{((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyt
workingsubstglobcC@sI|j}tj|j|j�||||d|jd|d|d|�S(NtauditortctxtlistsubreposRb(RtmatchmodRtroottgetcwdtnofsauditor(RtpatstincludetexcludetdefaultR�Rbtr((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR s
	R�c

C@s}|d	kr|j�}n|d	k	r7|j|}ntj|j||d|d|d|d|d|d|d|d|	�S(
s;Returns a diff generator for the given contexts and matcherRtchangestoptst
losedatafntprefixtrelroottcopyt
hunksfilterfnN(R9RoRRR?(
Rtctx2RR�R�R�R�R�R�R�((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR?(s!cC@s
|jj�S(N(R-tdirs(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR�5scC@s|jj|�S(N(R-thasdir(Rtdir((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR�8sc
@s�|}|j|}t}	t|t�rNt|t�rNt}	||}}n|jj|�}|j||�}tjggggggg�}
|j	||
||||�}
|	r�tj|
j
|
j|
jggg|
j
�}
n|r�x�tj||�D]�\�}y|j��}Wntk
r8d}nXtj�|�}
|j|d|
d|d|d|dt�}x:t|
|�D])\}}|j�fd�|D��q�WqWnx|
D]}|j�q�W|
S(s�return status of files between two nodes or node and working
        directory.

        If other is None, compare this node with working directory.

        returns (modified, added, removed, deleted, unknown, ignored, clean)
        RR=R8R<R�c3@s|]}d�|fVqdS(s%s/%sN((t.0tf(RX(s7/usr/lib64/python2.7/site-packages/mercurial/context.pys	<genexpr>tsN(RR)t
isinstancet	changectxR�tnarrowmatchR7RR5RTRIRKRJR8titersubreposRYRuR9R�t
subdirmatchertziptextendtsort(RR*RRDRERFR�tctx1R�treversedR�R�trev2tsubmatchRCtrfilestsfilestl((RXs7/usr/lib64/python2.7/site-packages/mercurial/context.pyR5;s<

!	!

	(
N(5R$t
__module__t__doc__R R"Rt	strmethodt__str__R&R+R,R/R1R3R6R7RTt
propertycacheRWRYR:R!RR4R\RR_RaR9RdRRgRhRiRjRkRlRnRoRqR~RRtR�R�R�R�R)RR?R�R�R5(((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR3sb											:																											R�cB@sIeZdZd�Zd�Zd�ZeZed��Zed��Z	e
d��Zed��Zed��Z
d	�Zd
�Zd�Zd�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zddd�Z e!d�Z"d�Z#d�Z$d�Z%RS( s�A changecontext object makes access to data related to a particular
    changeset convenient. It represents a read-only context already present in
    the repo.cC@s,tt|�j|�||_||_dS(N(tsuperR�R R'RZ(RRR:R!((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR s	cC@s0yt|j�SWntk
r+t|�SXdS(N(thashR'R(tid(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyt__hash__�s
cC@s
|jtkS(N(R'R(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyt__nonzero__�scC@s|jjj|j��S(N(Rt	changelogtchangelogrevisionR:(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyRy�scC@s
|jj�S(N(R[tread(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR-�scC@s|jj|jjS(N(RRxRyR4(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR[�scC@s
|jj�S(N(R[t	readdelta(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyRr�scC@sM|j}|jj|j�\}}|tkr;||gS||||gS(N(RR�t
parentrevsR'R(RRRoRq((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyRm�s
	cC@s1|j}|j|j|j|j|j|jfS(N(RyR4tusertdateRwtdescriptiontextra(Rtc((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyt	changeset�s	cC@s
|jjS(N(RyR4(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pytmanifestnode�scC@s
|jjS(N(RyR�(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR��scC@s
|jjS(N(RyR�(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR��scC@s
|jjS(N(RyRw(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyRw�scC@s
|jjS(N(RyR�(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR��scC@stj|jjjd��S(Ntbranch(RttolocalRyR�tget(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR��scC@sd|jjkS(Ntclose(RyR�(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pytclosesbranch�scC@s
|jjS(s#Return a dict of extra information.(RyR�(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR��scC@s|jj|j�S(sReturn a list of byte tag names(RtnodetagsRZ(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyttags�scC@s|jj|j�S(s%Return a list of byte bookmark names.(Rt
nodebookmarksRZ(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyt	bookmarks�scC@s|jjj|j|j�S(N(Rt_phasecacheR^R'(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR^�scC@s|jtj|jd�kS(Ntvisible(R'Rt
filterrevsR(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pythidden�scC@stS(N(R)(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyt
isinmemory�scC@s6|jjj|j�}g|D]}|j|^qS(s�return list of changectx contexts for each child changeset.

        This returns only the immediate child changesets. Use descendants() to
        recursively walk children.
        (RR�tchildrenRZ(RR�tx((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR��scc@s6x/|jjj|jg�D]}|j|VqWdS(N(RR�t	ancestorsR'(Rta((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR��s"cc@s6x/|jjj|jg�D]}|j|VqWdS(srRecursively yield all children of the changeset.

        For just the immediate children, use children()
        N(RR�tdescendantsR'(RRM((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR��s"c	C@s@|dkr|j|�}nt|j|d|d|d|�S(s&get a file context from this changesettfileidR�tfilelogN(R9RR0R(RR{R�R�((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR0�sc@sp|j}|dkr(|jdj}n|jjj|j|�}|sRt�nt|�dkrq|d�n�x�|jjj	dd�D]U}yt
j|j|�}Wntj
k
r�q�nX|j���|kr�Pq�q�W|jjj|j|��|re|jjjtd�t��t|j�t|�fdj�fd�t|�D���n|j�S(	s�return the "best" ancestor context of self and c2

        If there are multiple candidates, it will show a message and check
        merge.preferancestor configuration before falling back to the
        revlog ancestor.iitmergetpreferancestors(note: using %s as ancestor of %s and %s
R�c3@s1|]'}|�krtd�t|�VqdS(s:      alternatively, use --config merge.preferancestor=%s
N(RR(R�tn(tanc(s7/usr/lib64/python2.7/site-packages/mercurial/context.pys	<genexpr>sN(RZR9RmRR�tcommonancestorsheadsRRpRVt
configlistRt	revsymbolRtRepoLookupErrorR!tancestorR5RRtjointsorted(Rtc2twarntn2tcahsR�R�((R�s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR��s0		
	"cC@s|jjj|j|j�S(s.True if this changeset is an ancestor of other(RR�t
isancestorrevR'(RR*((s7/usr/lib64/python2.7/site-packages/mercurial/context.pytisancestorofsc@s@��fd�}tj�jj��|�}�jj|�S(sGenerates matching file names.c@sAt�fd��jD��r#dS�j�td���dS(Nc3@s.|]$}�|kp%�j|d�VqdS(t/N(t
startswith(R�RC(RN(s7/usr/lib64/python2.7/site-packages/mercurial/context.pys	<genexpr>ssno such file in rev %s(tanyRWtbadR(RNtmsg(RR(RNs7/usr/lib64/python2.7/site-packages/mercurial/context.pyR�s(R�tbadmatchRR�R-twalk(RRR�tm((RRs7/usr/lib64/python2.7/site-packages/mercurial/context.pyR�scC@s
|j|�S(N(R�(RR((s7/usr/lib64/python2.7/site-packages/mercurial/context.pytmatches$sN(&R$R�R�R R�R�t__bool__R�RyR-tpropertyR[RrRmR�R�R�R�RwR�R�R�R�R�R�R^R�R�R�R�R�R9R0R)R�R�R�R�(((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR�{s@				
																	$		tbasefilectxcB@s'eZdZed��Zed��Zed��Zed��Zed��Zd�Z	e	Z
d�Zej
e�Zd�Zd	�Zd
�Zd�Zd�Zd
�Zed��Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z d�Z!d�Z"d�Z#d�Z$d�Z%d�Z&d �Z'd!�Z(d"�Z)d#�Z*d$�Z+d%�Z,d&�Z-d'�Z.d(�Z/e0Z1d)�Z2e0d*�Z3d+�Z4d,�Z5d-�Z6d.�Z7d/�Z8d0�Z9e0d4d4d1�Z;e0d2�Z<d3�Z=RS(5sPA filecontext object represents the common logic for its children:
    filectx: read-only access to a filerevision that is already present
             in the repo,
    workingfilectx: a filecontext that represents files from the working
                    directory,
    memfilectx: a filecontext that represents files in-memory,
    cC@s|jj|j�S(N(Rtfilet_path(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyt_filelog/scC@shd|jkr|jSd|jkr2|jj�Sd|jkrQ|j|j�S|jj|j�SdS(Nt	_changeidt
_changectxt_descendantrev(	RsR�R�R:t_adjustlinkrevRR�tlinkrevt_filerev(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR�3s
cC@s9d|jkr"|jj|j�S|jj|j�SdS(Nt_fileid(RsR�tlookupRR�RR�(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyt	_filenode@scC@s|jj|j�S(N(R�R:R(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyRGscC@s|jS(N(R�(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyt	_repopathKscC@s+y|jtSWntjk
r&tSXdS(N(RR�RR�R)(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR�Os
cC@sAyd|j�|jfSWntjk
r<d|j�SXdS(Ns%s@%ss%s@???(R{R�RR�(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR"YscC@sdt|�jt|�fS(Ns<%s %s>(R#R$R%(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR&ascC@s9yt|j|jf�SWntk
r4t|�SXdS(N(R�R�RR(R�(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR�ds
cC@sWy>t|�t|�ko<|j|jko<|j|jkSWntk
rRtSXdS(N(R#R�RR(R)(RR*((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR+js
*
cC@s||kS(N((RR*((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR,qscC@s|jS(N(R(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pytfilerevtscC@s|jS(N(R(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyRvscC@s|jj|j�S(N(R�RtR�(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyt_flagsxscC@s|jS(N(R	(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyRt{scC@s|jS(N(R�(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR�}scC@s|jS(N(R�(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR:scC@s|jj|j�S(N(R�RR(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR�scC@s
|jj�S(N(R�R!(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR!�scC@s
|jj�S(N(R�R(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR�scC@s
|jj�S(N(R�R�(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR��scC@s
|jj�S(N(R�R�(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR��scC@s
|jj�S(N(R�Rw(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyRw�scC@s
|jj�S(N(R�R�(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR��scC@s
|jj�S(N(R�R�(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR��scC@s
|jj�S(N(R�R�(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR��scC@s
|jj�S(N(R�R^(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR^�scC@s
|jj�S(N(R�R_(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR_�scC@s
|jj�S(N(R�R(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR�scC@s
|jj�S(N(R�Rl(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyRl�scC@s
|jj�S(N(R�R4(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR4�scC@s|jS(N(R�(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR��scC@s|jS(N(t_copied(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pytrenamed�scC@s|jS(N(R(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR�scC@st|j��S(N(Rptdata(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pytsize�scC@s|jS(N(R�(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR{�scC@s0ytj|j��SWntk
r+tSXdS(N(RtbinaryRtIOErrorR)(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pytisbinary�s
cC@sd|j�kS(NR�(Rt(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pytisexec�scC@sd|j�kS(NR�(Rt(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pytislink�scC@stS(s�whether this filectx represents a file not in self._changectx

        This is mainly for merge code to detect change/delete conflicts. This is
        expected to be True for all subclasses of basectx.(R)(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pytisabsent�scC@s�|jr|j|�S|jdkrM|jjse|j�d|j�kse|j�|j�kr�|jj|j|j��St	S(sVcompare with other file context

        returns True if different than fctx.
        iN(
t
_customcmpRBRR9Rt_encodefilterpatsR
R�RR�(Rtfctx((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyRB�s	
cC@sp|j}|j�j}|j}|j�}||kr=|St|dd�}d}|dkr�g|jdj�D]}	|	j�^qu}
t	}n	|g}
|dkr�|j
|
|d|�}}n||krl|dkr�|j
|
|d|�}n|j}|j}xZ|D]O}
|j
|
�}||dkr|||dj�j|�kre|
SqqWn|S(s}return the first ancestor of <srcrev> introducing <fnode>

        If the linkrev of the file revision does not point to an ancestor of
        srcrev, we'll walk down the ancestors until we find one introducing
        this file revision.

        :srcrev: the changeset revision we search ancestors from
        :inclusive: if true, the src revision will also be checked
        t_ancestrycontextt	inclusiveiiN(Rt
unfilteredR�RxRtgetattrR9RnR:R�R�RR�R�treadfastR�(RtsrcrevRRtclR|tlkrt	memberanctiteranctptrevstfnodeR{R�tac((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR�s4
		,				
#cC@sQt|�}d|kp!d|k}|rC|j|j�dt�S|j�SdS(sreturn the rev of the changeset which introduced this file revision

        This method is different from linkrev because it take into account the
        changeset the filectx was created from. It ensures the returned
        revision is one of its ancestors. This prevents bugs from
        'linkrev-shadowing' when a file revision is used by multiple
        changesets.
        R�R�RN(tvarsRR:R�R(Rtattrst	hastoprev((s7/usr/lib64/python2.7/site-packages/mercurial/context.pytintrorev�s
	cC@s;|j�}|j�|kr"|S|j|j�d|�S(szReturn filectx having identical contents, but pointing to the
        changeset revision where this filectx was introducedtchangeid(R(R:R0R(RR(((s7/usr/lib64/python2.7/site-packages/mercurial/context.pytintrofilectx
scC@s�t|j|d|d|�}dt|�ksBdt|�kri|j�|_t|dd�|_n6dt|�kr�|j|_t|dd�|_n|S(s@create parent filectx keeping ancestry info for _adjustlinkrev()R�R�R�R�RRN(R0RR%R:RRR9R(RR{R�R�R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyt_parentfilectxs$c
C@s�|j}|j}|jj|j�}g|D]!}|tkr.|||f^q.}|j|j�}|r�|jd|d|d|jj|d�f�ng|D]$\}}}	|j	|||	�^q�S(Nii(
R�R�RnRRRtinsertRR�R+(
RR�tflRnR!tplR�R{R#R�((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyRn%s		.	4cC@s|j�dS(Ni(Rn(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyRo9scC@sH|j�}t|�dkr&|dSt|j|jddd|j�S(NiiR�i����R�(RnRpR0RR�R�(RR!((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyRq<sc	@s�tj�fd�����fd�}�j�}t|dd�dkr��jj}|j�dkr�|jg|j	�D]}|j�^qdt
�}n|j|j�gdt
�}||_ntj
||d|d|�S(sDReturns a list of annotateline objects for each line in the file

        - line.fctx is the filectx of the node where that line was last changed
        - line.lineno is the line number at the first appearance in the managed
          file
        - line.text is the data on that line (including newline character)
        c@s�jj|�S(N(RR�(R�(R(s7/usr/lib64/python2.7/site-packages/mercurial/context.pyt<lambda>JR�c@s�|j|j�}�sMg|D]$}|j�|j�kr |^q }nx5|D]-}d|jkrT�|j��|_qTqTW|S(NR�(R�RnR{RsR�(R�R.R!(tfollowtgetlog(s7/usr/lib64/python2.7/site-packages/mercurial/context.pyRnLs4
RRtskiprevstdiffoptsN(RtlrucachefuncR*RR9RR�R:R�RnR�RR
tannotate(	RR0R2R3RntbaseRR!R$((R0R1Rs7/usr/lib64/python2.7/site-packages/mercurial/context.pyR5Bs+cc@s�i}|}|rd}nd}xetr�x4|j�| D]"}|||j�|j�f<q;W|skPn|jt|��}|Vq$WdS(Ni(R9R�RnRRtpoptmax(RtfollowfirsttvisitR�tcuttparent((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR�ps		 cC@s|jj|j�|j��S(s�Returns `data()` after running repository decoding filters.

        This is often equivalent to how the data would be expressed on disk.
        (Rt
wwritedataR{R(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pytdecodeddata�sN(>R$R�R�R�R�R�RRRR�R�R"RR�R�R&R�R+R,RRR	RtR�R:RR!RR�R�RwR�R�R�R^R_RRlR4R�RRR
R{RRRRR)RRBRR(R*R+RnRoRqR9R5R�R>(((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR�'sn
																																			0						.R0cB@szeZdZd
d
d
d
d�Zed��Zd
d�Zd�Zd�Z	d�Z
d�Zed��Zd	�Z
RS(saA filecontext object makes access to data related to a particular
       filerevision convenient.cC@sv||_||_|dk	r*||_n|dk	rB||_n|dk	rZ||_n|dk	rr||_ndS(scchangeid must be a revision number, if specified.
           fileid can be a file revision or node.N(RR�R9R�R�R�R(RRR{R)R�R�R�((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR �s		cC@s>y|j|jSWn%tjk
r9|jj�|jSXdS(N(RR�RtFilteredRepoLookupErrorR(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR��sc	C@s(t|j|jd|d|jd|�S(sMopens an arbitrary revision of the file without
        opening a new filelogR�R�R)(R0RR�R�(RR�R)((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR0�scC@s|jj|jdt�S(Ntraw(R�trevisionRR�(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pytrawdata�scC@s|jj|j�S(slow-level revlog flags(R�RtR(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pytrawflags�scC@s�y|jj|j�SWndtjk
r}|jjjdd�dkrLdStjt	d�t
|j�dt	d���nXdS(NtcensortpolicytignoreR�scensored node: %sthints"set censor.policy to ignore errors(R�R�RRtCensoredNodeErrorRRVtconfigtAbortRR(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR�scC@s|jj|j�S(N(R�R
R(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR
�scC@s�|jj|j�}|sdS|j�|j�kr;|S|j�}|j}xK|jj�D]:}y||j	|�kr�dSWq`t
jk
r�q`Xq`W|S(s#check if file was actually renamed in this changeset revision

        If rename logged in file revision, we report copy for changeset only
        if file revisions linkrev points back to the changeset in question
        or both changeset parents contain different file revisions.
        N(R�RRR9R:RR{R�RnRRR�(RRtnameR#R!((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR
�s		c	C@sJ|jj|j�}g|D]*}t|j|jd|d|j�^qS(NR�R�(R�R�RR0RR�(RR�R�((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR��sN(R$R�R�R9R R�R�R0RBRCRR
R
R�(((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR0�s					tcommittablectxcB@s�eZdZdd$d$d$d$d�Zd�Zeje�Zd�Z	e	Z
d�Zed��Z
ed��Zed��Zed	��Zd
�Zd�Zd�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z d�Z!d�Z"d�Z#d�Z$d�Z%d�Z&d �Z'd!�Z(d"�Z)e*e+e+d#�Z,RS(%s�A committablectx object provides common functionality for a context that
    wants the ability to commit, e.g. workingctx or memctx.R�cC@stt|�j|�d|_d|_||_|rLtj|�|_	n|r^||_
n|rp||_ni|_|r�|j
�|_nd|jkr�ytj|jjj��}Wn&tk
r�tjtd���nX||jd<n|jddkrd|jd<ndS(NR�sbranch name not in UTF-8!R�R�(R�RLR R9R'RZt_textRt	parsedatet_datet_usert_statust_extraR�Rt	fromlocalRtdirstateR�tUnicodeDecodeErrorRRJR(RRttextR�R�R�R�R�((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR �s*				
cC@st|jd�dS(Nit+(tbytesRm(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR"
scC@stS(N(R�(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR�sc@s�|jjj�j�|j�}t|�dkrX|dj����fd�}nY|\}}|j|�}|j�|j�|j��������fd�}|S(Niic@s�||�}�j|�S(N(Rt(R�(t	copiesgettman(s7/usr/lib64/python2.7/site-packages/mercurial/context.pytfunc sc@sr�||�}�j|��j|��j|�}}}||krN|S||kr^|S||krn|SdS(NR�(Rt(R�tfl1tfl2tfla(RYtm1tm2tma(s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR[*s/(RRTtcopiesR�RnRpR4R�(RRnR[RoRqtpa((RYR_R`RaRZs7/usr/lib64/python2.7/site-packages/mercurial/context.pyt_buildflagfuncs&cC@s|jjj|j�S(N(RRTtflagfuncRd(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyt	_flagfunc7scC@s
|jj�S(N(RR5(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyRQ;scC@s|jjj�S(N(RRVtusername(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyRP?scC@s=|jj}|jdd�}|dkr9tj�}n|S(Ntdevelsdefault-date(RRVt
configdateR9Rtmakedate(RRVR�((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyROCs
cC@sdS(N(R9(RRX((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyRYKscC@sdS(N(R9(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR�NscC@s|jp|jjj�S(N(RPRRVRg(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR�PscC@s|jS(N(RO(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR�RscC@s|jS(N(RM(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR�TscC@s$t|jj|jj|jj�S(N(R�RQRIRJRK(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyRwVscC@s
|jjS(N(RQRI(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyRIZscC@s
|jjS(N(RQRJ(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyRJ\scC@s
|jjS(N(RQRK(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyRK^scC@s
|jjS(N(RQR;(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR;`scC@stj|jd�S(NR�(RR�RR(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR�bscC@s
d|jkS(NR�(RR(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR�dscC@s|jS(N(RR(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR�fscC@stS(N(R)(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR�iscC@sgS(N((R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR�lscC@s4g}x'|j�D]}|j|j��qW|S(N(RnR�R�(RtbR!((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR�oscC@s9tj}x)|j�D]}t||j��}qW|S(N(RtdraftRnR8R^(RR^R!((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR^us	cC@stS(N(R)(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR�{scC@sgS(N((R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR�~scC@sed|jkr;y|jj|�SWq;tk
r7dSXny|j|�SWntk
r`dSXdS(NR-R�(RsR-RtRuRftOSError(RR{((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyRt�s

cC@s|jdj|�S(s1return the "best" ancestor context of self and c2i(RmR�(RR�((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR��sc	C@s@t|jjj|jj|�dt|j�dtdt��S(sGenerates matching file names.tsubreposR<R=(R�RRTR�R�RWR�R)(RR((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR��s!c@sA|jj|�}|jj�t�fd��j|�D��S(Nc3@s%|]}�|dkr|VqdS(R�N((R�R�(tds(s7/usr/lib64/python2.7/site-packages/mercurial/context.pys	<genexpr>�s(RR�RTR�R�(RR((Ros7/usr/lib64/python2.7/site-packages/mercurial/context.pyR��scc@sex|jD]}|Vq
WxE|jjjg|jD]}|j�^q2�D]}|j|VqKWdS(N(RmRR�R�R:(RR!R�((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR��s
	)cC@s�|jjj��vx1|j�|j�D]}|jjj|�q*Wx'|j�D]}|jjj|�qTW|jjj|�WdQX|jjj	|jj
��dS(sQPerform post-commit cleanup necessary after committing this ctx

        Specifically, this updates backing stores this working context
        wraps to reflect the fact that the changes reflected by this
        workingctx have been committed.  For example, it marks
        modified and added files as normal in the dirstate.

        N(RRTtparentchangeRIRJtnormalRKtdropt
setparentstwritetcurrenttransaction(RR!R�((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyt
markcommitted�s
cC@stS(N(R)(RtmissingR�R�((s7/usr/lib64/python2.7/site-packages/mercurial/context.pytdirty�sN(-R$R�R�R9R R"RR�R�R�R�RdR�RfRQRPRORYR�R�R�R�RwRIRJRKR;R�R�R�R�R�R�R^R�R�RtR�R�R�R�RvR)R�Rx(((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyRL�sL			 																									t
workingctxcB@seZdZdddddd�Zd�Zd�Zd�Zed��Z	d�Z
dd�Zee
e
d	�Zdd
�Zdd�Zd�Zd
�Zddddedd�Zd�Zd�Zd�Zeeed�Zed��Zd�Zd�Zd�Zd�ZRS(syA workingctx object makes access to data related to
    the current working directory convenient.
    date - any valid date string or (unixtime, offset), or None.
    user - username string, or None.
    extra - a dictionary of extra values, or None.
    changes - a list of file lists as returned by localrepo.status()
               or None to use the repository status.
    R�cC@s)tt|�j||||||�dS(N(R�RyR (RRRVR�R�R�R�((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR �scc@s9|jj}x&|D]}||dkr|VqqWdS(NR�(RRT(RRMR�((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR3�s
cC@s|jj|dkS(Ns?r(RRT(RR.((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR/�scC@s
tt�S(N(RR	(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR�scC@sp|jjj�}|dtkr/|d }n|jj�}g|D]'}t|j|jj|�|�^qES(Nii����(RRTRnRRR�R�R:(RR!tunfiR�((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyRm�s

cC@s|jtt|�j|�S(N(R-R�RyR~(RR{((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR~�scC@st|j|d|d|�S(s-get a file context from the working directoryRyR�(tworkingfilectxR(RR{R�((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR0�scC@s�x6t|j�D]%}|j|�jd|�rtSqW|rK|j�p�|ro|j�|j�j�kp�|j�p�|j	�p�|j
�p�|o�|j�S(s-check whether a working directory is modifiedRw(R�RWR�RxR�RqR�RoRIRJRKR;(RRwR�R�RC((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyRx�s$$c
@s�|jj���|jj|jj}���fd�}g}|jjj}x�|D]�}tj|tj	j
�|��y||�}Wn>tk
r�|jt
d�||��|j|�qWnX|jdd�}	|	dkr.|j|	kr.|jt
d�|d|jd||�f�ntj|j�pOtj|j�s|jt
d	�||��|j|�qW�|d
kr�|jt
d�||��qW�|dkr��j|�qW�j|�qWW|SWdQXdS(
Nc@s�jtj�|��S(N(tpathtoRR�(R�(RoR�(s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR/�R�s%s does not exist!
RVslarge-file-limitiso%s: up to %d MB of RAM may be required to manage this file
(use 'hg revert %s' to cancel the pending addition)
ii@Bs:%s not added: only files and symlinks supported currently
tamns%s already tracked!
R�(RtwlockRVRTtwvfstlstatRt
checkportabletosR{R�RmR�RRAtconfigbytestst_sizetstattS_ISREGtst_modetS_ISLNKtnormallookuptadd(
RtlistR�RVtuipathtrejectedR�R�tsttlimit((RoR�s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR��s6


%$ c	@s�|jj���|jj���fd�}g}x�|D]�}||jjkr�|jjjtd�||��|j|�q;|jj|dkr�|jjj|�q;|jjj|�q;W|SWdQXdS(Nc@s�jtj�|��S(N(R|RR�(R�(RoR�(s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR/R�s%s not tracked!
R�(	RR~RTRVR�RRAtremoveRr(RRwR�R�R�R�((RoR�s7/usr/lib64/python2.7/site-packages/mercurial/context.pytforgets
#c	C@s�|j�}|jj���|jj}x�|D]�}|jj|dkrt|jjjtd�|j|��q/||dkr�|d|p�|d|}|j�}|jj	|||j
��|jjj|�q/WWdQXdS(NR�s%s not removed!
ii(RnRR~RTRVR�RR|RtwwriteRtRq(RR�tpctxsRoR�Rtt((s7/usr/lib64/python2.7/site-packages/mercurial/context.pytundelete's
),cC@sOy|jjj|�}WnXtk
rs}|jtjkrC�n|jjjtd�|jj	j
|��dSXtj|j
�p�tj|j
�s�|jjjtd�|jj	j
|��n�|jj��s|jj	|dkr|jj	j|�n,|jj	|dkr/|jj	j|�n|jj	j||�WdQXdS(Ns%s does not exist!
s1copy failed: %s is not a file or a symbolic link
t?R�(RRR�RmterrnotENOENTRVR�RRTR|R�R�R�R�R~R�R�R�(RtsourcetdestR�terr((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR�4s"$R�c	C@sb|j}tj|j�}tj|j|j�||||d|jd|d|d|d|�S(NR�R�R�Rbticasefs(RRtfscasesensitiveR�R�RR�R�(	RR�R�R�R�R�RbR�R�((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyRIs	cC@s�|s|jjjr|Sg}x�|D]�}|j|�dkr�||j�}|dks�t|�dks�d|ks�tj|�r�|jjj	d|�q'q�n|j
|�q'W|S(NR�R�is
s*ignoring suspect symlink placeholder "%s"
(RRTt
_checklinkRtRRpRRRVtdebugRA(RRwtsaneR�RM((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyt_filtersuspectsymlinkUs
*	cC@s�|sgggfSg}g}g}|jd}x�t|�D]�}yb||ks�|j|�|j|�ks�||j||�r�|j|�n
|j|�Wq?ttfk
r�|j|�q?Xq?W|||fS(Ni(RmR�RtRBRARRm(RRwRIR;tfixupR�R�((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyt_checklookupis

*c	C@s'|jj�}|s|r#z�y�|jjj�}|jjt���|jjj�|kr�|r�|jjj}x|D]}||�qzW|jj�}|jjj|�n|r�x|D]}|||�q�Wq�n|jj	j
d�WdQXWntjk
r
nXWd|jj
�XndS(s1update dirstate for files that are actually cleans*skip updating dirstate: identity mismatch
N(RtpostdsstatusRTtidentityR~R)RqRuRtRVR�Rt	LockErrortclearpostdsstatus(	RR5R�t
poststatustoldidRqR�ttrtps((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyt_poststatusfixup�s(

c	C@s4g}d|kr$t|j�}n|jjj||d|d|d|�\}}g}|r�|j|�\}	}
}|jj|	�|jj|
�|r�|r�|j	j|�q�n|j
||�|j�r0|js�|j
s�|j	r$tj|j|j|j|jggg�|_q0||_n|S(s7Gets the status from the dirstate -- internal use only.s.hgsubR=R8R<(R�RWRRTR5R�RIR�R;R8R�talwaysR<R=RRJRKRQ(RRR=R8R<RnRBRCR�t	modified2tdeleted2((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyt_dirstatestatus�s&cC@s|j|j�S(sLgenerate a manifest corresponding to the values in self._status

        This reuse the file nodeid from parent, but we use special node
        identifiers for added and modified files. This is used by manifests
        merge to see that files are different and by update logic to avoid
        deleting newly added files.
        (R6RQ(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR-�s	cC@s�|j�}|dj�j�}|j}xut|jft|jffD]U\}}xF|D]>}|||<y|j|||��Wq]t	k
r�q]Xq]WqJWx.|j
|jD]}||kr�||=q�q�W|S(s9Builds a manifest that includes the given status results.i(RnR4R�RfRRJRRItsetflagRmR;RK(RR5RnRZtfftiR�R�((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR6�s	


cC@so|j||||�}|j|j�|j(||jdkrktt|�j||||||�}n|S(sCbuild a status with respect to another context

        This includes logic for maintaining the fast path of status when
        comparing the working directory against its parent, which is to skip
        building a new manifest if self (working directory) is not comparing
        against its parent (repo['.']).
        t.(R�R�RIRR�RyRT(RR*RCRRDRERF((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyRT�s	c@s5��jdkr1��fd�}||_n|S(s�override the match method with a filter for directory patterns

        We use inheritance to customize the match.bad method only in cases of
        workingctx since it belongs only to the working directory when
        comparing against the parent changeset.

        If we aren't comparing against the working directory's parent, then we
        just use the default match object sent to us.
        R�c@sO|�krK�j|�rK�jjjd�jjj|�|f�ndS(Ns%s: %s
(R�RRVR�RTR|(R�R�(R*R(s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR�s(RR�(RR*RR�((R*Rs7/usr/lib64/python2.7/site-packages/mercurial/context.pyR7s
cC@s-tt|�j|�tj|j|�dS(N(R�RyRvRtaftercommitR(RR!((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyRvsN(R$R�R�R9R R3R/RR�RmR~R0R)R�RxR�R�R�R�RR�R�R�R�R-R6RTR7Rv(((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyRy�s2					$	
				(			tcommittablefilectxcB@sGeZdZddd�Zd�ZeZd�Zd�Zd�Z	RS(s�A committablefilectx provides common functionality for a file context
    that wants the ability to commit, e.g. workingfilectx or memfilectx.cC@sY||_||_d|_d|_|_|dk	rC||_n|rU||_ndS(N(RR�R9R�RRR�R�(RRR{R�R�((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR s			cC@stS(N(R�(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR�*scC@s
|j�S(N(R:(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR/scC@s�d�}|j}|j}|jj}|j�}|rI|dg}n|||d|�|fg}x1|dD]%}|j||||�|f�qsWg|D]6\}}	}
|	tkr�|j|d|	d|
�^q�S(s5return parent filectxs, following copies if necessarycS@s|jj|t�S(N(R-R�R(R�R{((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR5siiR�R�N(N(	R�R�R�RmRR9RARR+(RRR{R-tpclRR.tpcR!R�R�((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyRn3s			#cC@sgS(N((R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR�HsN(
R$R�R�R9R R�R�RRnR�(((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR�s			R{cB@s�eZdZddd�Zed��Zd�Zd�Zd�Z	d�Z
d�Zd�Zd	�Z
d
�Zed�Zed�Zd
�Zd�Zd�ZRS(suA workingfilectx object makes access to data related to a particular
       file in the working directory convenient.cC@s#tt|�j||||�dS(N(R�R{R (RRR{R�Ry((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR NscC@s
t|j�S(N(RyR(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR�QscC@s|jj|j�S(N(RtwreadR�(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyRUscC@sE|jjj|j�}|s"dS||jjdjj|t	�fS(Ni(
RRTtcopiedR�R9R�RmR-R�R(Rtrp((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyRWscC@s|jjj|j�jS(N(RRR�R�R�(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR
]scC@su|jj�\}}y'|jjj|j�tj|fSWn2tk
rp}|j	t	j
krf�n||fSXdS(N(R�R�RRR�R�R�tST_MTIMERmR�R�(RR�ttzR�((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR�_s'cC@s|jjj|j�S(N(RRtexistsR�(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR�hscC@s|jjj|j�S(N(RRtlexistsR�(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR�kscC@s|jjj|j�S(N(RRtauditR�(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR�nscC@s
|j|�S(sVcompare with other file context

        returns True if different than fctx.
        (RB(RR((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyRBqscC@s>|jjjdd�}|jjj|jd|d|�dS(s+wraps unlink for a repo's working directorytexperimentaltremoveemptydirst
ignoremissingtrmdirN(RRVt
configboolRt
unlinkpathR�(RR�R�((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR�zscK@s&|jj|j||d||�dS(swraps repo.wwritetbackgroundcloseN(RR�R�(RRRtR�tkwargs((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyRt�scC@s9|jj|jdkr5|jjj||j�ndS(smarks this file a copy of `src`tnmaN(RRTR�R�(Rtsrc((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyt
markcopied�scC@s�|jj}|j}|j|�|jjjdd�r�|j|�ro|j|�ro|j|dt	�nxut
ttj
|���D]&}|j|�r�|j|�Pq�q�Wn/|j|�r�|j|�r�|j|�ndS(ssRemoves conflicting items in the working directory so that
        ``write()`` can be called successfully.
        R�smerge.checkpathconflictstforciblyN(RRR�R�RVR�tisdirRtrmtreeR�R�R�Rtfinddirstisfileorlinktunlinkt
removedirs(RRR�R!((s7/usr/lib64/python2.7/site-packages/mercurial/context.pytclearunknown�s	
"
cC@s |jjj|j||�dS(N(RRtsetflagsR�(RR�R�((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR��sN(R$R�R�R9R R�R�RRR
R�R�R�R�RBR)R�RtR�R�R�(((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR{Ks 												toverlayworkingctxcB@sIeZdZd�Zd�Zd�Zed��Zed��Zd�Z	d�Z
d�Zd	�Zd
�Z
d�Zd�Zd
�Zd�Zd�Zd�Zd�Zdd�Zd�Zd�Zd�Zd�Zd�Zd d d d d d d�Zd�Zd�Zd�Zd�Z d d dd�Z!d d�Z"RS(!s�Wraps another mutable context with a write-back cache that can be
    converted into a commit context.

    self._cache[path] maps to a dict with keys: {
        'exists': bool?
        'date': date?
        'data': str?
        'flags': str?
        'copied': str? (path or None)
    }
    If `exists` is True, `flags` must be non-None and 'date' is non-None. If it
    is `False`, the file was deleted.
    cC@s$tt|�j|�|j�dS(N(R�R�R R8(RR((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR �scC@s)||_|g|_tj|d�dS(NR-(t_wrappedctxRmRtclearcachedproperty(Rt
wrappedctx((s7/usr/lib64/python2.7/site-packages/mercurial/context.pytsetbase�s	cC@s|j|�rj|j|drT|j|dr@|j|dS|j|j�Sq{tjd|��n|j|j�SdS(NR�RsNo such file or directory: %s(tisdirtyt_cacheR�RRtProgrammingError(RR{((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR�s	
cC@s�|j�}|dj�j�}|j}x4|j�D]&}t||<|j|||��q8Wx4|j�D]&}t||<|j|||��qoWx|j	�D]
}||=q�W|S(Ni(
RnR4R�RfRJRR�RIRRK(RRnRZR}R{((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR-�s	

c@s�fd�}|S(Nc@s�j|dS(NRt(R�(R{(R(s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR��s((RR�((Rs7/usr/lib64/python2.7/site-packages/mercurial/context.pyRf�scC@s$t|j�|j�|j��S(N(R�RJRIRK(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyRw�scC@s@g|jj�D],}|j|dr|j|�r|^qS(NR�(R�tkeyst_existsinparent(RR�((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyRI�s'cC@sAg|jj�D]-}|j|dr|j|�r|^qS(NR�(R�R�R�(RR�((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyRJ�s'cC@sAg|jj�D]-}|j|dr|j|�r|^qS(NR�(R�R�R�(RR�((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyRK�scC@stS(N(R�(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR��scC@s3|j|�r|j|dS|j|j�SdS(NR�(R�R�R�R�(RR{((s7/usr/lib64/python2.7/site-packages/mercurial/context.pytfiledate�scC@s6|j|�r#||j|d<ntjd��dS(NR�s$markcopied() called on clean context(R�R�RR�(RR{torigin((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR��scC@s1|j|�r|j|dStjd��dS(NR�s"copydata() called on clean context(R�R�RR�(RR{((s7/usr/lib64/python2.7/site-packages/mercurial/context.pytcopydatascC@s]|j|�rH|j|dr/|j|dStjd|j��n|j|j�SdS(NR�RtsNo such file or directory: %s(R�R�RR�R�R�Rt(RR{((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyRts	cC@s.||jkr|j|dS||j�kS(NR�(R�Ro(RR.((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR/scC@s/y|j|tSWntjk
r*tSXdS(N(R�R�RRvR)(RR{((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR�s
c
@s[�fd�}|jd�}xOtjt|��D]8}dj|d|!�}|�kr4|||�q4q4W�jd|dgdd�}�j�j�j|�}|j	�}t|�dkrWt|�dkr�|d|kr�dSg|D]}	|	�kr�|	^q�}|sdSt
jd	||�j�t|�d
j|�f��ndS(s$Replicates conflict checks done by wvfs.write().

        Since we never write to the filesystem and never call `applyupdates` in
        IMM, we'll never check that a path is actually writable -- e.g., because
        it adds `a/foo`, but `a` is actually a file in the other commit.
        c@ssd�j�|j�krGtjd||�j�j�f��n(tjd||�j�j�f��dS(NR�s*error: %s conflicts with symlink %s in %s.s+error: '%s' conflicts with file '%s' in %s.(RoRtRRJR:(R{t	component(R(s7/usr/lib64/python2.7/site-packages/mercurial/context.pytfail&s		R�iR�R�R{iNs_error: file '%s' cannot be written because  '%s/' is a folder in %s (containing %d entries: %s)s, (tsplitRtxrangeRpR�RRoR4R�R�RRJ(
RR{R�t
componentsR�R�RR�tmfilesR�((Rs7/usr/lib64/python2.7/site-packages/mercurial/context.pyt_auditconflictss$"%	R�c
K@sZ|dkrtjd��n|j|�|j|dtd|dtj�d|�dS(Nsdata must be non-NoneR�RR�Rt(R9RR�R�t
_markdirtyR�RRj(RR{RRtR�((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyRtLs

$cC@sMd}|rd}n|r$d}n|j|dtdtj�d|�dS(NR�R�R�R�R�Rt(R�R�RRj(RR{R�R�R}((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR�Ss		cC@s|j|dt�dS(NR�(R�R)(RR{((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR�\scC@st|j|�rg|j|drUd|j|dkrU|j|j|dj��S|j|dSn|j|�S(sqexists behaves like `lexists`, but needs to follow symlinks and
        return False if they are broken.
        R�R�RtR(R�R�R�tstripR�(RR{((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR�_scC@s+|j|�r|j|dS|j|�S(s'lexists returns True if the path existsR�(R�R�R�(RR{((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR�nscC@s_|j|�rN|j|dr5t|j|d�Stjd|j��n|j|j�S(NR�RsNo such file or directory: %s(R�R�RpRR�R�R�R
(RR{((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR
us	c
@s�|d	krC�jj�}t|�dkrC|dd	f}qCn|dd	krm�j|dd	f}n"�j|d�j|df}�jj�}�fd�}	t�j||||	d|d|d|d|d|�S(
s�Converts this ``overlayworkingctx`` into a ``memctx`` ready to be
        committed.

        ``text`` is the commit message.
        ``parents`` (optional) are rev numbers.
        iic	@sm�j|dret|||�j|dd�j|dkd�j|dk�j|d�SdSdS(NR�RR�RtR�R�(R�t
memfilectxR9(RtmemctxR{(R(s7/usr/lib64/python2.7/site-packages/mercurial/context.pytgetfile�sR�R�R�R�teditorN(R9R�RnRpRR�R�R�(
RRVR�R�R�RnR�R�RwR�((Rs7/usr/lib64/python2.7/site-packages/mercurial/context.pyttomemctx~s	"cC@s
||jkS(N(R�(RR{((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR��scC@s|j�t|j�dkS(Ni(t_compactRpR�(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pytisempty�s
cC@s
i|_dS(N(R�(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR8�scC@s�g}x�|jj�D]z}|j|}yM|j|}|j�|dkru|j�|dkru|j|�nWqtjk
r�qqXqWx|D]}|j|=q�W|S(s�Removes keys from the cache that are actually clean, by comparing
        them with the underlying context.

        This can occur during the merge process, e.g. by passing --tool :local
        to resolve a conflict.
        RRt(R�R�R�RRtRARRv(RR�R{tcachet
underlying((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR��s


cC@s�|rO|dkrO|jj|�p'i}|jd�pI|j|j�}ni|d6|d6|d6|d6dd6|j|<dS(NRR�R�RtR�(R9R�R�R�R(RR{R�RR�Rttoldentry((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR��s%cC@st|j|d|d|�S(NR<R�(toverlayworkingfilectxR(RR{R�((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR0�sN(#R$R�R�R R�RR�R-RfRwRIRJRKR�R�R�R�RtR/R�R�RtR�R�R�R�R
R9R�R�R�R8R�R�R0(((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR��s@
												
		
	-							"				R�cB@s�eZdZddd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d�Zd	�Zd
�Z
d�Zd�Zd
�Zed�Zed�Zd�ZRS(s�Wrap a ``workingfilectx`` but intercepts all writes into an in-memory
    cache, which can be flushed through later by calling ``flush()``.cC@s>tt|�j||||�||_||_||_dS(N(R�R�R Rt_parentR�(RRR{R�R<((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR �s
		cC@s|j�|j�kS(N(R(RR((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyRB�scC@s|jS(N(R�(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR��scC@s|jj|j�S(N(R�RR�(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR�scC@s|jj|j�S(N(R�R�R�(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR��scC@s
|j�S(N(R�(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR��scC@s|jj|j�S(N(R�R�R�(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR��scC@sB|jj|j�}|sdS||jjdjj|t�fS(Ni(	R�R�R�R9R�RmR-R�R(RR{((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR�scC@s|jj|j�S(N(R�R
R�(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR
�scC@s|jj|j|�dS(N(R�R�R�(RR�((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR��scC@sdS(N((R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR�scC@s|jj|j�S(N(R�RtR�(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyRtscC@s|jj|j||�S(N(R�R�R�(RRR((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR�scK@s|jj|j|||�S(N(R�RtR�(RRRtR�R�((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyRt
scC@s|jj|j�S(N(R�R�R�(RR�((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR�
scC@sdS(N((R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR�sN(R$R�R�R9R RBR�RR�R�R�RR
R�R�RtR�R)RtR�R�(((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR��s"												tworkingcommitctxcB@sDeZdZddddd�Zeeed�Zed��ZRS(s�A workingcommitctx object makes access to data related to
    the revision being committed convenient.

    This hides changes in the working directory, if they aren't
    committed in this context.
    R�cC@s)tt|�j||||||�dS(N(R�R�R (RRR�RVR�R�R�((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR scC@s�|r4g|jD]}||jkr|^q}ng}tjg|jjD]}||�rM|^qMg|jjD]}||�ru|^qug|jjD]}||�r�|^q�ggg|�S(s�Return matched files only in ``self._status``

        Uncommitted files appear "clean" via this context, even if
        they aren't actually so in the working directory.
        (R-t_changedsetRR5RQRIRJRK(RRR=R8R<R�((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR�s..((cC@s<t|jj�}|j|jj�|j|jj�|S(s8Return the set of files changed in this context
        (R>RQRItupdateRJRK(Rtchanged((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR�.sN(	R$R�R�R9R R)R�R�R�(((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR�sc@si���fd�}|S(s�Create a filectxfn that caches based on the path.

    We can't use util.cachefunc because it uses all arguments as the cache
    key and this creates a cycle since the arguments include the repo and
    memctx.
    c@s-|�kr%�|||��|<n�|S(N((RR�R{(R�R[(s7/usr/lib64/python2.7/site-packages/mercurial/context.pyt
getfilectx@s((R[R�((R�R[s7/usr/lib64/python2.7/site-packages/mercurial/context.pytmakecachingfilectxfn7sc@s�fd�}|S(s�Given a context return a memfilectx for ctx[path]

    This is a convenience method for building a memctx based on another
    context.
    c@s`�|}|j�}|r)|d}nt||||j�d|j�d|j�d|�S(NiRRR�(RR�RRR(RR�R{RR�(R�(s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR�Ms

((R�R�((R�s7/usr/lib64/python2.7/site-packages/mercurial/context.pytmemfilefromctxGsc@s�fd�}|S(s�Given a patch (e.g. patchstore object) return a memfilectx

    This is a convenience method for building a memctx based on a patchstore.
    c@sY�j|�\}}}|dkr(dS|\}}t||||d|d|d|�S(NRRR�(R�R9R�(RR�R{RtmodeR�RR(t
patchstore(s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR�_s((R�R�((R�s7/usr/lib64/python2.7/site-packages/mercurial/context.pytmemfilefrompatchZsR�cB@s_eZdZeZdddded�Zdd�Zd�Z	e
d��Ze
d��ZRS(sNUse memctx to perform in-memory commits via localrepo.commitctx().

    Revision information is supplied at initialization time while
    related files data and is made available through a callback
    mechanism.  'repo' is the current localrepo, 'parents' is a
    sequence of two parent revisions identifiers (pass None for every
    missing parent), 'text' is the commit message and 'files' lists
    names of files touched by the revision (normalized and relative to
    repository root).

    filectxfn(repo, memctx, path) is a callable receiving the
    repository, the current memctx object and the normalized path of
    requested file, relative to repository root. It is fired by the
    commit function for every file in 'files', but calls order is
    undefined. If the file is available in the revision being
    committed (updated or added), filectxfn returns a memfilectx
    object. If the file was removed, filectxfn return None for recent
    Mercurial. Moved files are represented by marking the source file
    removed and the new file added with copy information (see
    memfilectx).

    user receives the committer name and defaults to current
    repository username, date is the commit date in any format
    supported by dateutil.parsedate() and defaults to current date, extra
    is a dictionary of metadata or is left empty.
    cC@sTtt|�j|||||�d|_d|_g|D]}|pJt^q;}|\}}
g||
fD]}|j|^ql|_t	t
|��}||_|	dk	r�tj
|	�|jd<ni|_t|tj�r�t|�}nt|�s
t|�}nt|�|_|
rP|
|j|g�|_|jj|j�ndS(NR�(R�R�R R9R'RZRRRmR�R>t_filesRRSRRRWR�Rt	filestoreRtcallableR�R�t
_filectxfnRMtsavecommitmessage(RRRnRVRwt	filectxfnR�R�R�R�R�R!RoRq((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR �s&"		)		cC@s|j|j||�S(spget a file context from the working directory

        Returns None if file doesn't exist and should be removed.(RR(RR{R�((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR0�scC@s|jj|�S(scommit context to the repo(Rt	commitctx(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pytcommit�scC@s�|jd}|j�j�}x|jjD]}t||<q,Wx|jjD]}t||<qMWx*|jjD]}||krn||=qnqnW|S(s;generate a manifest based on the return values of filectxfni(	RmR4R�RQRIRRJRRK(RR�RZR�((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR-�s
c@s�|j�j��|jd}|j�tkrR|j����fd�}n�fd�}ggg}}}xT|jD]I}||�s�|j|�q||r�|j|�q|j|�qWtj|||gggg�S(sHCalculate exact status from ``files`` specified at construction
        ic@s|�kp|�kS(N((R�(tman1tman2(s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR/�R�c@s
|�kS(N((R�(R	(s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR/�R�(	RoR4RmR!RRRARR5(RRqtmanagingRIRJRKR�((R	R
s7/usr/lib64/python2.7/site-packages/mercurial/context.pyRQ�s

N(
R$R�R�R�t_returnnoneformissingfilesR9R)R R0RR�R-RQ(((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR�is	R�cB@sGeZdZeedd�Zd�Zd�Zed�Zd�Z	RS(spmemfilectx represents an in-memory file to commit.

    See memctx and committablefilectx for more details.
    cC@sztt|�j||d|�||_|r:d|_n|rLd|_n	d|_d|_|rv|tf|_ndS(sQ
        path is the normalized file path relative to repository root.
        data is the file content as a string.
        islink is True if the file is a symbolic link.
        isexec is True if the file is executable.
        copied is the source file path if current file was copied in the
        revision being committed, or None.R�R�R�N(R�R�R R9t_dataR	R
R(RRR�R{RRRR�((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR �s				cC@s|j�|j�kS(N(R(RR((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyRB�scC@s|jS(N(R
(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR�scC@s|j|j=dS(s+wraps unlink for a repo's working directoryN(R�R�(RR�((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR��scK@s
||_dS(swraps repo.wwriteN(R
(RRRtR�((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyRt	sN(
R$R�R�R)R9R RBRR�Rt(((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR��s		tmetadataonlyctxcB@steZdZddddded�Zd�Zed��Zdd�Z	d�Z
ed��Zed��Z
RS(	s�Like memctx but it's reusing the manifest of different commit.
    Intended to be used by lightweight operations that are creating
    metadata-only changes.

    Revision information is supplied at initialization time.  'repo' is the
    current localrepo, 'ctx' is original revision which manifest we're reuisng
    'parents' is a sequence of two parent revisions identifiers (pass None for
    every missing parent), 'text' is the commit.

    user receives the committer name and defaults to current repository
    username, date is the commit date in any format supported by
    dateutil.parsedate() and defaults to current date, extra is a dictionary of
    metadata or is left empty.
    c	C@s�|dkr|j�}ntt|�j|||||�d|_d|_||_|j�|_	|dkr�|j
�}n)g|D]}	|	dk	r�||	^q�}|}x't|�dkr�|j|t
�q�W|\}
}|_|j�j
\}}
|
t
kr1|
j�|kr1td��n|t
kr^|j�|
kr^td��n|j�|_i|_|r�||j|g�|_|jj|j�ndS(Nis=can't reuse the manifest: its p1 doesn't match the new ctx p1s=can't reuse the manifest: its p2 doesn't match the new ctx p2(R9R�R�RR R'RZt_originalctxR�t
_manifestnodeRnRpRARRmR\tRuntimeErrorRwRRWRRMR(RRtoriginalctxRnRVR�R�R�R�R!RoRqtmp1tmp2((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR 	s0"			)	cC@s|jS(N(R(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR�9	scC@s|jj|jS(N(RRxR(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR[<	scC@s|jj|d|�S(NR�(RR0(RR{R�((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR0@	scC@s|jj|�S(scommit context to the repo(RR(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyRC	scC@s
|jj�S(N(RR4(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR-G	sc@s�|j�j��|jd}|j�tkrR|j����fd�}n�fd�}ggg}}}xV|jD]K}||�s�|j|�q||kr�|j|�q|j|�qWtj|||gggg�S(sjCalculate exact status from ``files`` specified in the ``origctx``
        and parents manifests.
        ic@s|�kp|�kS(N((R�(R	R
(s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR/W	R�c@s
|�kS(N((R�(R	(s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR/Y	R�(	RoR4RmR!RRRARR5(RRqRRIRJRKR�((R	R
s7/usr/lib64/python2.7/site-packages/mercurial/context.pyRQK	s
N(R$R�R�R9R)R R�R�R[R0RR-R�RQ(((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR	s	"		tarbitraryfilectxcB@sYeZdZd	d�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d�ZRS(
s�Allows you to use filectx-like functions on a file in an arbitrary
    location on disk, possibly not in the working directory.
    cC@s||_||_dS(N(RR�(RR{R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR j	s	cC@s�d|j�kp!d|j�k}|rlt|t�rl|jrltj|j�|jj|j���S|j�|j�kS(NR�(	RtR�R{RtfilecmpRBR{twjoinR(RRtsymlinks((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyRBo	s$)cC@s|jS(N(R�(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR{z	scC@sdS(NR�((R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyRt}	scC@stj|j�S(N(RtreadfileR�(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR�	scC@s)t|jd��}|j�SWdQXdS(Ntrb(topenR�R�(RR�((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR>�	scC@stj|j�dS(N(RR�R�(R((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyR��	scK@s,t|jd��}|j|�WdQXdS(Ntwb(RR�Rt(RRRtR�R�((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyRt�	sN(R$R�R�R9R RBR{RtRR>R�Rt(((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyRf	s						(;t
__future__RR�RR�R�ti18nRR!RRRRRRRR	R�R
RRR
RR�RReRRRRRRRRRRtutilsRRR�tobjectRR�R�R0RLRyR�R{R�R�R�R�R�RR�R�RR(((s7/usr/lib64/python2.7/site-packages/mercurial/context.pyt<module>s>:
j	�I��aj��a/X�6;$			t*_