Qc@sddlmZmZmZddlmZddlZddlZddlZddl Z ddl Z ddl Z ddl Z ddl Z ddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddl Z!ddl"Z#ddlm$Z$ddl%Z%ddl&Z&ddl'Z'ddl(Z(ddl)Z)ddl*Z*ej+Z+ej,Z,de,fdYZ-de-fdYZ.d e+fd YZ/d e+fd YZ0d Z1dZ2e3dddddfZ4e4j5e3dgZ6dej7fdYZ8de8fdYZ9de:fdYZ;dZ<dZ=dZ>dZ?dS(i(thextnullidtshort(t_N(treleaset repofilecachecBs,eZdZddZdZdZRS(sMAll filecache usage on repo are done for logic that should be unfiltered cCstt|j|j|S(N(tsuperRt__get__t unfiltered(tselftrepottype((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyRscCstt|j|j|S(N(RRt__set__R(R R tvalue((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyR scCstt|j|jS(N(RRt __delete__R(R R ((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyRsN(t__name__t __module__t__doc__tNoneRR R(((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyRs  t storecachecBseZdZdZRS(s filecache for files in the storecCs |j|S(N(tsjoin(R tobjtfname((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pytjoin#s(RRRR(((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyR!stunfilteredpropertycachecBseZdZddZRS(s0propertycache that apply to unfiltered repo onlycCstt|j|jS(N(RRRR(R R R ((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyR)sN(RRRRR(((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyR&stfilteredpropertycachecBseZdZdZRS(s1propertycache that must take filtering in accountcCstj||j|dS(N(tobjectt __setattr__tname(R RR ((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyt cachevalue/s(RRRR(((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyR,scCs|t|jkS(s?check if a repo has an unfilteredpropertycache value for (tvarsR(R R((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pythasunfilteredcache3scsfd}|S(s@decorate method that always need to be run on unfiltered versioncs|j||S(N(R(R targstkwargs(torig(s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pytwrapper9s((R"R#((R"s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pytunfilteredmethod7stlookupt branchmaptpushkeytknownt getbundletchangegroupsubsett localpeercBseZdZedZdZdZdZdZdZ dZ dZ d Z d Z ddd Zd Zd ZdZdZddddZRS(s8peer for a local repo; reflects only the most recent APIcCs\tjj||jd|_|j|_|j||_|j|_|j |_ dS(Ntserved( tpeertpeerrepositoryt__init__tfilteredt_repotuit_restrictcapabilitiest_capst requirementstsupportedformats(R R tcaps((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyR/Cs   cCs|jjdS(N(R1tclose(R ((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyR8KscCs|jS(N(R4(R ((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyt _capabilitiesNscCs|jS(N(R1(R ((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pytlocalQscCstS(N(tTrue(R ((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pytcanpushTscCs |jjS(N(R1turl(R ((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyR=WscCs|jj|S(N(R1R%(R tkey((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyR%ZscCs |jjS(N(R1R&(R ((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyR&]scCs |jjS(N(R1theads(R ((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyR?`scCs|jj|S(N(R1R((R tnodes((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyR(cscCs|jj|d|d|S(NR?tcommon(R1R)(R tsourceR?RA((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyR)fscCs |jjS(N(R1tlock(R ((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyRClscCs|jj|||S(N(R1taddchangegroup(R tcgRBR=((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyRDoscCs|jj||||S(N(R1R'(R t namespaceR>toldtnew((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyR'rscCs|jj|S(N(R1tlistkeys(R RF((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyRIuscCsd|||||fS(s+used to test argument passing over the wires%s %s %s %s %s((R tonettwotthreetfourtfive((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyt debugwireargsxsN(RRRt MODERNCAPSR/R8R9R:R<R=R%R&R?R(RR)RCRDR'RIRO(((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyR+@s"              tlocallegacypeercBs;eZdZdZdZdZdZdZRS(scpeer extension which implements legacy methods too; used for tests with restricted capabilitiescCstj||dtdS(NR7(R+R/t LEGACYCAPS(R R ((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyR/scCs|jj|S(N(R1tbranches(R R@((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyRSscCs|jj|S(N(R1tbetween(R tpairs((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyRTscCs|jj||S(N(R1t changegroup(R t basenodesRB((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyRVscCs|jj|||S(N(R1R*(R tbasesR?RB((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyR*s(RRRR/RSRTRVR*(((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyRQ|s     tlocalrepositoryc Bs.eZed{Zeed|BZed}ZdgZd~ZdZ d~e dZ dZ d Z d Zd Zd Zd ZdZdZeddZeddZdZeddZeddZeddZeddZeddZdZd Zd!Z d"Z!d#Z"d$Z#d%Zd&Z$e d'Z%e&id(Z'd)Z(e)d*Z*d+Z+d,Z,d-Z-d.Z.d/Z/d0Z0d1Z1d2Z2d3Z3d4Z4d5Z5d~d6Z6d7Z7d8Z8d9Z9d:Z:d;Z;d<Z<d=Z=d~d>Z>e?d?Z@d~d~d@ZAdAZBd~dBZCdCdDZDdEZEdFZFdGZGeHdHZIeHdIZJdJZKdKZLdLZMdMZNdNZOdOZPdPZQdQZRdRZSe e dSZTe&dTZUdUZVdVZWdWZXdXZYdYZZdZZ[e\d[Z]e\d\Z^d]Z_e&d^d~d~d~e e id_Z`e&e d`Zae&daZbe&dbZcd~dcZdddd~d~e e e e deZed~dfZfd~d~e dgZgdhZhdiZid~e djZjdkZke d~e dlZldmZmdnZndoZod~d~dpZpe&dqZqdrZre&dsZse&e dtZtduZuge dvZvdwZwdxZxd~d~d~dyZydzZzRS(trevlogv1t generaldeltatstoretfncachetsharedt dotencodecCs|jS(N(R5(R tcreate((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyt_baserequirementsscCs'tj|dtdt|_|j|_|jj|_|jjd|_||_ tj |j|j |_ tj|j|_|j|_ ||_|j|_g|_y3|jj|jd|jtj|jWntk rnX|jjs?|r#|jjs/|jjn|jjdt|j|}|jjddtr|jjd|jd|jjdd tr|jd |jjdd tr|jd qn|jjd d n|jjddtr|jdnt|}qt j!t"d|nu|rat j!t"d|nSytj#|j|j$}Wn4tk r}|j%t%j&krnt}nX|j|_'yhtj|jj(dj)ddt}|j}|jst j!t"d|n||_'Wn+tk rU}|j%t%j&krVqVnXt*j*||j'tj|_*|j*j|_+|j*j|_,|j,|_-|j*j|_.|j*j/|j_/|j0||r|j1ni|_2i|_3i|_4d|_6|_7|_8i|_9i|_:dS(Nt expandpathtrealpaths.hgthgrct notindexedtformattusestoreR\t usefncacheR]R_s 00changelog.it9 dummy changelog to prevent using the old repo layoutR[srepository %s not foundsrepository %s already existst sharedpaths s1.hg/sharedpath points to nonexistent directory %s(;tscmutiltvfsR;twvfstwopenertbasetrootRtpathtorigroott pathauditort _checknestedtauditortopenertbaseuitcopyR2t_phasedefaultst readconfigt extensionstloadalltIOErrortisdirtexiststmakedirstmakedirRat configbooltmkdirtappendtFalsetsetterrort RepoErrorRt readrequirest supportedterrnotENOENTRjtreadtrstripR\tspathtsvfstsopenerRt createmodet_applyrequirementst_writerequirementst _branchcachest filterpatst _datafiltersRt _transreft_lockreft _wlockreft _filecachetfilteredrevcache(R RwRqR`R5tinstRlts((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyR/s            !            cCsdS(N((R ((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyR8scCs|S(N((R R7((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyR3scs/|_tfd|Dj_dS(Nc3s*|] }|jkr|dfVqdS(iN(t openerreqs(t.0tr(R (s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pys s(R5tdictRtoptions(R R5((R s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyRs cCsK|jdd}x(t|jD]}|jd|q"W|jdS(Ntrequirestws%s (RvtsortedR5twriteR8(R treqfileR((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyR scCs|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 startswithRpRtlentutiltpconvertRt splitpathRtsubstateR;tsubt checknestedtpop(R Rqtsubpatht normsubpathtctxtpartstprefixR((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyRts   cCs t|S(N(R+(R ((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyR-5scCs|S(saReturn unfiltered version of the repository Intended to be overwritten by filtered repo.((R ((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyR8scCs2dtj|jjfdY}|||S(s)Return a filtered version of a repositorytproxyclscBseZRS((RR(((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyRBs(trepoviewRt __class__(R RR((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyR0>s%t bookmarkscCs tj|S(N(Rtbmstore(R ((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyt _bookmarksFssbookmarks.currentcCs tj|S(N(Rt readcurrent(R ((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyt_bookmarkcurrentJscCsl|jddd}g}xI|jjD]8\}}|jddd|kr,|j|q,q,W|S(Nt@ii(tsplitRt iteritemsR(R tbookmarkRR?tmarktn((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyt bookmarkheadsNs t phaserootscCstj||jS(N(tphasest phasecacheRy(R ((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyt _phasecacheVstobsstorecCsOtj|j}|rKtj rKd}|jj|tt|n|S(Ns3obsolete feature not enabled but %i markers found! (tobsoleteRRt_enabledR2twarnRtlist(R R\tmsg((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyRZs #s 00changelog.icCsWtj|j}dtjkrStjd}|j|jrS|jdqSn|S(Nt HG_PENDINGs00changelog.i.a(t changelogRtostenvironRRpt readpending(R tctp((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyRcs  s 00manifest.icCstj|jS(N(tmanifestR(R ((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyRlstdirstatecs:dgfd}tjjjj|S(Nicskyjj||SWnLtjk rfdsbtd<jjtdt|nt SXdS(Nis-warning: ignoring unknown working parent %s! ( RtrevRt LookupErrorR;R2RRRR(tnode(R twarned(s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pytvalidatess  (RRvR2Rp(R R((R Rs7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyRps  cCs)|dkrtj|Stj||S(N(Rtcontextt workingctxt changectx(R tchangeid((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyt __getitem__s  cCs3yt|j|SWntjk r.tSXdS(N(tboolR%RtRepoLookupErrorR(R R((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyt __contains__scCstS(N(R;(R ((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyt __nonzero__scCs t|jS(N(RR(R ((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyt__len__scCs t|jS(N(titerR(R ((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyt__iter__scGsJtj||}tjd|}g||t|D] }|^q:S(s4Return a list of revisions matching the given revsetN(trevsett formatspectmatchRR(R texprR tmR((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pytrevsscgs*x#|j||D]}||VqWdS(sw Yield a context for each matching revision, after doing arg replacement via revset.formatspec N(R(R RR R((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyRscCs d|jS(Nsfile:(Rp(R ((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyR=scKstj|j||||S(N(thookR2(R RtthrowR ((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyRsc sgt|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|}x3|D]+} jddtd| d|q4W|S(NtpretagRRttagR:s4warning: tag %s conflicts with existing branch name c s|jdd|r6|ddkr6|jdnx|D]}|rU||pX|}jjr|jjkrjj|t}|jdt||fn|jdt|fq=W|jdS(Niiis s%s %s ( tseekRt _tagscachettagtypesttagstgetRRR8(tfptnamestmungetprevtagsRRRG(RR (s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyt writetagss   !tt localtagssr+tas.hgtagssrb+tabtextraR(t isinstancetstrR&RR;RR2RRRvR}RRtwfileRRtencodingt fromlocalR8tinvalidatecachesRtaddtmatchmodtexactRptcommit(R RRtmessageR:tusertdateRRSRRRRteRttagnode((RR s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyt_tagsL   $     )   ! )cCsr|sHx?|jd D]*}d|krtjtdqqWn|j|j||||||dS(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 committingis.hgtagssCworking copy of .hgtags is changed (please commit .hgtags manually)N(tstatusRtAbortRRR(R RRRR:RRtx((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyRs   cCs;dtfdY}|}|j\|_|_|S(sMReturns a tagscache object that contains various tags related caches.t tagscachecBseZdZRS(cSs$d|_|_d|_|_dS(N(RRRt nodetagscachettagslist(R ((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyR/s(RRR/(((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyRs(Rt _findtagsRR(R Rtcache((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyR s cCsi}|jjr'|j\}}n |jj}xU|jD]G\}}y|jj||||((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyR%scCsN|p |}||jkr"|S|r:|jr:|p=|}||jS(N(R&R:R8(R R>tremoteR ((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyt lookupbranchs  cCst|jj}|j}g}xR|D]J}|j|}|dkp[|j||tjk }|j|q"W|S(N( RtnodemapRRRtphaseRtsecretR(R R@tnmtpctresultRRtresp((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyR(s   (cCs|S(N((R ((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyR:scCs |jS(N(R:(R ((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pytcancopyscCstjj|j|S(N(RRqR(R tf((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyRscCstjj|j|S(N(RRqRRp(R RG((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pytwjoinscCs0|ddkr|d}ntj|j|S(NiRi(tfilelogR(R RG((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pytfiles cCs||S(N((R R((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyRscCs||jS(s.get list of changectxs for parents of changeid(tparents(R R((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyRKscCs|jj||}||}|roxG|D]<}||kr,|||kr,|jj|||q,q,Wn|tkrxZt|jjjD]:\}}||kr||kr|jjd|qqWndS(N(Rt setparentsRxRRtcopiestitemsR(R tp1tp2RMtpctxRGR((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyRLs  ! (cCstj||||S(sechangeid can be a changeset revision, node, or tag. fileid can be a file revision or node.(Rtfilectx(R RqRtfileid((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyRRscCs |jjS(N(Rtgetcwd(R ((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyRTscCs|jj||S(N(Rtpathto(R RGtcwd((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyRUsRcCs|j||S(N(Rn(R RGtmode((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyRscCs|jj|S(N(Rmtislink(R RG((s7/sys/lib/python2.7/site-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|sics ||S(N((RRR!(toldfn(s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyR\s(RR2t configitemsR RRpRRRRRtlstriptinspectt getargspecR( R R[R+tpattcmdtmftfntparamsRtfilterfn((R]s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyt _loadfilters*  c Cslxe|D]]\}}}||r|jjd||f|||d|jd|d|}PqqW|S(Nsfiltering %s through %s R2R tfilename(R2tdebug(R RRitdataRdReRc((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyt_filters  $cCs |jdS(Ntencode(Rh(R ((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyt_encodefilterpatsscCs |jdS(Ntdecode(Rh(R ((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyt_decodefilterpats scCs||j|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 (#R2RvRt splitlinestintRRtverboseRR}RRRRRKt destroyingRRRRRRlRtrenameRRRR?t setbranchRR&R8ttupleRt destroyed(R RRR2R toldlenRtdetailtoldtipRRKt parentgoneR8R((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyRjsb "       '   "   +   cCs@dt|kr|jd=n|jjj|jdS(NR(Rt__dict__RRtcleartinvalidatevolatilesets(R ((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyR s cCs|jjtj|dS(N(RRRtclearobscaches(R ((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyRs cCsht|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).RN(RRRtdelattrtAttributeErrorR(R R ((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pytinvalidatedirstates  cCse|j}xH|jD]=}|dkr.qnyt||Wqtk rRqXqW|jdS(NR(RRRRR (R RR ((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyRs   cCsytj|d|d|}Wnxtjk r}|s@n|jjtd||jftj|t|jjddd|d|}nX|r|n|S(NiRs"waiting for lock on %s held by %r R2ttimeoutt600( RCRtLockHeldR2RRtlockerRtconfig(R tlocknametwaitt releasefnt acquirefnRR+R((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyt_locks$ cCs9|jo|j}|r.|jj|n|dS(sfadd a callback to the current repository lock. The callback will be executed on lock release.N(Rt postreleaseR(R tcallbackR+((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyt _afterlocksc sjoj}|dk r8|jr8|j|Sfd}jjd||jtdj}t j |_|S(sLock 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.)cs{jjtdr,jjnxHjjD]7\}}|dks<|jkriq<n|jq<WdS(NRR(R\RRRRRNRtrefresh(R tce(R (s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pytunlocks RCs repository %sN( RRtheldRCRRRRRrRR(R RR+R((R s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyRCs  c sjoj}|dk r8|jr8|j|Sfd}jjd||jtdj}t j |_|S(sLock 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.cs"jjjdjdS(NR(RRRR((R (s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyRs Rsworking directory of %sN( RRRRCRRRRRrRR(R RR+R((R s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyRs  c Cs|j}|j}|j|} |j|t} |j|t} } i} |j}|r|d|kr|d}|j|}| }|r| tks|dkr||kr||}| }qqn|s7|jjd||fx;|dj D]&}||kr ||j }Pq q Wn|r|jjd||t |f|| d0ss#skipping missing subrepository: %s (,RRRRRR RRpRTRRRRRRRvRRRRtnormalRRt LockErrorRt withflagsRRt _checklinkRkRRtbinaryR2RjRt itersubrepost narrowmatcherR;tzipRRRR.((R tnode1tnode2RRRR R!Rtctx2tworkingt parentworkingt listignoredt listcleant listunknownRtsubreposRRRRRRtfixupRGRtmf1tmf2R$Retmf2nodetsaneRRRtrev2tsubmatchtrfilestsfilesR+((RRR Rs7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyRs      !    *          *   -      % cCs.|jj|}t|d|jjdtS(NR>treverse(RR?RRR;(R tstartR?((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyR?9scCs|dkr|dj}n|j}||kr;gStt||}|dk rt|jj|g|d}g|D]}||kr|^q}n|sg|D]}||js|^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. iN( RR8R&RR4RRt nodesbetweenR5(R R8R=tclosedRStbheadstfbheadsR6((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyt branchheads>s    "(,cCs|s|jjg}ng}x|D]z}|}xktr|jj|}|dtkso|dtkr|j|||d|dfPn|d}q7Wq(W|S(Nii(RR"R;RKRR(R R@tbRRR((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyRSUs   !c Csg}x|D]\}}|gd}}}d}xh||kr|tkr|jj|d} ||kr|j||d}n| }|d7}q6W|j|q W|S(Niii(RRRKR( R RURttoptbottomRR+tiRGR((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyRTcs   c s'ddtj|jj}ztj|d|d|}|\}}}|sjjt dg} d} njj |dkrt |t gkrjjt dn$|dkr|j dr|}n|j dr&|jd d |d|p|} n]|dkrG|j|d } n<|j dsntjt d n|j||d } jj} t| } j| d |j} t| }gt| |D]}| j|^q} |dkr || }n|}|jd }t|jd t}|r| rtj||\}}tjtj|tjtj |ntjtj|fd}t!j"||}|dk r|ndk rj#nWddk rj$n|j$X| S(Nspull R?Rsno changes found isrequesting all changes R*R)tpullRAsWpartial pull cannot be done because other repository doesn't support changegroupsubset.Rt publishingcsdkrjSS(N(RR((R Rttrname(s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pytgettransactions  (%RRt hidepasswordR=RCt discoverytfindcommonincomingR2RRRRRtcapableR)RVRR*RRRRDtxrangeRRIRRRRtanalyzeremotephasestadvanceboundarytpublictdraftRtsyncpullR8R(R R=R?RRCttmpRAtfetchtrheadsRRDREtcltclstarttclendRtsubsett remotephasesRHtpheadst_drRJtobstr((R RRIs7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyRGvsd   !    +          cCsdS(sExtensions can override this function if additional checks have to be performed before pushing, or call it if they override push command. N((R RR((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyt checkpushsc' s|js$tjtdnj}tjfd}dyjWnEt k r}|j t j krnd|}j j |nXz<j||d} |jd} | s|j} nztj} | ||d|} | \} }}tj}|||d|d| d|}|jshtj|j ||jd}nj|sG|jr"td}d }td td td xx|jD]j}||}|jrtj||q|jrtjt||jd |fqqWntj|||||t|n|dkru|j ruj|jd}njd|}| r|rdg}n|j ||d}n|j!|dj"}|r|j}n~|dkr|j#}nft$|j%} g|D]}|| kr|^q}|j$d|j#|j}|j&d|D|j'd}j j(ddt)r|r|dkr|j*dt)ridd6}n|s||ntj+||}|\}}|j*dt)r||n||||tj,|j$d||}xa|D]Y}|j-d|j.t/tj,t/tj} | sFj j0td|qFqFWj j dtj1|Wd| dk r| j2nXWddk rj2nXj j d|j'd}!x|!j3D]}"|"|j4kr+|!|"t.j4|"}#}$|#|kr||#}%||$}&t5j6||%|&r|j-d|"|#|$} | rj j7td|"qj j0td|"qqq+q+W|S(swPush outgoing changesets (limited by revs) from the current repository to remote. Return an integer: - None means nothing to push - 0 means HTTP error - 1 means we pushed and remote head count is unchanged *or* we have outgoing changesets but refused to push - other values as described by addchangegroup() s!destination does not support pushcsdk r"tj||n_g|D]"}||jkr)|^q)}tj|}|rjjtd|ndS(s0move to in the local source repos8cannot lock source repo, skipping local %s phase update N(RRRQR@t phasenamesR2RR(R@R@Rt actualmovestphasestr(t locallockR (s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pytlocalphasemoves / s"cannot lock source repository: %s tunbundleRt onlyheadst commonincs%push includes obsolete changeset: %s!spush includes %s changeset: %s!s%push includes unstable changeset: %s!s#push includes bumped changeset: %s!s&push includes divergent changeset: %s!itpushs%ln and parents(roots(%ln))css|]}|jVqdS(N(R(RR((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pys csRR2t_usedassubrepoRHR;sheads((%ln::%ln) and public())supdating %s to public failed! s'try to push obsolete markers to remote Nschecking for updated bookmarks Rsupdating bookmark %s supdating bookmark %s failed! (8R<RRRRRRRRRCR}RtEACCESR2RjR`RNRLRMtfindcommonoutgoingtmissingRktnochangesfoundtexcludedRt missingheadsRttroubledttroublest checkheadsRt _changegrouptgetlocalbundleRfRDR=t commonheadsRRARRIRRRRPRSR'RRRtsyncpushRRRRt validdestR('R R=RRt newbranchtunfiReterrRRCRftfciRhRAtinct remoteheadstfcotoutgoingRtmsotmstRRREtcheadsRR\tanaR]tdrootstoutdatedt newremoteheadRtrbR tnrtnltcrRX((RdR s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyRis                    %                   cCs|jjs|dkr;|jjtdt|n|jjr|jjdx+|D] }|jjdt|q^WndS(Ntbundles%d changesets found slist of changesets: s%s (R2RRRRt debugflagRjR(R R@RBR((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pytchangegroupinfos #  cCsw|j}|stg}n|j||\}}}|jg|D]}|j|^qC}|j||||S(s=Compute a changegroup consisting of all the nodes that are descendants of any of the bases and ancestors of any of the heads. Return a chunkbuffer object whose read() method will return successive changegroup chunks. It is fairly complex as determining which filenodes and which manifest nodes need to be included for the changeset to be complete is non-trivial. Another wrinkle is doing the reverse, figuring out which changeset in the changegroup a particular filenode or manifestnode belongs to. (RRR>RRt_changegroupsubset(R RXR?RBRXtcsetsRRA((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyR*s  +cCs,|js dS|j|j|j|j|S(sLike getbundle, but taking a discovery.outgoing as an argument. This is only implemented for local repos and reuses potentially precomputed sets in outgoing.N(RmRRRARp(R RBR((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyRus   cCs}|j}|r@|j}g|D]}||r|^q}n tg}|s^|j}n|j|tj|||S(sJLike changegroupsubset, but returns the set difference between the ancestors of heads and the ancestors common. If heads is None, use the local heads. If common is None, use [nullid]. The nodes in common might not all be known locally due to the way the current discovery protocol works. (RthasnodeRR?RuRLR(R RBR?RARXRR((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyR)s  (  csjj i i tdig ddg|j|tjkrqj Sjddtdj fdj j t dt dt d t d  f d }t j|j jd d ddkrQdntj fd}t jtj|dS(NRit preoutgoingRRBcsB|j|j}}g|D]$}|||kr|^qS(N(RR(trevlogRmtrrtrlR(t commonrevs(s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pytprunes tbundlingt changesetst manifestsRc sJ|kruj|}j|d j|d|dcd7< dddd|S| kr |} j|}x=|jD]/\}}|kr|j||qqWdcd7< dddd|S ddddddd|SdS(Niiitunitttotaltitem(RRR,treadfastR(RRRtclnodetmdataRGR( t _bundlingt _changesetst_filest _manifestst changedfilesRXtcounttfnodestfstateRdtmfstprogress(s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyR%s*    Rtreordertautoc3sdtg(x%jd D] }|Vq,W dxD]}i|tj t d|nXj jrqj jd| t j|fnjtj| d}xYt j|d|D]B}| t|7} j jt d | d | |j|qW|jqWtj| }|dkrd}nj jt d dj jt dt j| |t j| |f|jt j!j"j#|j$|reg}x!|j%D]}|j&|qW|ret'fd|D}tj(||j)|}xMdD]B}j*|}|j+|r|j,|<|j|PqqWqenj-tj.dSWd|j/XdS(NR&s'unexpected response from remote server:isoperation forbidden by serveris$locking the remote repository failedis%the server sent an unknown error codesstreaming all changes t s!%d files to transfer, %s of data tcloneRtsadding %s (%s) RtlimitgMbP?s(transferred %s in %.1f seconds (%s/sec) c3s'|]}tjj|VqdS(N(RRR(RR(R (s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pys sRot immutableR,(sbaseRsserved(0RCRRNR&t stream_outtreadlineRRRt ResponseErrorRRRR2RtmapRt TypeErrort bytecountRttimeRORRjRR\t decodedirt filechunkiterRRR8RRR5R6RRR-Rtmaxt branchcacheRR0tvalidforRRR?R(R R=R5RCt rbranchmapRR+REt total_filest total_bytest handled_bytesR=RFRtsizetofpRtelapsedtrbheadsR@trtiprevRt candidatetrview((R s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyt stream_in s        %                cCs|s|jd}n|r| r|jdrJ|j|tdS|jd}|rt|jd}||js|j||Sqn|j||S(sclone remote repository. keyword arguments: heads: list of revs to clone (forces use of pull) stream: use streaming clone if possiblesstream-preferredtstreamRZt streamreqst,(RZ(RNRRRR6RG(R R=R?RR((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyR s  c Cs|jddtd|d|d|d||jjd||ftj|||||}|jdd|d|d|d|d ||S( Nt prepushkeyRRFR>RGRHspushing key for "%s:%s" R'R(RR;R2RjR'Ri(R RFR>RGRHR((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyR' s $cCs\|jddtd||jjd|tj||}|jdd|d||S(Nt prelistkeysRRFslisting keys for "%s" RItvalues(RR;R2RjR'R(R RFR((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyRI s cCsd|||||fS(s+used to test argument passing over the wires%s %s %s %s %s((R RJRKRLRMRN((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyRO scCsR|jdd}z|j|Wd|jX|j|jt|jdS(Nslast-message.txttwbi(RvRR8RURRRp(R RR((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyR s  (srevlogv1s generaldelta(sstoresfncachesshareds dotencode(srevlogv1s generaldeltaN({RRRR6RRR5RR3RaRR/R8R3RRRtR-RR0RRRRRRRRRRRRRRRRR=RR$RRRRRRR*RR/R1R&R7R9R<R%R>R(R:RFRRHRJRRKRRLRRRTRURRYRhRlRRnRpRqRsRwRxRR}RR|RRRR RRRRRR;RCRRR RRRRRR?RBRSRTRGR`RiRR*RuR)RRVRtRDRRR'RIROR(((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyRYs     c     &               C   !                            B      PQ"      T    l ^ ] cs2g|D]}t|^qfd}|S(NcsFx?D]7\}}}y|j||Wqtk r=qXqWdS(N(RR(Rltsrctdest(t renamefiles(s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyR s  (R(RRR((Rs7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyR scCsOtjj|\}}|jds-ttjj||jdddS(NRyRi(RRqRRtAssertionErrorRtreplace(ReRoR((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pyR~' scCst|tj||S(N(RYRt urllocalpath(R2RqR`((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pytinstance, scCstS(N(R;(Rq((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pytislocal/ s(@RRRRti18nRR-RVRRLR'RRRRRIRRRRRCRR\RRkRR{RRRRR RRRR#RRRRRR`R&t propertycachet filecacheRRRRRR$RRPtunionRRR.R+RQRRYRR~R R (((s7/sys/lib/python2.7/site-packages/mercurial/localrepo.pytsJTT0H   <      <