-=[ Mr. Bumblebee ]=-
_Indonesia_

Path : /usr/lib/python2.7/dist-packages/mercurial/
File Upload :
Current File : //usr/lib/python2.7/dist-packages/mercurial/context.pyc


\,Tc@sddlmZmZmZmZmZddlmZddlZddl	Z	ddl
Z
ddlZddlZddl
Z
ddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZe
jZdefdYZedZdefdYZd	efd
YZ de fdYZ!d
efdYZ"de"fdYZ#de fdYZ$de$fdYZ%de"fdYZ&de$fdYZ'dS(i(tnullidtnullrevtshortthextbin(t_NtbasectxcBseZdZddZdZdZdZdZdZdZ	d	Z
d
ZdZdZ
d
ZdZdZedZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!d Z"d!Z#d"Z$d#Z%d$Z&d%Z'd&Z(gd.d.d'd(Z*d.d.d)Z+ed*Z,d+Z-d,Z.d.d.e/e/e/e/d-Z0RS(/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.tcOsJt|tr|Stt|j|}||_t|_t|_|S(N(	t
isinstanceRtsupert__new__t_repoRt_revRt_node(tclstrepotchangeidtargstkwargsto((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyR
s			cCst|jS(N(Rtnode(tself((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyt__str__'scCs
|jS(N(trev(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyt__int__*scCsdt|jt|fS(Ns<%s %s>(ttypet__name__tstr(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyt__repr__-scCsEy,t|t|ko*|j|jkSWntk
r@tSXdS(N(RRtAttributeErrortFalse(Rtother((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyt__eq__0s,
cCs||kS(N((RR((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyt__ne__6scCs
||jkS(N(t	_manifest(Rtkey((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyt__contains__9scCs
|j|S(N(tfilectx(RR#((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyt__getitem__<sccs#xt|jD]}|VqWdS(N(tsortedR"(Rtf((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyt__iter__?scs|jrjjS|j}|j|jksf|jrytjfd|Dryjj	|Sjj}x*|j
D]}||s||=qqW|S(sgenerate a new manifest filtered by the match argument

        This method is for internal use only and mainly exists to provide an
        object oriented way for other contexts to customize the manifest
        generation.
        c3s|]}|kVqdS(N((t.0tfn(R(s5/usr/lib/python2.7/dist-packages/mercurial/context.pys	<genexpr>Os(talwaystmanifesttcopytfilestmatchfntexacttanypatstutiltalltintersectfilestkeys(RtmatchtsR/tmfR+((Rs5/usr/lib/python2.7/dist-packages/mercurial/context.pyt_manifestmatchesCs,cCs%|p$tj|jj|jjS(sreturn match.always if match is none

        This internal method provides a way for child objects to override the
        match operator.
        (tmatchmodR,Rtroottgetcwd(RRR8R7tlistignoredt	listcleantlistunknown((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyt_matchstatusXscCs)|j|jkr%|jn|S(sprovide a hook to allow child objects to preprocess status results

        For example, this allows other contexts, such as workingctx, to query
        the dirstate before comparing the manifests.
        (RR-(RRR8R7R>R?R@((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyt
_prestatusas
cCs|S(sprovide a hook to allow child objects to postprocess status results

        For example, this allows other contexts, such as workingctx, to filter
        suspect symlinks in the case of FAT32 and NTFS filesytems.
        ((RRR8R7R>R?R@((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyt_poststatuslscCs|j||}|j||}ggg}	}
}|d|d|d}}
}|j|jB}x|jD]\}}||kr&||kr||kr|j||j|ks|||kr|s||j||r|	j|n|r|j|n||=q{||kr{|
j|q{q{W|j}|rg|
D]}||kr_|^q_}
g|D]}||kr|^q}n|	|
|||
||gS(s.build a status with respect to another contextiii(R:t	withflagst	iteritemstflagstcmptappendR6(RRR8R7R>R?R@tmf1tmf2tmodifiedtaddedtcleantdeletedtunknowntignoredRDR+tmf2nodetremoved((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyt_buildstatusts, *
%(cCstj||jjS(N(tsubrepotstateRtui(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pytsubstatescCs|j|dS(Ni(RW(Rtsubpath((s5/usr/lib/python2.7/dist-packages/mercurial/context.pytsubrevscCs|jS(N(R(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRscCs|jS(N(R
(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRscCst|jS(N(RR(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRscCs|jS(N(R"(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyR-scCstj|jS(N(tphasest
phasenamestphase(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pytphasestrscCs|jtjkS(N(R\RZtpublic(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pytmutablescCstj||S(N(tfilesett
getfileset(Rtexpr((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRascCs|jtj|jdkS(s!True if the changeset is obsoletetobsolete(RtobsmodtgetrevsR(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRcscCs|jtj|jdkS(s True if the changeset is extincttextinct(RRdReR(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRfscCs|jtj|jdkS(s;True if the changeset is not obsolete but it's ancestor aretunstable(RRdReR(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRgscCs|jtj|jdkS(sTrue if the changeset try to be a successor of a public changeset

        Only non-public and non-obsolete changesets may be bumped.
        tbumped(RRdReR(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRhscCs|jtj|jdkS(sIs a successors of a changeset with multiple possible successors set

        Only non-public and non-obsolete changesets may be divergent.
        t	divergent(RRdReR(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRiscCs"|jp!|jp!|jS(s=True if the changeset is either unstable, bumped or divergent(RgRhRi(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyttroubledscCs^g}|jr"|jdn|jr>|jdn|jrZ|jdn|S(sreturn the list of troubles affecting this changesets.

        Troubles are returned as strings. possible values are:
        - unstable,
        - bumped,
        - divergent.
        RgRhRi(RgRHRhRi(Rttroubles((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRkscCs|jS(s)return contexts for each parent changeset(t_parents(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pytparentsscCs|jdS(Ni(Rl(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pytp1scCs0t|jdkr |jdSt|jdS(Niii(tlenRlt	changectxR(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pytp2scCsd|jkrey!|j||jj|fSWqetk
ratj|j|tdqeXnd|jks||jkr||j	kr|j	||j	j|fSn|j
jj|j
d|\}}|stj|j|tdn||fS(NR"snot found in manifestt_manifestdeltai(t__dict__R"RFtKeyErrorterrortManifestLookupErrorR
RR/RrRR-tfindt
_changeset(RtpathRtflag((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyt	_fileinfos!
!
%cCs|j|dS(Ni(R{(RRy((s5/usr/lib/python2.7/dist-packages/mercurial/context.pytfilenodescCs1y|j|dSWntjk
r,dSXdS(NiR(R{RutLookupError(RRy((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRFscCstj||S(N(RT(RRy((s5/usr/lib/python2.7/dist-packages/mercurial/context.pytsubstglobcCs=|j}tj|j|j||||d|jd|S(Ntauditortctx(RR;R7R<R=R(Rtpatstincludetexcludetdefaulttr((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyR7s	cKsq|dkr|j}n|dk	r7|j|}ntj|jj|}tj|j||d|d|S(s;Returns a diff generator for the given contexts and matcherR7toptsN(tNoneRnRtpatchtdiffoptsRVtdiff(Rtctx2R7RR((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRscCstj|jS(N(tscmutiltdirsR"(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyt_dirsscCs|jS(N(R(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRscCstS(N(R(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pytdirtysc
s|}|j|}t}	t|trNt|trNt}	||}}ngggggggg}
|j||
||||}|j||
||||}
|j||
||||}
|j||
||||}
|	r|
d|
d|
d<|
d<n|rxt	j
||D]\}|j}ytj
|}
|j|d|
d|d|d|dt}x:t|
|D])\}}|jfd|DqWWq tjk
r|jjjtd	q Xq Wnx|
D]}|jqWt|
S(
sreturn 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)
        iiR7RPRMROtlistsubreposc3s|]}d|fVqdS(s%s/%sN((R*R((RX(s5/usr/lib/python2.7/dist-packages/mercurial/context.pys	<genexpr>Oss#skipping missing subrepository: %s
(RRRRptTrueRARBRSRCRtitersubreposRYR;t
narrowmatchertstatustziptextendRuR}RVRtsortttuple(RRR7R>R?R@Rtctx1RtreversedRR~trev2tsubmatchR8trfilestsfilestl((RXs5/usr/lib/python2.7/dist-packages/mercurial/context.pyRsB

			 	%
N(1Rt
__module__t__doc__R
RRRR R!R$R&R)R:RARBRCRSt
propertycacheRWRYRRRR-R]R_RaRcRfRgRhRiRjRkRmRnRqR{R|RFR~RR7RRRRRR(((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRsZ																																								c	
sYfd}	i}
|r1tj||
d<nt|||||	|||
|	}|S(NcsFj|\}\}}}t|||d|d|d|d|S(Ntislinktisexectcopiedtmemctx(tgetfilet
memfilectx(RRRytdataRRR(tstore(s5/usr/lib/python2.7/dist-packages/mercurial/context.pyt
getfilectx]stbranch(tencodingt	fromlocalR(RRmttexttusertdateRR/RteditorRtextraR((Rs5/usr/lib/python2.7/dist-packages/mercurial/context.pyt
makememctx[sRpcBs%eZdZddZdZdZedZedZedZ	edZ
d	Zd
ZdZ
dZd
ZdZdZdZdZdZdZdZdZdZdZdZdddZedZdZdZ RS(sA changecontext object makes access to data related to a particular
    changeset convenient. It represents a read-only context already present in
    the repo.RcCs?t|trdS|dkr(d}n||_t|try|jj||_Wn*tk
rtj	t
d|nX||_dSt|trt
|}n|dkr|jj|_|jj|j|_dS|dkr
t|_t|_dS|dkrG|jj|_|jj|j|_dSt|dkry&||_|jj||_dSWqtk
rqXnyt|}t
||krtnt|j}|dkr||7}n|dks||kr	tn||_|jj||_dSWntttfk
rHnXt|d	kry/t||_|jj|j|_dSWqttfk
rqXn||jkr|j||_|jj|j|_dS||jjkr#|jj||_|jj|j|_dSy2|j||_|jj|j|_dSWntj	k
rknX|jj||_|jdk	r|jj|j|_dS||j jj!krtj"t
d
t#|ny%t|dkr
t$|}nWntk
r!nXtj	t
d|dS(s+changeid is a revision number, node, or tagNRt.sunknown revision '%s'tnullttipiii(s*working directory has unknown parent '%s'!(%RRRtintt	changelogRR
t
IndexErrorRutRepoLookupErrorRRtlongRtdirstateRnRRRRRoR}t
ValueErrort
OverflowErrorRt	TypeErrort
_bookmarkst
_tagscachettagst	branchtipt
_partialmatchRt
unfilteredRmtAbortRR(RRRRR((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyt__init__ls		
				
	
		
cCs0yt|jSWntk
r+t|SXdS(N(thashRRtid(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyt__hash__s
cCs
|jtkS(N(RR(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyt__nonzero__scCs|jjj|jS(N(RRtreadR(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRxscCs|jjj|jdS(Ni(RR-RRx(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyR"scCs|jjj|jdS(Ni(RR-t	readdeltaRx(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRrscCsX|jjj|j}|dtkr5|d }ng|D]}t|j|^q<S(Nii(RRt
parentrevsRRRp(Rtptx((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRls
cCs|jS(N(Rx(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyt	changesetscCs|jdS(Ni(Rx(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pytmanifestnodescCs|jdS(Ni(Rx(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRscCs|jdS(Ni(Rx(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRscCs|jdS(Ni(Rx(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyR/scCs|jdS(Ni(Rx(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pytdescriptionscCstj|jdjdS(NiR(RttolocalRxtget(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRscCsd|jdkS(Ntclosei(Rx(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pytclosesbranchscCs|jdS(Ni(Rx(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRscCs|jj|jS(N(RtnodetagsR
(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRscCs|jj|jS(N(Rt
nodebookmarksR
(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyt	bookmarksscCs|jjj|j|jS(N(Rt_phasecacheR\R(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyR\scCs|jtj|jdkS(Ntvisible(Rtrepoviewt
filterrevsR(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pythiddenscCs;|jjj|j}g|D]}t|j|^qS(s(return contexts for each child changeset(RRtchildrenR
Rp(RtcR((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyR	sccs;x4|jjj|jgD]}t|j|VqWdS(N(RRt	ancestorsRRp(Rta((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRs"ccs;x4|jjj|jgD]}t|j|VqWdS(N(RRtdescendantsRRp(Rtd((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRs"c	Cs@|dkr|j|}nt|j|d|d|d|S(s&get a file context from this changesettfileidRptfilelogN(RR|R%R(RRyRR((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyR%scsf|j}|d	kr(|jdj}n|jjj|j|}|sRtnt|dkrq|dnx{|jjj	ddD]F}|dkrqnt
|j|}|j|krPqqW|jjj|j||rV|jjj
tdtt|jt|fdjfdt|Dnt
|jS(
sC
        return the "best" ancestor context of self and c2
        iitmergetpreferancestort*s(note: using %s as ancestor of %s and %s
Rc3s1|]'}|krtdt|VqdS(s:      alternatively, use --config merge.preferancestor=%s
N(RR(R*tn(tanc(s5/usr/lib/python2.7/dist-packages/mercurial/context.pys	<genexpr>8sN(R
RRlRRtcommonancestorsheadsRRoRVt
configlistRpRtancestorRRRtjoinR'(Rtc2twarntn2tcahsRR((Rs5/usr/lib/python2.7/dist-packages/mercurial/context.pyRs.		
	"cCs|jjj|j|jS(s-True if other is descendant of this changeset(RRt
descendantR(RR((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyR=sccst|j}|jd|r|jrtjg|D]}||k^q?rx(t|D]}||rg|VqgqgWtqnx>|D]6}||kr|j|n||r|VqqWxCt|D]5}||j	krqn|j
|td|qWdS(NRsno such file in rev %s(tsetR/tdiscardR2R3R4R't
StopIterationtremoveRtbadR(RR7tfsetR+((s5/usr/lib/python2.7/dist-packages/mercurial/context.pytwalkAs"
(
N(!RRRRRRRRxR"RrRlRRRRR/RRRRRRR\RRRRRR%RRRR(((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRphs8e																		 	tbasefilectxcBseZdZdZedZedZedZedZedZ	dZ
dZd	Zd
Z
dZdZd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!dZ"d Z#d!Z$d"Z%d#Z&d$Z'e(d'd'd%Z*e(d&Z+RS((sKA 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.cOstt|j|S(N(R	RR
(RRRyRR((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyR
bscCs|jj|jS(N(Rtfilet_path(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyt_filelogescCsId|jkr|jSd|jkr2|jjS|jj|jSdS(Nt	_changeidt
_changectx(RsRRRRtlinkrevt_filerev(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRis

cCs9d|jkr"|jj|jS|jj|jSdS(Nt_fileid(RsRtlookupRRR|R(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyt	_filenoderscCs|jj|jS(N(RRR	(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRyscCs|jS(N(R(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyt	_repopath}scCs+y|jtSWntjk
r&tSXdS(N(R	RRuR}R(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRs
cCsd|j|jfS(Ns%s@%s(RyR(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRscCsdt|jt|fS(Ns<%s %s>(RRR(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRscCs9yt|j|jfSWntk
r4t|SXdS(N(RRR	RR(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRs
cCsWy>t|t|ko<|j|jko<|j|jkSWntk
rRtSXdS(N(RRR	RR(RR((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyR s
*
cCs||kS(N((RR((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyR!scCs|jS(N(R(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pytfilerevscCs|jS(N(R	(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyR|scCs|jj|jS(N(RRFR(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRFscCs|jS(N(R(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRscCs|jS(N(R(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRscCs|jj|jS(N(RRR(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRscCs
|jjS(N(RR(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRscCs
|jjS(N(RR(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRscCs
|jjS(N(RR(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRscCs
|jjS(N(RR(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRscCs
|jjS(N(RR/(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyR/scCs
|jjS(N(RR(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRscCs
|jjS(N(RR(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRscCs
|jjS(N(RR(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRscCs
|jjS(N(RR\(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyR\scCs
|jjS(N(RR](R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyR]scCs
|jjS(N(RR-(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyR-scCs|jS(N(R(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRpscCs|jS(N(R(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRyscCs0ytj|jSWntk
r+tSXdS(N(R3tbinaryRtIOErrorR(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pytisbinarys
cCso|jdkr7|jjsO|jd|jksO|j|jkrk|jj|j|jSt	S(sVcompare with other file context

        returns True if different than fctx.
        iN(
RRRt_encodefilterpatstsizeRRGR	RR(Rtfctx((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRGsc	Cs|j}|j}g|jj|jD]}|||f^q(}|jj|j}|r||d|ddf|d<ng|D]9\}}}|tkrt|j|d|d|^qS(NiiRR(	RRRmR	trenamedRRR%R(RRtflRtplRR((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRms		1cCs|jdS(Ni(Rm(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRnscCsH|j}t|dkr&|dSt|j|jddd|jS(NiiRiR(RmRoR%RRR(RR((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRqscsQd}d}d}|d
kr-|p<|r9|p<|}fd}tjfdfd}	jjkrjj}
n}
|
g}i}i}
id|
6}xX|r*|d}||
k}|s|	||
|<nt}|
|}xS|D]K}||krGt}|j	|n|s|j
|d	d||<qqW|r|j||k}|r||}n||j|}x[|D]S}|s||||}n||dkr||=||=q||cd8<qW|||<g|
|<qqWt
||
d	||
djtS(sreturns a list of tuples of (ctx, line) for each line
        in the file, where ctx is the filectx of the node where
        that line was last changed.
        This returns tuples of ((ctx, linenumber), line) for each line,
        if "linenumber" parameter is NOT "None".
        In such tuples, linenumber means one at the first appearance
        in the managed file.
        To reduce annotation cost,
        this returns fixed value(False is used) as linenumber,
        if "linenumber" parameter is "False".cSs|gt|j|fS(N(Rot
splitlines(RR((s5/usr/lib/python2.7/dist-packages/mercurial/context.pytdecorate_compatscSs#|tfgt|j|fS(N(RRoR(RR((s5/usr/lib/python2.7/dist-packages/mercurial/context.pytwithout_linenumberscSsBt|j}gtd|dD]}||f^q&|fS(Ni(RoRtxrange(RRRti((s5/usr/lib/python2.7/dist-packages/mercurial/context.pytwith_linenumberscsxtj|d|dddt}xK|D]C\\}}}}}|dkr-|d||!|d||+q-q-W|S(NiRtrefinet=i(tmdifft	allblocksR(tparenttchildtblocksta1ta2tb1tb2tt(R(s5/usr/lib/python2.7/dist-packages/mercurial/context.pytpairs	#csjj|S(N(RR(R(R(s5/usr/lib/python2.7/dist-packages/mercurial/context.pyt<lambda>scs|j}sFg|D]$}|j|jkr|^q}nx5|D]-}d|jkrM|j|_qMqMW|S(NR(RmRyRsR(R(RR(tfollowtgetlog(s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRms4
iiiN(RR3tlrucachefuncRRR%R|RRRHRtpopRRR(RR)t
linenumberRRRRtdecorateR'RmtbasetvisitthisttpcachetneededR(tpcachedtreadyRRtreusabletcurr((RR)R*Rs5/usr/lib/python2.7/dist-packages/mercurial/context.pytannotatesZ			
	
	


!




ccsi}|}|rdpd}xetrx4|j| D]"}|||j|jf<q8W|shPn|jt|}|Vq!WdS(Ni(RRRmRRR,tmax(RtfollowfirstR0RtcutR((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRWs	 N(,RRRR
RRRR	RR
RRRRR R!RR|RFRRRRRRRR/RRRR\R]R-RpRyRRGRmRnRqRRR8R(((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyR[sN																																fR%cBs_eZdZdddddZedZdZdZdZ	dZ
dZRS(	saA filecontext object makes access to data related to a particular
       filerevision convenient.cCs||_||_|dk	sO|dk	sO|dk	sOtd|||f|dk	rg||_n|dk	r||_n|dk	r||_n|dk	r||_ndS(sechangeid can be a changeset revision, node, or tag.
           fileid can be a file revision or node.s.bad args: changeid=%r, fileid=%r, changectx=%rN(RRRtAssertionErrorRRRR(RRRyRRRRp((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRfs		cCsHyt|j|jSWn*tjk
rCt|jj|jSXdS(N(RpRRRuRR(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyR}scCs"t|j|jd|d|jS(sMopens an arbitrary revision of the file without
        opening a new filelogRR(R%RRR(RR((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyR%scCs|jj|jS(N(RRR	(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRscCs|jj|jS(N(RRR(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRscCs|jj|j}|s|S|j|jkr;|S|j}|j}xK|jjD]:}y||j|krdSWq`t
jk
rq`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(RRR	RRRyRRmR|RRuR}(RRtnametfnodeR((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRs	c	CsJ|jj|j}g|D]*}t|j|jd|d|j^qS(NRR(RRR	R%RR(RRR((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRsN(RRRRRRRR%RRRR(((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyR%cs				tcommittablectxcBsveZdZdd%d%d%d%dZdZdZdZedZ	edZ
edZed	Zed
Z
dZdZd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!dZ"d Z#d!Z$d"Z%d#Z&d$Z'RS(&sA committablectx object provides common functionality for a context that
    wants the ability to commit, e.g. workingctx or memctx.RcCs||_d|_d|_||_|r?tj||_n|rQ||_n|rc||_	ni|_
|r|j|_
nd|j
krytj
|jjj}Wn&tk
rtjtdnX||j
d<n|j
ddkrd|j
d<ndS(NRsbranch name not in UTF-8!RR(RRRR
t_textR3t	parsedatet_datet_usert_statust_extraR.RRRRtUnicodeDecodeErrorRR(RRRRRRtchangesR((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRs*					
cCst|jddS(Nit+(RRl(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRscCstS(N(R(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRscs|jjjjt|jdkrR|jdjfd}n\|j\}}|j|}|j|j|jfd}|S(Niics||}j|S(N(RF(R((t	copiesgettman(s5/usr/lib/python2.7/dist-packages/mercurial/context.pytfuncscsr||}j|j|j|}}}||krN|S||kr^|S||krn|SdS(NR(RF(R(tfl1tfl2tfla(RItm1tm2tma(s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRKs/(RRtcopiesRRoRlR-R(RRKRnRqtpa((RIRORPRQRJs5/usr/lib/python2.7/dist-packages/mercurial/context.pyt_buildflagfuncs&cCs|jjj|jS(N(RRtflagfuncRT(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyt	_flagfuncscsa|jdjjt|jdkrU|jjfd}nfd}|jjj}|j}|j	d \}}}}xd|fd|ffD]}\}}	xn|	D]f}
|j
|
|
}||j
|t||
<yj|
||
Wqt
k
r)qXqWqWx(||D]}
|
kr=|
=q=q=WS(s?generate a manifest corresponding to the values in self._statusiics|krSS(N((R((RJtman2(s5/usr/lib/python2.7/dist-packages/mercurial/context.pytgetmanscsS(N((R((RJ(s5/usr/lib/python2.7/dist-packages/mercurial/context.pyR(siRtm(RlR-R.RoRqRRRRRVRDRRRtOSError(RRXRtffRKRLRRRNRRR(torig((RJRWs5/usr/lib/python2.7/dist-packages/mercurial/context.pyR"s(	%
 
cCs
|jjS(N(RR(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRD$scCs|jjjS(N(RRVtusername(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRC(scCs
tjS(N(R3tmakedate(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRB,scCsdS(N(R(RRX((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRY0scCs|jp|jjjS(N(RCRRVR](R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyR3scCs|jS(N(RB(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyR5scCs|jS(N(R@(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyR7scCs't|jd|jd|jdS(Niii(R'RD(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyR/9scCs|jdS(Ni(RD(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRK<scCs|jdS(Ni(RD(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRL>scCs|jdS(Ni(RD(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRR@scCs|jdS(Ni(RD(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRNBscCs|jdS(Ni(RD(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRODscCs|jdS(Ni(RD(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRPFscCs|jdS(Ni(RD(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRMHscCstj|jdS(NR(RRRE(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRJscCs
d|jkS(NR(RE(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRLscCs|jS(N(RE(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRNscCs4g}x'|jD]}|j|jqW|S(N(RmRR(RR&R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRQscCs4g}x'|jD]}|j|jqW|S(N(RmRR(RtbR((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRWscCs9tj}x)|jD]}t||j}qW|S(N(RZtdraftRmR9R\(RR\R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyR\]s	cCstS(N(R(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRcscCsgS(N((R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRfscCsed|jkr;y|jj|SWq;tk
r7dSXny|j|SWntk
r`dSXdS(NR"R(RsR"RFRtRVRZ(RRy((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRFis

cCs|jdj|S(s*return the ancestor context of self and c2i(RlR(RR((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRuscCs+t|jjj|t|jttS(N(R'RRRRWRR(RR7((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRysccsQxJ|jjjg|jD]}|j^qD]}t|j|Vq2WdS(N(RRRRlRRp(RRR((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyR}s)cCsux1|j|jD]}|jjj|qWx'|jD]}|jjj|qAW|jjj|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(RKRLRRtnormalRRtdropt
setparents(RRR(((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyt
markcommitteds

cCs|jjjS(N(RRR(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRsN((RRRRRRRRTRRVR"RDRCRBRYRRRR/RKRLRRRNRORPRMRRRRRR\RRRFRRRRdR(((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyR?sJ			  																									t
workingctxcBseZdZddddddZdZdZedZddZ	e
eedZddZ
dd	Zd
ZdZdZd
ZdZdZdZde
e
e
dZdZdZdde
e
e
e
dZRS(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.
    RcCs)tt|j||||||dS(N(R	ReR(RRRRRRRG((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRsccs9|jj}x&|D]}||dkr|VqqWdS(NR(RR(RRR(((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyR)s
cCs|jj|dkS(Ns?r(RR(RR#((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyR$scCsR|jjj}|dtkr/|d }ng|D]}t|j|^q6S(Nii(RRRmRRp(RRR((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRls
cCst|j|d|d|S(s-get a file context from the working directoryReR(tworkingfilectxR(RRyR((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyR%scCsx0t|jD]}|j|jrtSqW|rE|jp|ri|j|jjkp|jp|j	p|j
p|o|jS(s-check whether a working directory is modified(R'RWR~RRRqRRnRKRLRRRN(RtmissingRRR8((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRs$$csfd}|jj}|jj|jj}}zg}|jjj}xf|D]^}	tj|||	y||	}
Wn>tk
r|j	t
d||	|j|	qVnX|
jdkr|j	t
d|	d|
jd||	fnt
j|
jp't
j|
jsW|j	t
d||	|j|	qV||	dkr|j	t
d	||	qV||	d
kr|j|	qV|j|	qVW|SWd|jXdS(Ncstjj|S(N(tosRyR(R((tprefix(s5/usr/lib/python2.7/dist-packages/mercurial/context.pyR(ss%s does not exist!
iso%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(RtwlockRVRtwvfstlstatRt
checkportableRZRRRHtst_sizetstattS_ISREGtst_modetS_ISLNKtnormallookuptaddtrelease(RtlistRiRRkRVtdstrejectedRmR(tst((Ris5/usr/lib/python2.7/dist-packages/mercurial/context.pyRus8


%$ csfd}|jj}zg}x|D]}||jjkry|jjjtd|||j|q.|jj|dkr|jjj|q.|jjj|q.W|SWd|j	XdS(Ncstjj|S(N(RhRyR(R((Ri(s5/usr/lib/python2.7/dist-packages/mercurial/context.pyR(ss%s not tracked!
R(
RRkRRVRRRHRRbRv(RR/RiRRkRyR(((Ris5/usr/lib/python2.7/dist-packages/mercurial/context.pytforgets
#cCs|j}|jj}zx|D]}|jj|dkra|jjjtd|q%||dkr|d|p|d|}|j}|jj|||j	|jjj
|q%WWd|jXdS(NRs%s not removed!
ii(RmRRkRRVRRRtwwriteRFRaRv(RRwtpctxsRkR(RR&((s5/usr/lib/python2.7/dist-packages/mercurial/context.pytundeletes
 ,cCsy|jjj|}WnItk
rd}|jtjkrCn|jjjtd|dSXt	j
|jpt	j|js|jjjtd|nc|jj
}zF|jj|dkr|jjj|n|jjj||Wd|jXdS(Ns%s does not exist!
s1copy failed: %s is not a file or a symbolic link
s?r(RRlRmRZterrnotENOENTRVRRRpRqRrRsRkRRuR.Rv(RtsourcetdestRzterrRk((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyR.s $cCs|s|jjjr|Sg}x|D]}|j|dkr||j}|dkst|dksd|kstj|r|jjj	d|q'qn|j
|q'W|S(NRRis
s*ignoring suspect symlink placeholder "%s"
(RRt
_checklinkRFRRoR3RRVtdebugRH(RR/tsaneR(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyt_filtersuspectsymlinks
9	cCs|sggfSg}g}|jd}xrt|D]d}||ks}|j||j|ks}||j||r|j|q6|j|q6W|ryR|jjt}|jjj	}zx|D]}||qWWd|j
XWqtjk
rqXn||fS(Ni(
RlR'RFRGRHRRkRRRaRvRut	LockError(RR/RKtfixuptpctxR(RkRa((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyt_checklookup-s*

*
cCs|jdj||}|dd!\}}}x5||D])}d||<|j||j|q:Wx$|D]}||krn||=qnqnW|S(sSlow path for workingctx

        The fast path is when we compare the working directory to its parent
        which means this function is comparing with a non-parent; therefore we
        need to build a manifest and return what matches.
        RiiN(RR:RRRF(RR7R8R9RKRLRRR(((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyR:Os

cCs|j||||S(soverride the parent hook with a dirstate query

        We use this prestatus hook to populate the status with information from
        the dirstate.
        (t_dirstatestatus(RRR8R7R>R?R@((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRB`s	cCs%|j|d|d<||_|S(soverride the parent hook with a filter for suspect symlinks

        We use this poststatus hook to filter out symlinks that might have
        accidentally ended up with the entire contents of the file they are
        susposed to be linking to.
        i(RRD(RRR8R7R>R?R@((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRCks
cCs|||}}}|p8tj|jj|jj}g}d|kr_t|j}n|jjj|||||}	|	\}
}}}
}}}}|
r|j	|
\}}||7}|r|r||7}qn|||
||||gS(s7Gets the status from the dirstate -- internal use only.s.hgsub(
R;R,RR<R=R'RWRRR(RR7RPRMROR>R?R@tsubreposR8RGRKRLRRRNt	modified2R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRvs'
cCsA||jdkr=tt|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['.']).
        R(RR	ReRS(RRR8R7R>R?R@((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRSs
	c	sbtt}|j|||||}jdkr^fd}||_n|S(soverride 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.
        RcsQ|krM|jkrMjjjdjjj||fndS(Ns%s: %s
(RRRVRRtpathto(R(tmsg(RR(s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRs(R	ReRARR(	RRR8R7R>R?R@t	superselfR((RRs5/usr/lib/python2.7/dist-packages/mercurial/context.pyRAs	RcCsZtt|j||||||}t|}|d|d|d<|d<t|S(Nii(R	ReRRwR(RRR7R>R?R@RR8((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRs
N(RRRRRR)R$RRlR%RRRRuR{R~R.RRR:RBRCRRSRAR(((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRes.		#				"							tcommittablefilectxcBs8eZdZdddZdZdZdZRS(sA committablefilectx provides common functionality for a file context
    that wants the ability to commit, e.g. workingfilectx or memfilectx.cCsY||_||_d|_d|_|_|dk	rC||_n|rU||_ndS(N(RRRRRR	RR(RRRyRR((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRs			cCstS(N(R(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRsc	Csd}|j}|j}|jj}|j}|rI|dg}n|||d||fg}x1|dD]%}|j|||||fqsWg|D]9\}}	}
|	tkrt|j	|d|	d|
^qS(s5return parent filectxs, following copies if necessarycSs|jj|tS(N(R"RR(RRy((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyR|siiRRN(N(
RRRRlRRRHRR%R(RR|RyRtpclRRtpcRRR((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRms			#cCsgS(N((R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRsN(RRRRRRRmR(((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRs
		RfcBsYeZdZdddZedZdZdZdZ	dZ
dZRS(	suA workingfilectx object makes access to data related to a particular
       file in the working directory convenient.cCs#tt|j||||dS(N(R	RfR(RRRyRRe((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRscCs
t|jS(N(ReR(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRscCs|jj|jS(N(RtwreadR(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRscCsE|jjj|j}|s"dS||jjdjj|t	fS(Ni(
RRRRRRRlR"RR(Rtrp((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRscCs|jjj|jjS(N(RRlRmRRo(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRscCsw|jj\}}y)t|jjj|jj|fSWn2tk
rr}|j	t	j
krhn||fSXdS(N(RRRRRlRmRtst_mtimeRZRR(RR&ttzR((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRs)cCs
|j|S(sVcompare with other file context

        returns True if different than fctx.
        (RG(RR((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRGsN(RRRRRRRRRRRRG(((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRfs					RcBsGeZdZdddedZddZdZedZ	RS(s;Use 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 raises an
    IOError. 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 util.parsedate() and defaults to current date, extra
    is a dictionary of metadata or is left empty.
    c

CsGtt|j|||||d|_d|_g|D]}
|
pJt^q;}|\}}g||fD]}
t|j|
^ql|_	t
t|}|ggggg|_||_
i|_|r|jpi|_|jjdddkrd|jd<n|	rC|	|j|g|_|jj|jndS(NRRR(R	RRRRR
RRpRRlR'RRDt
_filectxfnRWR.RERR@tsavecommitmessage(
RRRmRR/t	filectxfnRRRRRRnRq((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyR*s "		.		cCs|j|j||S(s-get a file context from the working directory(RR(RRyR((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyR%?scCs|jj|S(scommit context to the repo(Rt	commitctx(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pytcommitCscCs|jd}|jj}x|jD]\}}t}t}||j}t|dkr|dj}t|dkr|dj}qntj	||j
||||<q,W|S(s;generate a manifest based on the return values of filectxfnii(RlR-R.RERRmRoRtrevlogRR(RRRJR(R>tp1nodetp2nodeR((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyR"Gs
'N(
RRRRRRR%RRR"(((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRs	RcBsYeZdZeedddZdZdZdZdZ	dZ
dZRS(	somemfilectx represents an in-memory file to commit.

    See memctx and commitablefilectx for more details.
    cCsrtt|j||d|||_|r4dp7d|rCdpFd|_d|_|rn|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.RRRN(R	RRRt_datat_flagst_copiedR(RRRyRRRRR((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRas		%	cCs|jS(N(R(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRqscCst|jS(N(RoR(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRsscCs|jS(N(R(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRFuscCs
d|jkS(NR(R(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRwscCs
d|jkS(NR(R(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyRyscCs|jS(N(R(R((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyR{sN(RRRRRRRRRFRRR(((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyR\s					((RRRRRRti18nRRRuR3RRTRRRZR7R;RhRRpRcRdRR`RRtobjectRRRRpRR%R?ReRRfRR(((s5/usr/lib/python2.7/dist-packages/mercurial/context.pyt<module>s.(`$	I	[,)&M

Copyright © 2017 || Recoded By Mr.Bumblebee