HEX

Warning: set_time_limit() [function.set-time-limit]: Cannot set time limit - prohibited by configuration in /home/u547966/brikov.ru/www/wp-content/plugins/admin-menu-editor/menu-editor.php on line 745
Server: Apache
System: Linux 4.19.0-0.bpo.9-amd64 x86_64 at red40
User: u547966 (5490)
PHP: 5.3.29-mh2
Disabled: syslog, dl, popen, proc_open, proc_nice, proc_get_status, proc_close, proc_terminate, posix_mkfifo, chown, chgrp, accelerator_reset, opcache_reset, accelerator_get_status, opcache_get_status, pcntl_alarm, pcntl_fork, pcntl_waitpid, pcntl_wait, pcntl_wifexited, pcntl_wifstopped, pcntl_wifsignaled, pcntl_wifcontinued, pcntl_wexitstatus, pcntl_wtermsig, pcntl_wstopsig, pcntl_signal, pcntl_signal_dispatch, pcntl_get_last_error, pcntl_strerror, pcntl_sigprocmask, pcntl_sigwaitinfo, pcntl_sigtimedwait, pcntl_exec, pcntl_getpriority, pcntl_setpriority
Upload Files
File: //usr/lib/python2.7/dist-packages/mercurial/localrepo.pyc

