-=[ Mr. Bumblebee ]=-
_Indonesia_

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


l\c@sIddlmZddlmZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
ZddlZddlZddlZddlZddlZejdkrddlZnddlZejZejZdZddZdZdZd	Zd
Z de!fdYZ"d
e!fdYZ#de#fdYZ$e$Z%de!fdYZ&de#e&fdYZ'e'Z(de#e&fdYZ)e*de*dZ+dZ,da-dZ.ddZ/dZ0dZ1dZ2dZ3gie*d d!Z4gie*d d"Z
d#Z5d$Z6giddd%Z7d&d'Z8d(Z9d)Z:d*Z;e*dd+Z<d,Z=d-e!fd.YZ>d/e!fd0YZ?d1e!fd2YZ@d3e!fd4YZAejBed3r<ejAZAnd5ZCdS(6i(t_(tnullrevNtntccsltj|j|}|jtj|j|x4t|jD] \}}||j|fVqDWdS(sfind subrepos in ctx1 or ctx2N(tdicttfromkeystsubstatetupdatetsortedt	iteritemstsub(tctx1tctx2tsubpathstsubpathtctx((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pytitersubreposscCsg}|rnx_|D]T}||kr+qn||}|jtjkr|jr|j|qqWn|r|jtdt|n|jtddS(sjReport no changes for push/pull, excluded is None or a list of
    nodes excluded from the push/pull.
    s0no changes found (ignored %d secret changesets)
sno changes found
N(tphasetphasestsecrettextincttappendtstatusRtlen(tuitrepotexcludedt
secretlisttnR((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pytnochangesfound!s

"cCs|dkr(tjtd|nx6dD].}||kr/tjtd	|q/q/Wy#t|tjtd
Wntk
rnXdS(
Nttipt.tnullsthe name '%s' is reservedt:ts
s
s%r cannot be used in a namescannot use an integer as a name(RRR(R ss
s
(tutiltAbortRtintt
ValueError(Rtlbltkindtc((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pyt
checknewlabel6s
 

cCs8d|ksd|kr4tjtd|ndS(sFCheck that the filename f is an acceptable filename for a tracked files
s
s)'\n' and '\r' disallowed in filenames: %rN(R"R#R(tf((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pyt
checkfilenameDscCst|t|\}}|s(|rtj|}|rd||f}|retj|n|jtd|qndS(sECheck if filename f is portable and warn or abort depending on configs%s: %rswarning: %s
N(R+tcheckportabilityalertR"tcheckwinfilenameR#twarnR(RR*tabortR.tmsg((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pyt
checkportableIs
cCs|jddd}|j}tj|}tjdkpH|dk}|pZ|dk}|dkr|p~|p~|dkrtjt	d|n||fS(	s_check if the user's config requests nothing, a warning, or abort for
    non-portable filenamesRtportablefilenamesR.RR/tignores,ui.portablefilenames value is invalid ('%s')N(
tconfigtlowerR"t	parsebooltostnametNoneterrortConfigErrorR(RtvaltlvaltbvalR/R.((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pyR,Us%tcasecollisionauditorcBseZdZdZRS(cCs^||_||_dj|j}ttj|jd|_||_	t|_
dS(NR!(t_uit_aborttjoint_maptsettencodingR5tsplitt
_loweredfilest	_dirstatet	_newfiles(tselfRR/tdirstatetallfiles((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pyt__init__cs		!	cCs||jkrdStj|}||jkr||jkrtd|}|jrktj|n|j	j
td|n|jj||jj|dS(Ns&possible case-folding collision for %sswarning: %s
(RIRER5RGRHRRAR"R#R@R.tadd(RJR*tflR0((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pyt__call__ns	(t__name__t
__module__RMRP(((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pyR?bs	tabstractvfscBsgeZdZdZdZdeedZdZdZdZ	dZ
d!d	Zd
Z
d!dZd!dZd!d
Zd!dZd!dZd!dZd!edZd!d!dZdZd!dZddd!edZd!d!d!dZdZdZdZdZd!dZd!dZ d!edZ!d!d!d Z"RS("s+Abstract base class; cannot be instantiatedcOs tdtt|dS(s7Prevent instantiation; don't call this from subclasses.sattempted instantiating N(tNotImplementedErrortstrttype(RJtargstkwargs((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pyRM}scCsCy|j|SWn+tk
r>}|jtjkr?q?nXdS(s3gracefully return an empty string for missing filest(treadtIOErrorterrnotENOENT(RJtpathtinst((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pyttryreads
trcCs"|j|_|j||||S(N(RPtopen(RJR^tmodettextt
atomictemp((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pyRbscCs/||d}z|jSWd|jXdS(Ntrb(RZtclose(RJR^tfp((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pyRZscCs2||d}z|j|SWd|jXdS(Ntwb(twriteRg(RJR^tdataRh((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pyRjscCs2||d}z|j|SWd|jXdS(Ntab(RjRg(RJR^RkRh((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pyRscCstj|j||S(N(R7tchmodRB(RJR^Rc((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pyRmscCstjj|j|S(N(R7R^texistsRB(RJR^((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pyRnscCs
tj|S(N(R"tfstat(RJRh((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pyRoscCstjj|j|S(N(R7R^tisdirRB(RJR^((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pyRpscCstjj|j|S(N(R7R^tisfileRB(RJR^((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pyRqscCstjj|j|S(N(R7R^tislinkRB(RJR^((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pyRrscCstjj|j|S(N(R7R^tlexistsRB(RJR^((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pyRsscCstj|j|S(N(R7tlstatRB(RJR^((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pyRtscCstj|j|S(N(R7tlistdirRB(RJR^((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pyRuscCstj|j||S(N(R"tmakedirRB(RJR^t
notindexed((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pyRvscCstj|j||S(N(R"tmakedirsRB(RJR^Rc((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pyRxscCstj||j|S(N(R"tmakelockRB(RJtinfoR^((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pyRyscCstj|j|S(N(R7tmkdirRB(RJR^((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pyR{sRYttmpc		Csutjd|d|d|j|d|\}}tj|\}}|rg|tjj||fS||fSdS(NtsuffixtprefixtdirRd(ttempfiletmkstempRBR"RFR7R^(	RJR}R~RRdtfdR8tdnametfname((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pyRscCstj|j|||S(N(tosutilRuRB(RJR^tstattskip((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pytreaddirscCstj|j|S(N(R"treadlockRB(RJR^((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pyRscCs"tj|j||j|S(N(R"trenameRB(RJtsrctdst((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pyRscCstj|j|S(N(R7treadlinkRB(RJR^((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pyRscCstj|j|||S(N(R"tsetflagsRB(RJR^tltx((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pyRscCstj|j|S(N(R7RRB(RJR^((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pyRscCstj|j|S(N(R"tunlinkRB(RJR^((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pyRscCstj|j||S(N(R"t
unlinkpathRB(RJR^t
ignoremissing((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pyRscCstj|j||S(N(R7tutimeRB(RJR^tt((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pyRsN(#RQRRt__doc__RMR`tFalseRbRZRjRRmR9RnRoRpRqRrRsRtRutTrueRvRxRyR{RRRRRRRRRR(((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pyRSzs<														tvfscBseZdZeeeedZdZdZeeeZ	e
jdZe
jdZ
dZdeedZd	Zd
ZRS(skOperate files relative to a base directory

    This class is used to hide the details of COW semantics and
    remote file access from higher level code.

    'cacheaudited' should be enabled only if (a) vfs object is short-lived, or
    (b) the base directory is managed by hg and considered sort-of append-only.
    See pathutil.pathauditor() for details.
    cCsh|rtj|}n|r3tjj|}n||_||_|j|d|_	d|_
dS(N(R"t
expandpathR7R^trealpathtbaset
_cacheauditedt
_setmustauditR9t
createmodet_trustnlink(RJRtaudittcacheauditedRR((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pyRMs		
	cCs|jS(N(t_audit(RJ((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pyt
_getmustauditscCs@||_|r0tj|jd|j|_ntj|_dS(Ntcached(RtpathutiltpathauditorRRRR"talways(RJtonoff((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pyRs
	cCstj|jS(N(R"t	checklinkR(RJ((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pyt_cansymlinkscCstj|jS(N(R"t	checkexecR(RJ((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pyt_chmodscCs8|jdks|jrdStj||jd@dS(Ni(RR9RR7Rm(RJR8((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pyt_fixfilemodesRac
Cs.|jr=tj|}|r=tjd||fq=n|j||j|}|ryd|kry|d7}nd}|d
krtj|\}}	|	r|rtj||jtj	|||jSycd|krtj
|d}n=tj|}
tj|}|dkr-d	}n|
j
WnJttfk
r}|jtjkrhnd}tj||jnX|dkr|jdkr|dkptj||_n|dks|jrtjtj||qqqntj||}|dkr*|j|n|S(Ns%s: %rtbiRaRftwiii(Rasrb(RR"tcheckosfilenameR#RRBRFt
ensuredirsRtatomictempfileRt	posixfiletnlinksRgtOSErrorR[R\R]RR9t
checknlinkRt
mktempcopyR(
RJR^RcRdReRaR*tnlinktdirnametbasenameRteRh((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pyRPsL	


		!%cCs|j||j|}ytj|Wntk
r@nXtjtjj||j	|j
rytj||Wqtk
r}t|jt
d||jf|qXn|j||dS(Nscould not symlink to %r: %s(RRBR7RRR"RR^RRRtsymlinkR\RtstrerrorRj(RJRRtlinknameterr((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pyRMs

	cCs'|rtjj|j|S|jSdS(N(R7R^RBR(RJR^((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pyRB`s(RQRRRRRRMRRtpropertyt	mustauditR"t
propertycacheRRRRPRRB(((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pyRs					/	tauditvfscBs2eZdZdZdZeeeZRS(cCs
||_dS(N(R(RJR((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pyRMiscCs
|jjS(N(RR(RJ((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pyRlscCs||j_dS(N(RR(RJR((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pyRos(RQRRRMRRRR(((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pyRhs			t	filtervfscBs)eZdZdZdZdZRS(s4Wrapper vfs for filtering filenames with a function.cCstj||||_dS(N(RRMt_filter(RJRtfilter((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pyRMwscOs|j|j|||S(N(RR(RJR^RWRX((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pyRP{scCs3|r|jj|j|S|jj|SdS(N(RRBR(RJR^((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pyRB~s(RQRRRRMRPRB(((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pyRts		treadonlyvfscBs#eZdZdZddZRS(s#Wrapper vfs preventing any writing.cCstj||dS(N(RRM(RJR((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pyRMsRacOs4|dkrtjdn|j||||S(NRaRfsthis vfs is read only(Rasrb(R"R#R(RJR^RcRWtkw((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pyRPs(RQRRRRMRP(((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pyRs	c#sfd}ttjdd|rHdk	rHfd}nt}|dkrv|rvg}||nx:tjdtd|D]\}}}|jd|kr|Vtjj|dd}	tjj	tjj|	dr|	Vn|r|j
dqg|(q|rg}
xy|D]q}tjj||}|||r0tjj|rx/t|t|D]}
|
VqWq|
j
|q0q0W|
|(qqWdS(	syield every hg repository under path, always recursively.
    The recurse flag will only control recursion into repo working dirscs|jkr|ndS(N(tfilename(R(R^(s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pyt
errhandlerstsamestatcsZt}tj|}x'|D]}||rt}PqqW|sU|j|n|S(N(RR7RRR(tdirlstRtmatchtdirstatt
lstdirstat(R(s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pytadddirs
ttopdowntonerrors.hgtpatchesN(tgetattrR7R^R9RtwalkRtsortRBRptremoveRrt	walkreposR(R^t	followsymt	seen_dirstrecurseRRtroottdirstfilestqroottnewdirstdRthgname((R^Rs5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pyRs8+
!

cCsBt}|jtg|D]}tjj|^q }|S(s+return default os-specific hgrc search path(tsystemrcpathtextendt
userrcpathR7R^tnormpath(R^R*((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pytosrcpaths	%cCstdkrdtjkrgaxtjdjtjD]}|sMq;ntj|}tjj	|rx[t
j|D]:\}}|jdr~tj
tjj||q~q~Wq;tj
|q;WqtantS(sreturn hgrc search path. if env var HGRCPATH is set, use it.
    for each item in path, if directory, use files ending in .rc,
    else use item.
    make HGRCPATH empty to only look in .hg/hgrc of current repo.
    if no HGRCPATH, use default os-specific path.tHGRCPATHs.rcN(t_rcpathR9R7tenvironRFtpathsepR"RR^RpRRutendswithRRBR(tpR*R'((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pytrcpaths &RcCsc|r|dkr||St||g}t|dkrWtjtdn||dS(Niisempty revision seti(trevrangeRR"R#R(RtrevspectdefaultR((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pyt	revsinglescCs*|s|jjdfSt||}|s;d}}nn|jrb|j}|j}nG|jr|j}|j}n t|}|d}|d}|dkrt	j
tdn||krt|dkrt
|dkr|j|dfS|j||j|fS(Niisempty revision rangei(RKtp1R9RtisascendingtmintmaxtisdescendingtlistR"R#RRt_revrangeseptlookup(RtrevsRtfirsttsecond((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pytrevpairs&


.R cCsd}ttjg}}x}|D]u}|rK|rKt|}nyt|tr|j||tj|g}w)nt|kr|jtd\}}|||d}|||t|d}|t	kr|dkrt	}n|j
j||}|r1|r1tj|}w)nt|}	|r`|	j||j
|	n|	}|tjt|	d||k}w)n_|r||kr|||d}
|
|krw)n|j|
|tj|
g}w)nWntjk
rnXtj|j||}|s,|rg||tj|D]}||krE|^qE}
|tj|
}|j
|
q)||tj|}q)W|S(sAYield revision as strings from a list of revision specifications.cSs1|r#|dkr#|dk	r#|S||jS(Ni(R9trev(RR<tdefval((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pytrevfixsiitreverseN(RDtrevsettbasesett
isinstanceR$RNRRFRRt	changelogRtdifference_updateRRR9R:tRepoLookupErrorRRtspanset(RRRtseenRtspectstarttendt	rangeitertnewrevsRtmRatdl((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pyR	sV	


	
%

7cCstjst|Sg}x|D]}tj|d\}}|dkrytj|}Wntjk
r||g}nX|r|j	|q qn|j
|q W|S(siExpand bare globs when running on windows.
    On posix we assume it already has already been done by sh.N(R"texpandglobsRtmatchmodt	_patsplitR9tglobtreR:RR(tpatstrettkindpatR'tpattglobbed((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pyt
expandpatsFs	



	trelpathcs|dkrg}n|r=|dkr=t|p4g}nj||jd|jd|fd}|_|fS(s^Return a matcher and the patterns that were used.
    The matcher will warn about bad matches.RYRtincludetexcludecs*jjjdj||fdS(Ns%s: %s
(t_repoRR.trel(R*R0(RR(s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pytbadfncs(RY(RRtgettbad(RRtoptsRRR#((RRs5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pytmatchandpatsYs	!		cCst|||||dS(s2Return a matcher that will warn about bad matches.i(R'(RRR&RR((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pyRhscCstj|j|jS(s8Return a matcher that will efficiently match everything.(RRRtgetcwd(R((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pytmatchalllscCstj|j|j|S(sAReturn a matcher that will efficiently match exactly these files.(RtexactRR((RR((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pyt
matchfilespscs|dkr|jd}n|dkrHt|jdp?d}nt|d||}gfd|_t||\}}}}	t|}
|
j}|j|xt	|D]}|j
js|j|r|j
|}
||
krtd|r|
p|}ntd|r4|
p7|}|j
j|qqWt|||||	||}|st||||nx$D]}||jkrdSqWdS(Ntdry_runt
similarityics
j|S(N(R(Rty(trejected(s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pyt<lambda>|ss
adding %s
sremoving %s
i(R9R$tfloatRR%t_interestingfilesRDtcopyRRRtverboseR*R"RRt_findrenamest_markchangesR(RRR&R,R-Rtaddedtunknowntdeletedtremovedt
unknownsetttoprinttabsR"RtrenamesR*((R/s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pyt	addremovets4
	
gcs*t||}gfd|_t||\}}}}|jjrt|}|j}	|	j|xVt|	D]E}
|
|krt	d|
}nt	d|
}|jj
|qWnt|||||||}t||||x$D]}
|
|j
krdSqWdS(s[Assert that files have somehow been operated upon. files are relative to
    the repo root.cs
j|S(N(R(RR.(R/(s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pyR0ss
adding %s
sremoving %s
ii(R+R%R2RR4RDR3RRRRR5R6R(RRR-RR7R8R9R:R;R<R=RR>R*((R/s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pytmarktoucheds(
	
c
Cs-ggggf\}}}}tj|jdt}|d}|j}|j|t|jtt	dt	}	x|	j
D]\}
}||
}|dkr|j|
r|j|
q}|dkr|r|j|
q}|dkr|j|
q}|dkr}|j|
q}q}W||||fS(sWalk dirstate with matcher, looking for files that addremove would care
    about.

    This is different from dirstate.status because it doesn't care about
    whether files are modified or clean.Rtfullt?RataN(
RRRRR9RKRRRRRtcheckR(
RtmatcherR7R8R9R:t
audit_pathRRKtwalkresultsR=tsttdstate((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pyR2s"
		
c	Csi}|dkrxtj||||D]\}}}|jjsf|j|sf|j|r|jjtd|j||j||dfn|||<q+Wn|S(s.Find renames from removed files to added ones.is7recording removal of %s as rename to %s (%d%% similar)
id(tsimilartfindrenamesRR4R*RRR"(	RRER7R:R-R>toldtnewtscore((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pyR5scCss|d}|j}zK|j||j|x*|jD]\}}|j||q@WWd|jXdS(smMarks the files in unknown as added, the files in deleted as removed,
    and the files in renames as copied.N(R9twlocktforgetRNRR3trelease(RR8R9R>twctxRORMRL((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pyR6s


cCs|jj|p|}||krT|j|dkr|r|jj|qn|j|dkr||kr|js|jtd|j|||j||fn|j|dkr|r|j|gqn|s|j||ndS(sUpdate the dirstate to reflect the intent of copying src to dst. For
    different reasons it might not end with dst being marked as copied from src.
    tmnRCsF%s has not been committed yet, so no copy data will be stored for %s.
s?rN(	RKtcopiedtnormallookuptquietR.RtpathtoRNR3(RRRRRRtdryruntcwdtorigsrc((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pytdirstatecopys	)cCst|jdj}g}xZ|D]R}||kr(|sR|djrjtjtdn|j|q(q(W|j|rtjtddj	|dtdn|S(shReads and parses .hg/requires and checks if all entries found
    are in the list of supported features.trequiresis.hg/requires file is corrupts:repository requires features unknown to this Mercurial: %st thintsMsee http://mercurial.selenic.com/wiki/MissingRequirement for more information(
RDRZt
splitlinestisalnumR:tRequirementErrorRRRRB(topenert	supportedtrequirementstmissingsRa((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pytreadrequiress

	tfilecachesubentrycBs;eZdZdZdZdZedZRS(cCsd||_d|_d|_|r`tj|j|_|jrT|jj|_q`d|_ndS(N(R^R9t	cachestatt
_cacheableRgRt	cacheable(RJR^R((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pyRMs				cCs(|jr$tj|j|_ndS(N(RjRgRR^Rh(RJ((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pytrefresh!scCs|jdk	r|jStS(N(RiR9R(RJ((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pyRj%scCsz|jstStj|j}|rV|jdkrV|j|_|jsVtSn|j|krr||_tStSdS(N(	RjRRgRR^RiR9RhR(RJtnewstat((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pytchanged,s		cCsCytj|SWn+tk
r>}|jtjkr?q?nXdS(N(R"RhRR\R](R^R((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pyRAs
(RQRRRMRkRjRmtstaticmethodR(((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pyRgs
				tfilecacheentrycBs&eZedZdZdZRS(cCs7g|_x'|D]}|jjt||qWdS(N(t_entriesRRg(RJtpathsRR^((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pyRMJs	
cCs(x!|jD]}|jr
tSq
WtS(strue if any entry has changed(RpRmRR(RJtentry((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pyRmOscCs"x|jD]}|jq
WdS(N(RpRk(RJRr((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pyRkVs(RQRRRRMRmRk(((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pyRoIs	t	filecachecBsGeZdZdZdZdZddZdZdZ	RS(sZA property like decorator that tracks files under .hg/ for updates.

    Records stat info when called in _filecache.

    On subsequent calls, compares old stat info with new info, and recreates the
    object when any of the files changes, updating the new stat info in
    _filecache.

    Mercurial either atomic renames or appends for files under .hg,
    so to ensure the cache is reliable we need the filesystem to be able
    to tell us if a file has been replaced. If it can't, we fallback to
    recreating the object on every call (essentially the same behaviour as
    propertycache).

    cGs
||_dS(N(Rq(RJRq((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pyRMjscCs
|j|S(sUsed to compute the runtime path of a cached file.

        Users should subclass filecache and provide their own version of this
        function to call the appropriate join function on 'obj' (an instance
        of the class that its member function was decorated).
        (RB(RJtobjR((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pyRBmscCs||_|j|_|S(N(tfuncRQR8(RJRu((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pyRPvs	cCs|j|jkrA|j|jks3t|j|j|jS|jj|j}|r|jr|j||_qnYg|jD]}|j	||^q}t
|t}|j||_||j|j<|j|j|j<|jS(N(R8t__dict__t
_filecachetAssertionErrorR$RmRuRtRqRBRoR(RJRtRVRrR^Rq((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pyt__get__{s!(cCs|j|jkr\g|jD]}|j||^q}t|t}||j|j<n|j|j}||_||j|j<dS(N(R8RwRqRBRoRRtRv(RJRttvalueR^Rqtce((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pyt__set__s(	cCs8y|j|j=Wn tk
r3t|jnXdS(N(RvR8tKeyErrortAttributeError(RJRt((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pyt
__delete__s
N(
RQRRRRMRBRPR9RyR|R(((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pyRsZs					
RcBs>eZdZddZdZdZdZdZRS(s9a multiset of directory names from a dirstate or manifestcCsi|_|j}tj|drm|dk	rmxU|jD])\}}|d|kr=||q=q=Wnx|D]}||qtWdS(NRi(t_dirstaddpathR"tsafehasattrR9R(RJtmapRRR*ts((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pyRMs		
cCsN|j}x>t|D]0}||kr<||cd7<dSd||<qWdS(Ni(Rtfinddirs(RJR^RR((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pyRs	cCsO|j}x?t|D]1}||dkr@||cd8<dS||=qWdS(Ni(RR(RJR^RR((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pytdelpaths	cCs
|jjS(N(Rtiterkeys(RJ((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pyt__iter__scCs
||jkS(N(R(RJR((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pyt__contains__sN(	RQRRRR9RMRRRR(((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pyRs			ccsD|jd}x.|dkr?|| V|jdd|}qWdS(Nt/ii(trfind(R^tpos((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pyRs	(Dti18nRtmercurial.nodeRR"R:RRRJRERtparsersRRRR7R\RRRR8t
scmwindowstscmplatformtscmposixRRRR9RR)R+R1R,tobjectR?RSRRbRRtfilteropenerRRRRRRRRRRRR'R)R+R?R@R2R5R6R[RfRgRoRsRRR(((s5/usr/lib/python2.7/dist-packages/mercurial/scmutil.pyt<module>sf`<			
				
tx0					=			#			
	7L$

Copyright © 2017 || Recoded By Mr.Bumblebee