x7_c@@sddlmZddlZddlZddlZddlZddlZddlZddlZddl	m
Z
ddlmZm
Z
mZmZddlmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ m!Z!m"Z#m$Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z2m3Z3m4Z4e j5Z5e4j6Z6e4j7Z7de.j8fdYZ9d	e9fd
YZ:de4j;fdYZ<d
e4j;fdYZ=dZ>dZ?e@ddddddfZAeAjBe@dgZCde)jDfdYZEdeEfdYZFdeGfdYZHdZIdZJd ZKd!ZLd"ZMdS(#i(tabsolute_importNi(t_(thextnullidtshorttwdirrev( t	bookmarkst	branchmaptbundle2tchangegroupt	changelogtcmdutiltcontexttdirstatetencodingterrortexchanget
extensionstfilelogthooktlocktmanifesttmatchtmerget
namespacestobsoletetpathutiltpeertphasestpushkeytrepoviewtrevsettscmutiltstoretsubrepottagsttransactiontutilt
repofilecachecB@s,eZdZddZdZdZRS(sMAll filecache usage on repo are done for logic that should be unfiltered
    cC@s/|dkr|Stt|j|j|S(N(tNonetsuperR&t__get__t
unfiltered(tselftrepottype((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyR)DscC@stt|j|j|S(N(R(R&t__set__R*(R+R,tvalue((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyR.HscC@stt|j|jS(N(R(R&t
__delete__R*(R+R,((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyR0JsN(t__name__t
__module__t__doc__R'R)R.R0(((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyR&@s	t
storecachecB@seZdZdZRS(s filecache for files in the storecC@s
|j|S(N(tsjoin(R+tobjtfname((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pytjoinOs(R1R2R3R8(((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyR4MstunfilteredpropertycachecB@seZdZddZRS(s0propertycache that apply to unfiltered repo onlycC@s>|j}||kr.tt|j|St||jS(N(R*R(R9R)tgetattrtname(R+R,R-tunfi((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyR)UsN(R1R2R3R'R)(((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyR9RstfilteredpropertycachecB@seZdZdZRS(s1propertycache that must take filtering in accountcC@stj||j|dS(N(tobjectt__setattr__R;(R+R6R/((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyt
cachevalue^s(R1R2R3R@(((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyR=[scC@s|t|jkS(s?check if a repo has an unfilteredpropertycache value for <name>(tvarsR*(R,R;((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pythasunfilteredcachebsc@sfd}|S(s@decorate method that always need to be run on unfiltered versionc@s|j||S(N(R*(R,targstkwargs(torig(s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pytwrapperhs((RERF((REs7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pytunfilteredmethodfstlookupRRtknownt	getbundletunbundletchangegroupsubsett	localpeercB@seZdZedZdZdZdZdZdZ	dZ
dZd	Zd
Z
ddddZdZd
ZdZdZdZddddZRS(s8peer for a local repo; reflects only the most recent APIcC@s\tjj||jd|_|j|_|j||_|j|_|j	|_	dS(Ntserved(
Rtpeerrepositoryt__init__tfilteredt_repotuit_restrictcapabilitiest_capstrequirementstsupportedformats(R+R,tcaps((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyRPsscC@s|jjdS(N(RRtclose(R+((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyRY{scC@s|jS(N(RU(R+((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyt
_capabilities~scC@s|jS(N(RR(R+((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pytlocalscC@stS(N(tTrue(R+((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pytcanpushscC@s
|jjS(N(RRturl(R+((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyR^scC@s|jj|S(N(RRRH(R+tkey((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyRHscC@s
|jjS(N(RRR(R+((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyRscC@s
|jjS(N(RRtheads(R+((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyR`scC@s|jj|S(N(RRRI(R+tnodes((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyRIsc
K@s{tj|j|d|d|d||}tj|}|dk	rdd|krdtj|j|St	jd|dSdS(NR`tcommont
bundlecapstHG20t01(
RtgetbundlechunksRRR%tchunkbufferR'RtgetunbundlerRSR	(R+tsourceR`RbRcRDtchunkstcb((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyRJs		cC@s`y%y}tj|j|d}tj|j||d|}tj|dr{tj|j	}t
j|j|}n|SWntk
r#}t
|dd}|rt
j|jj}x|D]}	|j|	qWtj|j	}t
j|j|}
t
j|j|
nnXWn4tjk
r[}tjtdt|nXdS(sPapply a bundle on a repo

        This function handles the repo locking itself.tpusht	getchunkst_bundle2salvagedoutputspush failed:N((Rt
readbundleRSR'RKRRR%tsafehasattrRgRmRRht	ExceptionR:tbundle20taddpartt
processbundleRt	PushRacedt
ResponseErrorRtstr(R+tcgR`R^trettstreamtexctoutputtbundlertouttb((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyRKs(
cC@s
|jjS(N(RRR(R+((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyRscC@s|j|j||S(N(tapplyRR(R+RxRiR^((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pytaddchangegroupscC@s|jj||||S(N(RRR(R+t	namespaceR_toldtnew((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyRscC@s|jj|S(N(RRtlistkeys(R+R((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyRscC@sd|||||fS(s+used to test argument passing over the wires%s %s %s %s %s((R+tonettwotthreetfourtfive((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyt
debugwireargssN(R1R2R3t
moderncapsRPRYRZR[R]R^RHRR`RIR'RJRKRRRRR(((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyRMps$										#				tlocallegacypeercB@s;eZdZdZdZdZdZdZRS(scpeer extension which implements legacy methods too; used for tests with
    restricted capabilitiescC@stj||dtdS(NRX(RMRPt
legacycaps(R+R,((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyRPscC@s|jj|S(N(RRtbranches(R+Ra((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyRscC@s|jj|S(N(RRtbetween(R+tpairs((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyRscC@stj|j||S(N(R	RR(R+t	basenodesRi((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyR	scC@stj|j|||S(N(R	RLRR(R+tbasesR`Ri((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyRLs(R1R2R3RPRRR	RL(((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyRs				tlocalrepositoryc	B@s"eZed|Zeed}BZed~ZdZeZde	dZ
d	Zd
ZdZ
dZd
ZdZdZdZdZedddZedZdZedddZeddZeddZedZdZedd Zed!d"Z d#Z!d$Z"d%Z#d&Z$d'Z%d(Z&d)Z'd*Zd+Z(e	d,Z)e*de	d-Z+e	d.Z,e-d/Z.d0Z/d1Z0d2Z1d3Z2d4Z3d5Z4d6Z5e*d7Z6e	d8Z7d9Z8dd:Z9d;Z:d<Z;d=Z<d>Z=d?Z>d@Z?dAZ@dBZAdCZBeCdDZDdddEZEdFZFddGZGdHdIZHdJZIdKZJdLZKeLdMZMeLdNZNdOZOdPZPe	dQZQdRZRdSZSddTZTdUZUdVZVdWZWdXZXe	e	dYZYe*dZZZd[Z[d\Z\d]Z]e	d^Z^d_Z_e*d`Z`dddaZadbZbecdcZdddZeecdeZfdfZgdgZhdhZidiZje*djddde	e	ddkZke*e	dlZle*dmZme*dnZnddoZodpdde	e	e	e	dqZpddrZqdde	dsZrdtZsduZtdvZueLdwZvdxZwdyZxddddzZyd{ZzRS(trevlogv1tgeneraldeltattreemanifestt
manifestv2R!tfncachetsharedt	dotencodec	C@sit|_tj|dtdt|_|j|_|jj|_|jj	d|_
||_tj
|j|j|_tj
|j|jdtdt|_tj|j
dt|_|j|_||_|j|_|j|j_g|_y3|jj|j	d|jtj|jWntk
rBnX|jrt|j|_tdtj|jD}xE|jD]+}|j|kr||j|jqqWn|j|_|jjsr|rVt ||_|jj!s|jj"n|jj#d	td
|jkro|jj$d
|jj%ddqoqt&j't(d
|no|rt&j't(d|nMytj)|j|j|_Wn+tk
r}|j*t*j+krqnX|j
|_,yhtj|jj-dj.ddt}|j}|j!sKt&j't(d|n||_,Wn+tk
r}|j*t*j+krqnXt/j/|j|j,d|_/|j/j
|_0|j/j|_1|j/j	|_2|j/j3|j_3|j4|r|j5nt|_6i|_7d|_9i|_:i|_;d|_<|_=|_>i|_?i|_@tAjA|_BdS(Nt
expandpathtrealpaths.hgtrealfstcachedtcacheauditedthgrccs@s|]\}}|jVqdS(N(R1(t.0tntm((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pys	<genexpr>st
notindexedR!s
00changelog.is9 dummy changelog to prevent using the old repo layoutsrepository %s not foundsrepository %s already existst
sharedpaths
s1.hg/sharedpath points to nonexistent directory %scS@stj|dtS(NR(R tvfsR\(tbase((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyt<lambda>Js(CtsetRVR RR\twvfstwopenerRtrootR8tpathtorigrootRtpathauditort_checknestedtauditortFalsetnofsauditortopenertbaseuitcopyRSt_phasedefaultst
readconfigRtloadalltIOErrortfeaturesetupfuncst_basesupportedt	supportedR2tisdirtnewreporequirementstexiststmakedirstmakedirtmkdirtappendRt	RepoErrorRtreadrequiresterrnotENOENTRtreadtrstripR!tspathtsvfsR5t
createmodet_applyopenerreqst_writerequirementst_dirstatevalidatewarnedt
_branchcachesR't_revbranchcachet
filterpatst_datafilterst	_transreft_lockreft	_wlockreft
_filecachetfilteredrevcacheRtnames(	R+RRtcreatetextmodst	setupfunctinstRts((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyRPs			
			

!		



								cC@s|jdS(N(t_writecaches(R+((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyRYmscC@s|jr|jjndS(N(Rtwrite(R+((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyRps	cC@s]|jjddtrYt|}tjtj|}|jdtj	|n|S(Ntexperimentalsbundle2-advertisesbundle2=(
RSt
configboolR\RRt
encodecapstgetrepocapstaddturlreqtquote(R+RXtcapsblob((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyRTts
c@s
tfdjDj_jjdd}|dk	rY|jjd<njjdd}|dk	r|jjd<njjdd}|dk	r|jjd<njjddt}|jjd<t	j
jjjd<dS(Nc3@s*|] }|jkr|dfVqdS(iN(t
openerreqs(Rtr(R+(s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pys	<genexpr>|stformattchunkcachesizetmaxchainlentmanifestcachesizetaggressivemergedeltast
lazydeltabase(tdictRVRtoptionsRSt	configintR'RRR t
gddeltaconfig(R+RRRR((R+s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyR{s%cC@stj|j|jdS(N(R t
writerequiresRRV(R+((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyRscC@s|j|jstS|t|jd}tj|}|d}tj|}xo|rdj|}||j	kr||krt
S|j|}|j|t|dSqX|j
qXWtS(s/Determine if path is a legal nested repository.it/N(t
startswithRRtlenR%tpconvertR't	splitpathR8tsubstateR\tsubtchecknestedtpop(R+RtsubpathtnormsubpathtctxtpartstprefixR((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyRs
	cC@s
t|S(N(RM(R+((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyRscC@s|S(saReturn unfiltered version of the repository

        Intended to be overwritten by filtered repo.((R+((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyR*scC@s2dtj|jjfdY}|||S(s)Return a filtered version of a repositorytproxyclscB@seZRS((R1R2(((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyRs(RR*t	__class__(R+R;R((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyRQs%Rsbookmarks.currentcC@s
tj|S(N(Rtbmstore(R+((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyt
_bookmarksscC@s
|jjS(N(R	tactive(R+((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyt_activebookmarkscC@sl|jddd}g}xI|jjD]8\}}|jddd|kr,|j|q,q,W|S(Nt@ii(tsplitR	t	iteritemsR(R+tbookmarkR;R`tmarkR((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyt
bookmarkheadsst
phaserootss
00changelog.icC@stj||jS(N(Rt
phasecacheR(R+((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyt_phasecachestobsstorecC@s|jjddd}i}|dk	r7||d<ntj|tj}tj|jd||}|r|r|jjt	dt
t|n|S(NRsobsstore-versiont
defaultformattreadonlys3obsolete feature not enabled but %i markers found!
(RSRR'Rt	isenabledtcreatemarkersoptRRtwarnRRtlist(R+RRDRR!((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyRs
			cC@sWtj|j}dtjkrStjd}|j|jrS|jdqSn|S(Nt
HG_PENDINGs00changelog.i.a(R
RtostenvironRRtreadpending(R+tctp((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyR
s
cC@s
|jjS(N(tmanifestlogt_oldmanifest(R+((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyRscC@stj|jS(N(RR(R+((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyt_constructmanifestss00manifest.icC@stj|j|S(N(RR"R(R+((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyR"sR
cC@s"tj|j|j|j|jS(N(R
RRSRt_dirstatevalidate(R+((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyR

scC@siy|jj||SWnJtjk
rd|js`t|_|jjtdt	|nt
SXdS(Ns-warning: ignoring unknown working parent %s!
(R
trevRtLookupErrorRR\RSRRRR(R+tnode((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyR%s		cC@s|dks|tkr%tj|St|tr~gt|jt|D]*}||j	j
krPtj||^qPStj||S(N(R'RRt
workingctxt
isinstancetslicetxrangetindicesRR
tfilteredrevst	changectx(R+tchangeidti((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyt__getitem__s
(cC@s,y||tSWntjk
r'tSXdS(N(R\RtRepoLookupErrorR(R+R0((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyt__contains__#s
cC@stS(N(R\(R+((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyt__nonzero__*scC@s
t|jS(N(RR
(R+((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyt__len__-scC@s
t|jS(N(titerR
(R+((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyt__iter__0scG@s.tj||}tjd|}||S(sFind revisions matching a revset.

        The revset is specified as a string ``expr`` that may contain
        %-formatting to escape certain types. See ``revset.formatspec``.

        Revset aliases from the configuration are not expanded. To expand
        user aliases, consider calling ``scmutil.revrange()``.

        Returns a revset.abstractsmartset, which is a list-like interface
        that contains integer revisions.
        N(Rt
formatspecRR'(R+texprRCR((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pytrevs3scg@s*x#|j||D]}||VqWdS(sVFind revisions matching a revset and emit changectx instances.

        This is a convenience wrapper around ``revs()`` that iterates the
        result and is a generator of changectx instances.

        Revset aliases from the configuration are not expanded. To expand
        user aliases, consider calling ``scmutil.revrange()``.
        N(R;(R+R:RCR((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyRCs	cC@sd|jS(Nsfile:(R(R+((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyR^OscK@stj|j||||S(sCall a hook, passing this repo instance.

        This a convenience method to aid invoking hooks. Extensions likely
        won't call this unless they have registered a custom hook or are
        replacing code that is expected to call a hook.
        (RRS(R+R;tthrowRC((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyRRsc	@smt|tr|f}nj}	xb|D]Z}
jddtdtd|
d||
|	kr.jjtd|
q.q.Wfd}d}|r?yj	d	d
}
Wn#t
k
rj	d	d}
n
X|
j}||
|d|x3|D]+}
jddtd|
d|qWdSyj
dd
}
Wn=t
k
r}|jtjkrnj
dd}
n
X|
j}||
|tj||
jjdjkrdjdgntjjddg}j|||d|d|d|}x3|D]+}
jddtd|
d|q:W|S(NtpretagR<R(ttagR[s4warning: tag %s conflicts with existing branch name
c@s|jdd|r6|ddkr6|jdnx|D]}|rX||}n|}jjr|jjkrjj|t}|jdt||fn|jdt|fq=W|jdS(Niiis
s%s %s
(	tseekRt
_tagscachettagtypesR#tgetRRRY(tfpRtmungetprevtagsR;RR(R(R+(s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyt	writetagsis
 !tt	localtagssr+tas.hgtagssrb+tabtextraRteditor(R*RwRRR\RRSRRRRRR'twfileRRRt	fromlocalRYtinvalidatecachesR
RtmatchmodtexactRtcommit(R+RR(tmessageR[tusertdateRKRLRR;RFRERCteRttagnode((R(R+s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyt_tag[sN
$

)

	
)c		C@s|sltj|jddg}t|jd|dtdtrltjtddtdqln|j	|j
||||||d	|d
S(sZtag a revision with one or more symbolic names.

        names is a list of strings or, when adding a single tag, names may be a
        string.

        if local is True, the tags are stored in a per-repository file.
        otherwise, they are stored in the .hgtags file, and a new
        changeset is committed with the change.

        keyword arguments:

        local: whether to store tags in non-version-controlled file
        (default False)

        message: commit message to use if committing

        user: name of user to use if committing

        date: date tuple to use if committingRGs.hgtagsRtunknowntignoreds"working copy of .hgtags is changedthintsplease commit .hgtags manuallyRLN(RPRQRtanytstatusR\RtAbortRR#RX(	R+RR(RSR[RTRURLR((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyR>s$
cC@s;dtfdY}|}|j\|_|_|S(sMReturns a tagscache object that contains various tags related
        caches.t	tagscachecB@seZdZRS(cS@s$d|_|_d|_|_dS(N(R'R#RAt
nodetagscachettagslist(R+((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyRPs(R1R2RP(((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyR_s(R>t	_findtagsR#RA(R+R_tcache((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyR@s	cC@si}|jjr'|j\}}n|jj}xU|jD]G\}}y|jj||||<Wq@tjt	fk
rq@Xq@W|S(sreturn a mapping of tag to node(
R
R.RbR@R#RR&RR't
ValueError(R+ttR#ttttktv((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyR#scC@si}i}tj|j|||tj|j|||i}xB|jD]4\}\}}|tkrQ||tj|<qQqQW|jj	|d<t
g|jD]!\}}tj||f^q}||fS(suDo the hard work of finding tags.  Return a pair of dicts
        (tags, tagtypes) where tags maps tag name to node, and tagtypes
        maps tag name to a string like 'global' or 'local'.
        Subclasses or extensions are free to add their own tags, but
        should be aware that the returned dicts will be retained for the
        duration of the localrepo object.ttip(ttagsmodtfindglobaltagsRSt
readlocaltagsRRRttolocalR
RiR(R+talltagsRAR#R;R(thistR/((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyRbs4cC@s|jjj|S(s
        return the type of the given tag. result can be:

        'local'  : a local tag
        'global' : a global tag
        None     : tag does not exist
        (R@RARB(R+ttagname((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyttagtypes	cC@s|jjsg}xB|jjD].\}}|j|jj|||fq%Wgt|D]\}}}||f^qd|j_n|jjS(s)return a list of tags ordered by revision(R@RaR#RRR
R&tsorted(R+tlReRR((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyRas&7cC@s|jjs~i}x9|jjjD]%\}}|j|gj|q%Wx|jD]}|jq[W||j_n|jjj|gS(s&return the tags associated with a node(	R@R`R#Rt
setdefaultRt
itervaluestsortRB(R+R(R`ReRR#((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pytnodetags scC@sLg}x9|jjD](\}}||kr|j|qqWt|S(s;return the list of bookmarks pointing to the specified node(R	RRRr(R+R(tmarksRR((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyt
nodebookmarks+s
cC@stj||j|jS(skreturns a dictionary {branch: [branchheads]} with branchheads
        ordered by increasing revision number(RtupdatecacheRt
filtername(R+((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyR3s
cC@s+|js$tj|j|_n|jS(N(RRtrevbranchcacheR*(R+((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyR|9s	cC@sQy|jj|SWn3tk
rL|sMtjtd|qMnXdS(sreturn the tip node for a given branch

        If ignoremissing is True, then this method will not raise an error.
        This is helpful for callers that only expect None for a missing branch
        (e.g. namespace).

        sunknown branch '%s'N(Rt	branchtiptKeyErrorRR3R(R+tbrancht
ignoremissing((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyR}?s
cC@s||jS(N(R((R+R_((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyRHOscC@sN|p	|}||jkr"|S|r:|jr:|p=|}||jS(N(RR[R(R+R_tremoteR,((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pytlookupbranchRs
c	C@sk|j}|j}|j}g}xC|D];}|j|}|dkpR||k}|j|q(W|S(N(R
tnodemapR.RBR'R(	R+RatcltnmRQtresultRRtresp((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyRIZs			
cC@s|S(N((R+((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyR[escC@s|jjddtdtS(NRtpublisht	untrusted(RSRR\(R+((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyt
publishinghscC@s4|jstS|js tS|jdjjS(Ntvisible(R[RRR\RQR
R.(R+((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pytcancopyms
cC@s|j|jkrdSdS(s2the type of shared repository (None if not shared)R!N(RRR'(R+((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyRvscG@s|jjtjj||S(N(RR8RR(R+tftinsidef((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyR8|scG@s|jj|j||S(N(RtreljoinR(R+RR((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pytwjoinscC@s0|ddkr|d}ntj|j|S(NiRi(RR(R+R((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pytfiles
cC@s||S(N((R+R0((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyR/scC@s|jj|jj||}||}|r|xG|D]<}||kr9|||kr9|jj|||q9q9Wn|tkrxZt|jjjD]:\}}||kr||kr|jjd|qqWn|jj	dS(N(
R
tbeginparentchanget
setparentsRRRrtcopiestitemsR'tendparentchange(R+tp1tp2RtpctxRR((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyRs


!(cC@stj||||S(sechangeid can be a changeset revision, node, or tag.
           fileid can be a file revision or node.(Rtfilectx(R+RR0tfileid((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyRscC@s
|jjS(N(R
tgetcwd(R+((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyRscC@s|jj||S(N(R
tpathto(R+Rtcwd((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyRsRcC@s|j||S(N(R(R+Rtmode((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyRMscC@s|jj|S(N(Rtislink(R+R((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyt_linksc
@s.||jkr#g}x|jj|D]\}}|dkrFq(ntj|jd|g}d}|}xL|jjD];\}}	|j	|r}|	}|t
|j}Pq}q}W|sd}ntj
|ds|fd}n|j|||fq(W||j|<n|j|S(Nt!RGc[@stj||S(N(R%tfilter(RR RD((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyRsic@s
||S(N((RR RD(toldfn(s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyRs(RRStconfigitemsRPRRR'RRRRtlstriptinspectt
getargspecR(
R+RRstpattcmdtmftfntparamsR;tfilterfn((Rs7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyt_loadfilters*c
C@slxe|D]]\}}}||r|jjd||f|||d|jd|d|}PqqW|S(Nsfiltering %s through %s
RSR,tfilename(RStdebug(R+RRtdataRRR((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyt_filters$cC@s
|jdS(Ntencode(R(R+((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyt_encodefilterpatsscC@s
|jdS(Ntdecode(R(R+((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyt_decodefilterpatsscC@s||j|<dS(N(R(R+R;R((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyt
adddatafilterscC@sL|j|r$|jj|}n|jj|}|j|j||S(N(RRtreadlinkRRR(R+RR((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pytwreadscC@s|j|j||}d|kr:|jj||n>|jj||d|d|krx|jj|ttnt|S(swrite ``data`` into ``filename`` in the working directory

        This returns length of written (maybe decoded) data.
        Rstbackgroundclosetx(	RRRtsymlinkRtsetflagsRR\R(R+RRtflagsR((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pytwwritescC@s|j|j||S(N(RR(R+RR((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyt
wwritedatascC@s8|jr|j}nd}|r4|jr4|SdS(s4return the current transaction or None if non existsN(RR'trunning(R+ttr((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pytcurrenttransactions	c@sh|jjdds*|jjddrT|j|jdkrTtdqTn|j}|dk	rv|jS|jj	drt
jtddtdnd	t
j
tjf}d
tj|j}|jddtd
d||jg|jD]!\}}||t|f^q}|rP|}	n|jj}	i|jd6}
tj|fd}fd}tj|	|j|
ddt||jjd|d|}||jd<|j d|jj!fd}
|j d|
fd}|j"d||j#d|j$tj||_%|S(Ntdevelsall-warningsscheck-lockss/programming error: transaction requires lockingtjournalsabandoned transaction foundR[s(run 'hg recover' to clean up transactions%.40f#%fsTXN:t
pretxnopenR<ttxnnamettxnidtplainc@s&jddtd|jdS(swill run pre-closing hookstpretxncloseR<RN(RR\thookargs(R(tdesctreporef(s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pytvalidatesc@sL}|r"|jjdn&|jjddd|jdtdS(NRsjournal.tclearfilecache(R
RR't
restorebackupt
invalidateR\(RtsuccessR,(R(s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyt	releasefns
	tundot	validatorRs
flush-fncachec@s2|jfd}j|dS(sMTo be run if transaction is successful, will schedule a hook run
            c@s#jddtddS(NttxncloseR<R(RR((RRR(s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyRBsN(Rt
_afterlock(ttr2R(RR(Rs7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyttxnclosehook9s	s
txnclose-hookc@s&jddtd|jdS(s0To be run if transaction is aborted
            ttxnabortR<RN(RRR(R(RR(s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyttxnaborthookGss
txnabort-hooksrefresh-filecachestats(&RSRt_currentlockRR'tRuntimeErrorRtnestRRRRRtrandomttimethashlibtsha1t	hexdigestRR\t
_writejournalt
_journalfilestundonameRRtweakreftrefR$t
aftertransR!RRtaddfinalizeRtaddaborttaddpostcloset_refreshfilecachestatsR(R+RtreportRtidbaseRRRtrenamestrptvfsmapRRRR((RRs7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyR$sN

4			

cC@sL|jdf|jdf|jdf|jdf|jdf|jdffS(NRsjournal.dirstatesjournal.branchsjournal.descsjournal.bookmarkssjournal.phaseroots(RR(R+((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyRSscC@s/g|jD]\}}|t|f^q
S(N(RR(R+RR((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyt	undofiles[scC@s|jjddd|jjdtj|jj|jjddt||f|jjd|jj	d|j
jd|j
j	d	dS(
NRsjournal.sjournal.branchsjournal.descs%d
%s
sjournal.bookmarksRsjournal.phaserootsR(R
t
savebackupR'RRRRNRRttryreadR(R+R((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyR^sc	C@s|j|jjdr||jjtdi|jd6|jd6}tj|j|d|jj	|j
tS|jj	tdtSWdQXdS(NRs%rolling back interrupted transaction
RGRs%no interrupted transaction available
(
RRRRSR]RRR$trollbackRRR\R(R+R((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pytrecoveris




cC@sd}}}zm|j}|j}|jjdr`tj|d}|j|||S|jj	t
ddSWdt|||XdS(NRRs"no rollback information available
i(R'twlockRRRRt
dirstateguardt	_rollbackRSRRtrelease(R+tdryruntforceRRtdsguard((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyRwscC@sC|j}y|jjdj}t|d|dd}}}t|dkre|d}n|d}	|r|jrtd|	||f}
ntd|	|f}
Wn#t	k
rtd}
d}nX|r"|d	|d
kr"|dkr"t
jtdd
tdn|j|
|r9dS|j
j}|ji|jd6|jd6}tj|j|d|j|jjdr|jjdddtn|jjdr|jjdddtn|j|d|jjkp|d|jjk}
|
r5|j|j
jdddy/|jjd}|j
jtj|Wn1t	k
r|jtd|j
jnXt g|djD]}|j!^q}t|dkr|jtd|n|jtd|t"j#j$||d	j%n|j&dS(Ns	undo.desciiiis8repository tip rolled back to revision %s (undo %s: %s)
s4repository tip rolled back to revision %s (undo %s)
s!rolling back unknown transaction
t.RiRRs;rollback of last commit while not checked out may lose dataR[suse -f to forceRRGRsundo.bookmarksRt
checkambigsundo.phaserootsRRsundo.sundo.branchs>named branch could not be reset: current branch is still '%s'
s3working directory now based on revisions %d and %d
s+working directory now based on revision %d
('RSRRt
splitlinestintR'RtverboseRRRR^R]R
tparentst
destroyingRR$RRRtrenameR\RR
RRYRt	setbranchRRmRttupleR&tmergemodt
mergestatetcleanR(t	destroyed(R+RRRRSRCtoldlenRtdetailtoldtiptmsgRRt
parentgoneRR!((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyRsf	"

		

'




/ 
cC@s@dt|kr|jd=n|jjj|jdS(NR@(RAt__dict__R*Rtcleartinvalidatevolatilesets(R+((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyROs
cC@s|jjtj|dS(N(RRRtclearobscaches(R+((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyRs
cC@sht|drdx<|jjD].}yt|j|Wqtk
rIqXqWt|jdndS(sInvalidates the dirstate, causing the next call to dirstate
        to check if it was modified since the last time it was read,
        rereading it if it has.

        This is different to dirstate.invalidate() that it doesn't always
        rereads the dirstate. Use dirstate.invalidate() if you want to
        explicitly read the dirstate again (i.e. restoring it to a previous
        known good state).R
N(RBR
RtdelattrtAttributeErrorR*(R+Rg((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pytinvalidatedirstates	
cC@s|j}xa|jjD]P}|dkr4qn|rG|j|=nyt||Wqtk
rkqXqW|j|js|jjndS(s9Invalidates both store and non-store parts other than dirstate

        If a transaction is running, invalidation of store is omitted,
        because discarding in-memory changes might cause inconsistency
        (e.g. incomplete fncache causes unintentional failure, but
        redundant one doesn't).
        R
N(R*RtkeysRRRORR!(R+RR*Rg((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyRs


cC@s|j|jdS(syFully invalidates both store and non-store parts, causing the
        subsequent operation to reread any outside changes.N(RR(R+((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyt
invalidatealls
cC@sOxH|jjD]7\}}|dks||jkr=qn|jqWdS(s>Reload stats of cached files so that they are flagged as validR
N(RRRtrefresh(R+RRgtce((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyR
sc	C@sVd}	|dk	r'tjj|}	ny7tj||dd|d|d|d|d|	}
Wntjk
rQ}|snd|jkr|jj	dd\}}
|j
jtd	||
|fn#|j
jtd
||jftj||t
|j
jddd
d|d|d|}
|j
jtd|
jnX|
S(NiRt	acquirefnRtinheritcheckert
parentlockt:is5waiting for lock on %s held by process %r on host %r
s"waiting for lock on %s held by %r
RSttimeoutt600sgot lock after %s seconds
(R'RRRBtlockmodRRtLockHeldtlockerR
RSRRRtconfigtdelay(R+RtlocknametwaitRRRRtparentenvvarR RsRthosttpid((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyt_locks0
			!cC@sZxS|j|jfD]8}|o%|}|r|jr|jj|PqqW|dS(sadd a callback to be run when the repository is fully unlocked

        The callback will be executed when the outermost lock is released
        (with wlock being higher level than 'lock').N(RRtheldtpostreleaseR(R+tcallbackRRs((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyR5scC@ss|j|j}|dk	r,|j|S|j|jd|d|jtd|j}t	j
||_|S(s]Lock the repository store (.hg/store) and return a weak reference
        to the lock. Use this before modifying the store (e.g. committing or
        stripping). If you are opening a transaction, get a lock as well.)

        If both 'lock' and 'wlock' must be acquired, ensure you always acquires
        'wlock' first to avoid a dead-lock hazard.Rs
repository %sN(RRR'RR.RRRRRR(R+R*Rs((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyRBs
cC@s(|jdk	r$tjdndS(Ns8wlock cannot be inherited in the middle of a transaction(RR'Rt LockInheritanceContractViolation(R+((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyt_wlockchecktransactionSsc@sjoj}|dk	r8|jr8|j|S|rjjddshjjddrjjdk	rjjdqnfd}j	j
d||jtdj
djd	d
}tj|_|S(s8Lock the non-store parts of the repository (everything under
        .hg except .hg/store) and return a weak reference to the lock.

        Use this before modifying files in .hg.

        If both 'lock' and 'wlock' must be acquired, ensure you always acquires
        'wlock' first to avoid a dead-lock hazard.Rsall-warningsscheck-lockss"wlock" acquired after "lock"c@sDjjrjjnjjdjdjdS(NR
(R
tpendingparentchangeRRR'RR((R+(s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pytunlocklsRsworking directory of %sRR+tHG_WLOCK_LOCKERN(RR'R/RRSRRRt	develwarnR.RRRRR3RR(R+R*RsR5((R+s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyRXs 

		cC@s7|dkrdS|}|dks/|jr3dS|S(s3Returns the lock if it's held, or None if it's not.N(R'R/(R+tlockrefRs((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyR|s	cC@s|j|jS(s4Returns the wlock if it's held, or None if it's not.(RR(R+((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pytcurrentwlockscC@s|j}|j|t}|j|t}	t|tjr|j}
|
||	gkr|jjd||j	||j	kr|j
|n|
Sn|j|}i}|j}
|
r|
d|kr|
d}|j|}|	}|r?|	tks|dkr?||kr<||}|}q<q?n|r|jjd||t|f||d<t||d<t|}}	q#|jjtd||fnn|tkr|	t}}	nR|	tkr#|j||	}||kr|	t}}	q#|	|kr#t}	q#n|j}|	tksS|j||sS|r||j
||j||||||	S||kr|j	||j	kr|j
|n|S(sK
        commit an individual file as part of a larger transaction
        sreusing %s filelog entry
is %s: copy %s:%s
Rtcopyrevs8warning: can't find ancestor for '%s' copied from '%s'!
N(RRBRR*RRtfilenodeRSRRRRtrenamedR'RRRtcommonancestorsheadsRtcmpR(R+tfctxt	manifest1t	manifest2tlinkrevRt
changelistR7tfparent1tfparent2R(tflogtmetaRtcfnametcrevt
newfparenttfparentancestorsttext((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyt_filecommitsX

#
$
'c
C@s,|js|jr(t|j|j|j}x|jD]}|jj|}|dksB||ksB||j	krqBn||j
kr||tdn||kr|d}x\|D]}	|	j|rPqqW||tdqB||jkrB||tdqBqBWndS(s1check for commit arguments that aren't commitableRsfile not found!Rsno match under directory!sfile not tracked!N(
tisexactRRtmodifiedtaddedtremovedtfilesR
t	normalizeRtdeletedRR(
R+twctxtvdirsRR]tfailtmatchedRtdR((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pytcheckcommitpatternss '

RGc&@s6|dkri}nd}|s<tjjd}n|s`g}	|	j|_||_nd}
}}zj}
j}d}
t	|
j
dk}|r|r|jrtj
tdnjd|d|}|r|jj|jng}t}|
jj}d|
krx<|j|j|jfD]"}d|krS|jdqSqSW|
jj}x=t|jD])}||s||kr||||<qn|stj
td	|qn|
j|jt}|r`jj d
dsCtj
|dtd
n|j||j!|q|
j|j"}||d|||df||<|j#|d!d|kr|j|qqWxe|
j
D]W}g|jD]}||kr|^q}|g|D]}||r
|^q
7}qW|r|drwd|
j|
jkrwtj
tdn|jj$ddqnQd|jkrd|
krd|j|j|jkr|jj$ddqn|sj%|
|	|||nt&j'|||||}|
j(|
jj(kpr|j#dpr|pr|j)prjj d
d}|sdS|r|j*rtj
tdnt+j,j-}t.|j/rtj
tdn|j0dks	t.|j1r-tj
tddtdn|rK||||_2n||j2k}j3|j2}|rxvt|D]h}|
j|}jjtdt4j5||j6|j2||} ||d| f||<qWt4j7|nj8j
\}!}"t9|!|"t:kr4t9|"p7d}#}$yDj;ddtd|#d|$j<d}j=|tWn-|rjj>td|nnXt?j@|!|"g|jA|jB|jCWdtDjE|||
Xt9|#|$fd }%jF|%S("sAdd a new revision to current repository.

        Revision information is gathered from the working directory,
        match can be used to filter the committed files. If editor is
        supplied, it is called to get a commit message.
        cS@stjd||fdS(Ns%s: %s(RR^(RR((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyRWsRGisBcannot partially commit a merge (do not specify files or patterns)RRs.hgsubs.hgsubstates#commit with new subrepo %s excludedRStcommitsubreposR[s#use --subrepos for recursive commitiis$can't commit subrepos without .hgsubRYtallowemptycommits&cannot commit merge with missing filess2unresolved merge conflicts (see 'hg help resolve')Rsdriver-resolved merge conflictss!run "hg resolve --all" to resolvescommitting subrepository %s
t	precommitR<tparent1tparent2RRs!note: commit message saved in %s
Nc@s8jjr4jdd|d|d|ndS(NRRR(R^R_(R
thasnodeR(R(R^R_(RyR+(s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyt
commithooks(NNN(GR'RPtalwaysRRtexplicitdirtbadRRRRt	ispartialRR^RR]ROtextendRRRRRPRQtremoveRRrRRtdirtyreasonR\RSRRt	basestateRBtinsertRZRtworkingcommitctxRRRRTR
RRRt
unresolvedtmdstatetdriverresolvedt_texttsavecommitmessageR"t
subrelpathRRt
writestateR
RRRR$t	commitctxRRtupdatet
markcommittedtresetRYR$RR(&R+RLRTRURRRLRKRWRVRRRRURR]tsubst
commitsubstnewstateR toldstateRRhtbsR!RtcctxR\tmsteditedtmsgfnRtsrRRthookp1thookp2Ra((RyR+s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyRRs			
	
#(-

!$+	

!
c
C@s%d}|j|j}}|j}|j}z|jd}tj|}|jr|j	}	|j	}
|	j
}g}g}
t|j}t
|}|jjtdx<t|j|jD]}|jj|dyo||}|dkr(|j|nE|j||j||	|
|||
||<|j||jWqtk
r}|jjtd|qtk
r}t|dtj}|s|r|tjkr|jjtd|nqXqW|jjtdgt|D]$}||	ksH||
kr*|^q*}g|D]}||kr[|^q[}x|D]
}||=qW|jj||||j |j ||}|
|}n|j }g}|jjtd|j!j"||j!j|||j#||j$|j$||j%|j&j
	}|j'|ro|j'prd}}|j(d	d
t)dt'|d|d
|t*j+|j|}|rt,j-||||gn|j.t/j0|j1d|SWd|r|j2n|j2XdS(ssAdd a new revision to current repository.
        Revision information is passed via the context argument.
        RRscommitting files:
s
strouble committing %s!
Rscommitting manifest
scommitting changelog
RGtpretxncommitR<R(R^R_RNN(3R'RRRTRR$RtproxyRRRRRRQRRStnoteRRrRORPRRMtsetflagRtOSErrorRRR:RRR"RtmanifestnodeR
tdelayupdatetdescriptionR(RURKRRR\R"tnewcommitphaseRtretractboundaryRYRRzRQR(R+RRRRRRTRttrptm1tm2RRPtchangedRQRBRR?RterrcodetdroptmnRRRtxp1txp2ttargetphase((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyRss|#

7%

!%$

cC@s&dt|kr"|jjndS(sInform the repository that nodes are about to be destroyed.
        Intended for use by strip and rollback, so there's a common
        place for anything that has to be done before destroying history.

        This is mostly useful for saving state that is in memory and waiting
        to be flushed when the current lock is released. Because a call to
        destroyed is imminent, the repo will be invalidated causing those
        changes to stay in memory (waiting for the next unlock), or vanish
        completely.
        RN(RARR(R+((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyRscC@sA|jj||jjtj|jd|jdS(sInform the repository that nodes have been destroyed.
        Intended for use by strip and rollback, so there's a common
        place for anything that has to be done after destroying history.
        RNN(Rt
filterunknownRRRzRQR(R+((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyR
s
cC@s||j|S(s
        walk recursively through the directory tree or a given
        changeset, finding all files matched by the match
        function
        (twalk(R+RR(((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyR(sRcC@s ||j||||||S(s3a convenience method that calls node1.status(node2)(R](R+tnode1tnode2RRZRRYtlistsubrepos((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyR]0scC@s.|jj|}t|d|jjdtS(NR_treverse(R
R`RrR&R\(R+tstartR`((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyR`7scC@s|dkr|dj}n|j}||kr;gStt|j|d|}|dk	rt|jj|g|d}g|D]}||kr|^q}n|S(sVreturn a (possibly filtered) list of heads for the given branch

        Heads are returned in topological order, from newest to oldest.
        If branch is None, use the dirstate branch.
        If start is not None, return only heads reachable from start.
        If closed is True, return heads that are marked as closed as well.
        tclosediN(	R'RRRtreversedtbranchheadsRR
tnodesbetween(R+RRRRtbheadstfbheadsth((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyR<s!"(cC@s|s|jjg}ng}x|D]z}|}xktr|jj|}|dtkso|dtkr|j|||d|dfPn|d}q7Wq(W|S(Nii(R
RiR\RRR(R+RaRRReR!((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyRQs
	 !c
C@sg}x|D]\}}|gd}}}d}xh||kr|tkr|jj|d}	||kr|j||d}n|	}|d7}q6W|j|q
W|S(Niii(RR
RR(
R+RRttoptbottomRRsR1RR!((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyR_s

cC@sdS(sExtensions can override this function if additional checks have
        to be performed before pushing, or call it if they override push
        command.
        N((R+tpushop((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyt	checkpushrscC@s
tjS(sReturn util.hooks consists of a pushop with repo, remote, outgoing
        methods, which are called before pushing changesets.
        (R%thooks(R+((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pytprepushoutgoinghooksysc	@s4ysj}i}|dk	r4|j|jn|d<|d<|d<|d<jddt|WnZtjk
r}jj	t
d||jrjj	t
d|jntSXjj
d	ftjfd
}j|S(NRR_RRt
prepushkeyR<spushkey-abort: %s
s(%s)
spushing key for "%s:%s"
c@s/jdddddddS(NRRR_RRRy(R((R_RRRRyR+(s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pytrunhooks$(RR'RtRRR\Rt	HookAbortRSt	write_errRR[RRRRlR(	R+RR_RRRRR{R((R_RRRRyR+s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyRs(



	 
cC@s\|jddtd||jjd|tj||}|jdd|d||S(NtprelistkeysR<Rslisting keys for "%s"
Rtvalues(RR\RSRRR(R+RR((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyRs
cC@sd|||||fS(s+used to test argument passing over the wires%s %s %s %s %s((R+RRRRR((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyRscC@sR|jdd}z|j|Wd|jX|j|jt|jdS(Nslast-message.txttwbi(RRRYRR;RR(R+RLRC((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyRps
(RRRR(R!RRR(RRRRN({R1R2RRWRRR'R{RRRPRYRRTRRRRR*RQR&R	tpropertyRRR4RRR
RR$R"R
R%R2R4R5R6R8R;R^RRGRXR>R=R@R#RbRqRaRwRyRR|R}RHRRIR[RRRR8RRR/RRRRRRMRRRR9RRRRRRRR$RRRRRRRORRRRRR.RR\RR3RRR9RMRZRRRsRR
RR]R`RRRRRRRRRp(((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyRs	
	r						&																	H		!		
																							X				G							
	$				X	U"							c@s2g|D]}t|^qfd}|S(Nc@sFx?D]7\}}}y|j||Wqtk
r=qXqWdS(N(RR(Rtsrctdest(trenamefiles(s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyRIs

(R	(RRReRI((Rs7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyRscC@sOtjj|\}}|jds-ttjj||jdddS(NRRi(RRR
RtAssertionErrorR8treplace(RRR;((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyRscC@st|tj||S(N(RR%turllocalpath(RSRR((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pytinstancescC@stS(N(R\(R((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pytislocalscC@s|j}tdg}|jddtr|jd|jddtr|jd|jddtr|jdqqntj|r|jdn|jd	d
tr|jd
n|jd	dtr|jdn|S(sDetermine the set of requirements for a new local repository.

    Extensions can wrap this function to specify custom requirements for
    new repositories.
    RRtusestoreR!t
usefncacheRRRRRR(RSRRR\RR tgdinitconfigR(R,RSRV((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyRs	

(Nt
__future__RRRRRRRRti18nRR(RRRRRGRRRR	R
RRR
RRRRRRRR$RRRPRR
RRRRRRRRR R!R"R#RjR$R%RturlerrRt	filecacheR&R4t
propertycacheR9R=RBRGRRtunionRRORMRR>RRRRRR(((s7/usr/lib/python2.7/dist-packages/mercurial/localrepo.pyt<module>sH"#			
			k