\x89\x50\x4E\x47\x0D\x0A\x1A\x0A PNG  \x89\x50\x4E\x47\x0D\x0A\x1A\x0A  13\c@@sddlmZddlZddlZddlZddlZddlZddlZddlZddl m Z ddl m Z m Z mZmZmZddlmZmZmZmZmZmZmZmZmZmZmZmZmZmZm 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/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z8m9Z9m:Z;m<Z<m=Z=m>Z>m?Z@ddlAmBZBmCZCmDZDddlEmFZGe#jHZHe>jIZIe>jJZJeKZLd e5jMfd YZNd eNfd YZOd eNfdYZPdZQde>jRfdYZSde>jRfdYZTdZUdZVddddddhZWeWjXdhZYeBjZe1j[de\fdYZ]eBjZe1j^de1j_fd YZ`eBjZe1jad!e`fd"YZbd#Zcd$ZdeKZeefd%Zgd&Zhd'Zid(Zjd)Zkd*Zld+Zmd,Znd-ZoeBjZe1jpd.e\fd/YZqeBjZe1jpd0e\fd1YZrd2Zse1jtd3fe1jpd4fgZueBjZe1jtd5e\fd6YZvd7Zwd8Zxefefd9Zyd:Zzefd;Z{d<Z|d=Z}efd>Z~d?ZdS(@i(tabsolute_importNi(t_(tbinthextnullidtnullrevtshort()t bookmarkst branchmaptbundle2t changegroupt changelogtcolortcontexttdirstatet dirstateguardt discoverytencodingterrortexchanget extensionstfilelogthooktlocktmanifesttmatchtmerget mergeutilt namespacest narrowspectobsoletetpathutiltphasestpushkeytpycompatt repositorytrepoviewtrevsett revsetlangtscmutiltsparsetstoret subrepoutilttagst transactionttxnutiltutiltvfs(t interfaceutiltprocutilt stringutil(t constantst_basefilecachecB@s,eZdZddZdZdZRS(sMAll filecache usage on repo are done for logic that should be unfiltered cC@s/|dkr|Stt|j|j|S(N(tNonetsuperR4t__get__t unfiltered(tselftrepottype((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyR7[s cC@stt|j|j|S(N(R6R4t__set__R8(R9R:tvalue((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyR<_scC@stt|j|jS(N(R6R4t __delete__R8(R9R:((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyR>asN(t__name__t __module__t__doc__R5R7R<R>(((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyR4Xs  t repofilecachecB@s eZdZdZdZRS(s3filecache for files in .hg but outside of .hg/storecG@s>tt|j|x!|D]}tj|dfqWdS(Ntplain(R6RBt__init__t _cachedfilestadd(R9tpathstpath((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyRDfs cC@s|jj|S(N(R/tjoin(R9tobjtfname((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyRIks(R?R@RARDRI(((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyRBds t storecachecB@s eZdZdZdZRS(s filecache for files in the storecG@s>tt|j|x!|D]}tj|dfqWdS(Nt(R6RLRDRERF(R9RGRH((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyRDps cC@s |j|S(N(tsjoin(R9RJRK((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyRIus(R?R@RARDRI(((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyRLns cC@s8|jjj|d}|s+dtfS|jtfS(s{check if a repo has already cached "name" filecache-ed property This returns (cachedobj-or-None, iscached) tuple. N(R8t _filecachetgetR5tFalseRJtTrue(R:tnamet cacheentry((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyt isfilecachedxs tunfilteredpropertycachecB@seZdZddZRS(s0propertycache that apply to unfiltered repo onlycC@s>|j}||kr.tt|j|St||jS(N(R8R6RVR7tgetattrRS(R9R:R;tunfi((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyR7s  N(R?R@RAR5R7(((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyRVstfilteredpropertycachecB@seZdZdZRS(s1propertycache that must take filtering in accountcC@stj||j|dS(N(tobjectt __setattr__RS(R9RJR=((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyt cachevalues(R?R@RAR\(((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyRYscC@s|t|jkS(s?check if a repo has an unfilteredpropertycache value for (tvarsR8(R:RS((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pythasunfilteredcachesc@sfd}|S(s@decorate method that always need to be run on unfiltered versionc@s|j||S(N(R8(R:targstkwargs(torig(s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pytwrappers((RaRb((Ras9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pytunfilteredmethodstlookupRR!tknownt getbundletunbundletchangegroupsubsettlocalcommandexecutorcB@s>eZdZdZdZdZdZdZRS(cC@s||_t|_t|_dS(N(t_peerRQt_sentt_closed(R9tpeer((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyRDs  cC@s|S(N((R9((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyt __enter__scC@s|jdS(N(tclose(R9texctypetexcvaluetexctb((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyt__exit__scC@s|jrtjdn|jr6tjdnt|jtj|}tjj }y|tj |}Wn+t k rtj |t jdnX|j||S(Ns1callcommand() cannot be used after sendcommands()s*callcommand() cannot be used after close()i(RkRtProgrammingErrorRlRWRjR"tsysstrtfuturestFuturet strkwargst Exceptiontfuture_set_exception_infotsystexc_infot set_result(R9tcommandR_tfntftresult((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyt callcommands    cC@s t|_dS(N(RRRk(R9((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyt sendcommandsscC@s t|_dS(N(RRRl(R9((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyRos(R?R@RDRnRsRRRo(((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyRis      t localpeercB@seZdZddZdZdZdZdZdZ dZ dZ d Z dddd Z dddd Zd Zd ZdZdZdZdZdZdZRS(s8peer for a local repo; reflects only the most recent APIcC@sbtt|j|dkr.tj}n|jd|_|j|_|j ||_ dS(Ntserved( R6RRDR5t moderncapstcopytfilteredt_repotuit_restrictcapabilitiest_caps(R9R:tcaps((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyRDs   cC@s |jjS(N(Rturl(R9((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyRscC@s|jS(N(R(R9((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pytlocalscC@s|S(N((R9((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyRmscC@stS(N(RR(R9((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pytcanpushscC@s|jjdS(N(RRo(R9((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyRoscC@s |jjS(N(RR(R9((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyRscC@s|jS(N(R(R9((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyt capabilitiesscC@s|jjdS(Nsclonebundles.manifest(Rttryread(R9((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyt clonebundlesscC@s2d||tj|tj|tj|fS(s+Used to test argument passing over the wires%s %s %s %s %s(R"tbytestr(R9tonettwotthreetfourtfive((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyt debugwireargss c K@svtj|j|d|d|d||d}tj|}tj|r_tj|j|St jd|dSdS(Ntheadstcommont bundlecapsit01( RtgetbundlechunksRR.t chunkbuffertbundle2requestedR t getunbundlerRR R5(R9tsourceRRRR`tchunkstcb((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyRfs  cC@s |jjS(N(RR(R9((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyR scC@s|jj|S(N(RRe(R9tnodes((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyRescC@s|jj|S(N(Rtlistkeys(R9t namespace((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyRscC@s|jj|S(N(RRd(R9tkey((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyRdscC@s|jj||||S(N(RR!(R9RRtoldtnew((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyR!scC@stjtddS(Ns.cannot perform stream clone against local peer(RtAbortR(R9((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyt stream_outsc C@scy%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| nnXWn7tjk r^}tjtdtj|nXdS(sPapply a bundle on a repo This function handles the repo locking itself.tpusht getchunkst_bundle2salvagedoutputs push failed:N((Rt readbundleRR5RgRR.t safehasattrRRR RRyRWtbundle20taddpartt processbundleRt PushRacedt ResponseErrorRR2t forcebytestr( R9tbundleRRtrettstreamtexctoutputtbundlertouttb((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyRgs*  cC@s t|S(N(Ri(R9((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pytcommandexecutorFsN(R?R@RAR5RDRRRmRRoRRRRRfRReRRdR!RRgR(((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyRs(               (tlocallegacypeercB@s;eZdZdZdZdZdZdZRS(scpeer extension which implements legacy methods too; used for tests with restricted capabilitiescC@s tt|j|dtdS(NR(R6RRDt legacycaps(R9R:((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyRDPscC@s|jj|S(N(Rtbetween(R9tpairs((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyRUscC@s|jj|S(N(Rtbranches(R9R((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyRXscC@s@tj|jd|d|jj}tj|j|d|S(Nt missingrootst missingheadsR(RtoutgoingRRR tmakechangegroup(R9RRR((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyR [scC@s7tj|jd|d|}tj|j|d|S(NRRR(RRRR R(R9tbasesRRR((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyRh`s (R?R@RARDRRR Rh(((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyRKs     sexp-revlogv2.0t sparserevlogcC@s%|j}|j|_tj|dtdt}|jd}tj|dt}|jsy|jWn+tk r}|jtj krqnXt j t d|nyt |jdj}Wn4tk r}|jtj krnt }nXy6|j|jdd|jt||||Wntk rZnXtj|d tj|D} t|} t|| t||t } d |ksd |kri|jd jd } d |kr|j| } ntj| dt} | js>t j t d| jn| jtj| j}| jd}n|j}|jd}t||d}|j|_|j}t ||| |_!tj|dt}|j|_g}i}xt"D]\}}|d|d|d|d| d|d|d|d|d|j!d|d| d|d| }t#|t$st j%d|n|j&|qWt'j(d|jd jt)|f}t$|t*|i}|d!|d|d"|d|d|d|d#| d |d|d|d| d| S($seCreate a local repository object. Given arguments needed to construct a local repository, this function performs various early repository loading functionality (such as reading the ``.hg/requires`` and ``.hg/hgrc`` files), validates that the repository can be opened, derives a type suitable for representing that repository, and returns an instance of it. The returned object conforms to the ``repository.completelocalrepository`` interface. The repository type is derived by calling a series of factory functions for each aspect/interface of the final repository. These are defined by ``REPO_INTERFACES``. Each factory function is called to produce a type implementing a specific interface. The cumulative list of returned types will be combined into a new type and that type will be instantiated to represent the local repository. The factory functions each receive various state that may be consulted as part of deriving a type. Extensions should wrap these factory functions to customize repository type creation. Note that an extension's wrapped function may be called even if that extension is not loaded for the repo being constructed. Extensions should check if their ``__name__`` appears in the ``extensionmodulenames`` set passed to the factory function and no-op if not. t expandpathtrealpaths.hgt cacheauditedsrepository %s not foundtrequiresthgrctrootcS@sh|]\}}|jqS((R?(t.0tntm((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pys s tsharedt relsharedt sharedpaths s1.hg/sharedpath points to nonexistent directory %stcachecS@stj|dtS(NR(tvfsmodR/RR(tbase((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pytsRtintentst requirementstfeaturestwdirvfsthgvfsR)tstorevfst storeoptionstcachevfstextensionmodulenamest extrastatet baseclassessunable to construct type for %ssderivedrepo:%s<%s>t,tbaseuitorigroottsupportedrequirements(+RRR/RRRItisdirtstattOSErrorterrnotENOENTRt RepoErrorRtsettreadt splitlinestIOErrort readconfigRt afterhgrcloadRtloadalltgathersupportedrequirementstensurerequirementsrecognizedtensurerequirementscompatibletrstriptexistsRFR#tREPO_FEATURE_SHARED_STORAGEt makestoret createmodetresolvestorevfsoptionstoptionstREPO_INTERFACESt isinstanceR;RttappendR"Rutsortedttuple(RRHRRRthgpathRteRRRRRt sharedvfst storebasepatht cachepathR)RRRRtifaceRttypRStcls((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pytmakelocalrepository}s                         cC@sidgd6dgd6}xqt|jD]]\}}||krKq-nx<|D]4}|jd|sR|jd|dddqRqRWq-WdS(sQPerform additional actions after .hg/hgrc is loaded. This function is called during repository loading immediately after the .hg/hgrc file is loaded and before per-repo extensions are loaded. The function can be used to validate configs, automatically add options (including extensions) based on requirements, etc. t largefilestlfsRRMRtautoloadN(Rtitemst hasconfigt setconfig(RRRRtautoextensionst requirementtnamesRS((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyRDs     cC@sttj}dtj|D}x-tD]%}|j|kr/|||q/q/Wx>tjD]3}tj|}|jrb|j d|qbqbW|S(s6Determine the complete set of recognized requirements.cS@sh|]\}}|jqS((R?(RRR((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pys ds sexp-compression-%s( Rtlocalrepositoryt_basesupportedRtfeaturesetupfuncsR@R.t compenginest revlogheaderRF(Rt supportedtmodulesRRStengine((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyR]s   cC@st}x`|D]X}||kr(qn| sC|dd!j r[tjtdn|j|qW|rtjtddjt|dtdndS( sValidate that a set of local requirements is recognized. Receives a set of requirements. Raises an ``error.RepoError`` if there exists any requirement in that set that currently loaded code doesn't recognize. Returns a set of supported requirements. iis.hg/requires file is corrupts:repository requires features unknown to this Mercurial: %st thintsJsee https://mercurial-scm.org/wiki/MissingRequirement for more informationN(RtisalnumRtRequirementErrorRRFRIR(RRtmissingR((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyRrs    cC@s2d|kr.tj r.tjtdndS(sValidates that a set of recognized requirements is mutually compatible. Some requirements may not be compatible with others or require config options that aren't enabled. This function is called during repository opening to ensure that the set of requirements needed to open a repository is sane and compatible with config options. Extensions can monkeypatch this function to perform additional checking. ``error.RepoError`` should be raised on failure. s exp-sparsesfrepository is using sparse feature but sparse is not enabled; enable the "sparse" extensions to accessN(R(tenabledRRR(RR((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyRs cC@sQd|krAd|kr1tj||d|kStj||Stj||S(s,Construct a storage object for a repository.R)tfncachet dotencode(tstoremodt fncachestoret encodedstoret basicstore(RRHtvfstype((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyRs     cC@si}d|krt|dZ9d?Z:d@Z;dAZ<e=dBZ>e&dCZ?dDZ@dEZAdFZBdGZCdHZDdIZEdJZFdKZGeHdLZIddddMZJdNZKddOZLdPZMdQZNeOdRZPeOdSZQdTZRdUZSe&dVZTdWZUdXZVddYZWdZZXd[ZYe=d\ZZd]Z[e&e&d^Z\e=d_Z]d`Z^e=de&daZ_dbZ`dcZaddZbe&deZcdfZde=dgZedddhZfdiZgehdjZidkZjehdlZkdmZldnZmdoZndpZoe=dqddde&e&ddrZpe=e&dsZqe=dtZre=duZsdvdde&e&e&e&dwZtdxZudyZvdzZwdd{Zxdde&d|Zyd}Zzd~Z{dZ|eOdZ}dZ~dZddddZdZRS(sQMain class for representing local repositories. All local repositories are instances of this class. Constructed on its own, instances of this class are not usable as repository objects. To obtain a usable repository object, call ``hg.repository()``, ``localrepo.instance()``, or ``localrepo.makelocalrepository()``. The latter is the lowest-level. ``instance()`` adds support for creating new repositories. ``hg.repository()`` adds more extension integration, including calling ``reposetup()``. Generally speaking, ``hg.repository()`` should be used. R2R9R/R)R(RRR)s exp-sparsesinternal-phaseRRscache/Rs bisect.statec C@s||_||_||_||_|j|_||_|j|_||_||_ ||_ | |_ | |_ | |_ d|_|jjdds|jjddr|j|jj|j_ng|_tj|j|j j|_|j j|_|j j|_|jjdds<|jjddrtj|jdru|j|jjj|jj_q|j|jj|j_nt|_i|_d|_ i|_!i|_"d|_#|_$|_%i|_&i|_'g|_(t)j)|_*i|_+i|_,dS(sCreate a new local repository instance. Most callers should use ``hg.repository()``, ``localrepo.instance()``, or ``localrepo.makelocalrepository()`` for obtaining a new repository object. Arguments: baseui ``ui.ui`` instance that ``ui`` argument was based off of. ui ``ui.ui`` instance for use by the repository. origroot ``bytes`` path to working directory root of this repository. wdirvfs ``vfs.vfs`` rooted at the working directory. hgvfs ``vfs.vfs`` rooted at .hg/ requirements ``set`` of bytestrings representing repository opening requirements. supportedrequirements ``set`` of bytestrings representing repository requirements that we know how to open. May be a supetset of ``requirements``. sharedpath ``bytes`` Defining path to storage base directory. Points to a ``.hg/`` directory somewhere. store ``store.basicstore`` (or derived) instance providing access to versioned storage. cachevfs ``vfs.vfs`` used for cache files. features ``set`` of bytestrings defining features/capabilities of this instance. intents ``set`` of system strings indicating what this repo will be used for. tdevels all-warningss check-locksR/N(-RRRtwvfsRRR/RHRRRR)RRR5t filternameRDt _getvfswardtauditt_phasedefaultsR tsetuptspathRWRIRNR.Rt _getsvfswardRQt_dirstatevalidatewarnedt _branchcachest_revbranchcachet _filterpatst _datafilterst _transreft_lockreft _wlockrefROtfilteredrevcachet _postdsstatusRRt_sparsesignaturecachet_sparsematchercache( R9RRRRRRRRR)RRR((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyRDjsN4               $        c@s+tjdfd}|S(sbuild a ward for self.vfsc@sx|d|}}|dksMtj|d sMtj|d rQdS|dkradS|j|jr|t|jd}n|jdrd}|jj||d d d d n|jd r|j|j dkrt|jjd|d d d dqtnb|j|j dkrtx$j D]}|j|r4dSq4W|jjd|d d d dn|S(NtmodeRoRnRStrbiscache/s2accessing cache with vfs instead of cachevfs: "%s"t stackleveliRHs cache-vfssjournal.swrite with no lock: "%s"s check-locksswrite with no wlock: "%s"(NRSRu( R5R.RRLRHRMRt develwarnt _currentlockRnRot_wlockfreeprefix(RHRtRR:tmsgtprefix(torigfunctrrefR9(s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pytcheckvfss0   #N(tweakreftrefR5(R9R|R~((R|R}R9s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyRbsc@s(tj|dfd}|S(sbuild a ward for self.svfsc@s|d|}}|dks:tj|d r>dS|d krNdS|j|jrz|t|jd}n|j|jdkr|jj d|ddn|S( NRtRnRSRuiswrite with no lock: "%s"Rvi(NRSRu( R5R.RRLRRMRxRnRRw(RHRtRR:(R|R}(s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyt checksvfs s   N(RRR5(R9R|R((R|R}s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyRg scC@s|jdS(N(t _writecaches(R9((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyRoscC@s|jr|jjndS(N(Rjtwrite(R9((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyRs cC@s`|jjddr\t|}tjtj|dd}|jdtj|n|S(NR>sbundle2-advertisetroletclientsbundle2=( RRDRR t encodecapst getrepocapsRFturlreqtquote(R9Rtcapsblob((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyR#s   cC@stj|j|jdS(N(R't writerequiresR/R(R9((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyt_writerequirements+scC@stj|jd|jS(Ntcallback(Rt pathauditorRt _checknested(R9((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pytauditor1scC@s%tj|jd|jdtdtS(NRtrealfstcached(RRRRRQRR(R9((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyt nofsauditor7scC@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.iRVN(RLRRQRMR.tpconvertR5t splitpathRItsubstateRRtsubt checknestedtpop(R9RHtsubpatht normsubpathtctxtpartsR{R((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyR>s   cC@s t|S(N(R(R9((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyRmdscC@s|S(saReturn unfiltered version of the repository Intended to be overwritten by filtered repo.((R9((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyR8gscC@s(tj|jj}||||S(s)Return a filtered version of a repository(R$tnewtypeR8t __class__(R9RStvisibilityexceptionsR((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyRmsRsbookmarks.currentcC@s tj|S(N(Rtbmstore(R9((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyt _bookmarksrscC@s |jjS(N(Rtactive(R9((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyt_activebookmarkvst phaserootss 00changelog.icC@stj||jS(N(R t phasecacheRd(R9((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyt _phasecache}stobsstorecC@stj|j|S(N(RRR(R9((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyRscC@s"tj|jdtj|jS(Nt trypending(R RWR-tmayhavependingR(R9((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyR ss 00manifest.icC@s(tj|j}tj|j||S(N(RtmanifestrevlogRWt manifestlog(R9t rootstore((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyRscC@s |jS(N(t _makedirstate(R9((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyRsc@s4fd}tjjjjj|S(s3Extension point for wrapping the dirstate per-repo.c@s tjS(N(R(tmatcher((R9(s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyRs(RR/RRt_dirstatevalidate(R9t sparsematchfn((R9s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyRscC@siy|jj||SWnJtjk rd|js`t|_|jjtdt |nt SXdS(Ns-warning: ignoring unknown working parent %s! ( R trevRt LookupErrorRhRRRtwarnRRR(R9tnode((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyRs  cC@s tj|S(sdmatcher patterns for this repository's narrowspec A tuple of (includes, excludes). (Rtload(R9((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyt narrowpatsscC@sPtj|jkr%tj|jdS|j\}}tj|jd|d|S(NRMtincludetexclude( R#RNRtmatchmodtalwaysRRRR(R9RR((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyt _narrowmatchscC@s|rx|re|jj retj|j|j|j}tj|j|g}tj||Stj||jS|jS(smatcher corresponding the the repo's narrowspec If `match` is given, then that will be intersected with the narrow matcher. If `includeexact` is True, then any exact matches from `match` will be included even if they're outside the narrowspec. ( RRRtexactt_roott_cwdtfilest unionmatchertintersectmatchers(R9Rt includeexacttemtnm((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyR[s !cC@s'tj||||jdtdS(Ntclearfilecache(Rtsavet invalidateRR(R9t newincludest newexcludes((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyt setnarrowpatsscC@s|dkrtj|St|tjr/|St|trgtj|jt |D]"}||j j kr]||^q]Syt|t r|j j |}|}n|dkrt}t}n}|dkr|j j}|j j|}nM|dkr1|jj}|jj j|}nt |dkry|}|j j|}WqHtjk rt|}qHtk r|jr||jjjkrtd}tj|t|nt|}qHXnRt |dkr)t|}|j j|}ntjd|t |ftj!|||SWntj"tjfk rtj#tdtj$|nVt%tfk rtj&td tj$|ntj'k rtj|SXdS( Ntnullttipt.is*working directory has unknown parent '%s'!i(s$unsupported changeid '%s' of type %ssfiltered revision '%s'sunknown revision '%s'((R5R t workingctxRtbasectxtsliceR"txrangetindicesRMR t filteredrevstintRRRRRRtp1R8RtFilteredLookupErrorRRRtparentsRRRRRtR;t changectxtFilteredIndexErrortFilteredRepoLookupErrorRt IndexErrortRepoLookupErrortWdirUnsupported(R9tchangeidtiRRRz((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyt __getitem__sd  "             cC@s,y||tSWntjk r'tSXdS(sTrue if the given changeid exists error.AmbiguousPrefixLookupError is raised if an ambiguous node specified. N(RRRRRQ(R9R((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyt __contains__ s cC@stS(N(RR(R9((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyt __nonzero__scC@s|j}t|jS(N(R8RMR (R9RX((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyt__len__s cC@s t|jS(N(titerR (R9((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyt__iter__ scG@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 ``revsetlang.formatspec``. Revset aliases from the configuration are not expanded. To expand user aliases, consider calling ``scmutil.revrange()`` or ``repo.anyrevs([expr], user=True)``. Returns a revset.abstractsmartset, which is a list-like interface that contains integer revisions. N(R&t formatspecR%RR5(R9texprR_R((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pytrevs#s 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(R9RR_RS((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyR4s cC@sU|r3tj|j|dtj|d|}ntjd|d|}||S(s<Find revisions matching one of the given revsets. Revset aliases from the configuration are not expanded by default. To expand user aliases, specify ``user=True``. To provide some local definitions overriding user aliases, set ``localalias`` to ``{name: definitionstring}``. Rdt localaliasN(R%tmatchanyRtlookupfnR5(R9tspecstuserRR((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pytanyrevs@s  cC@s d|jS(Nsfile:(R(R9((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyRPscK@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. (RR(R9RStthrowR_((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyRSscC@s;dtfdY}|}|j\|_|_|S(sMReturns a tagscache object that contains various tags related caches.t tagscachecB@seZdZRS(cS@s$d|_|_d|_|_dS(N(R5R+ttagtypest nodetagscachettagslist(R9((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyRDds(R?R@RD(((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyRcs(RZt _findtagsR+R(R9RR((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyt _tagscache\s cC@si}|jjr'|j\}}n |jj}xU|jD]G\}}y|jj||||sR( ttagsmodtfindglobaltagsRtdictt readlocaltagsRRRttolocalR R(R9talltagsRR+RSRthistR=((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyRs 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 (RRRP(R9ttagname((s9/usr/lib64/python2.7/site-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(RRR+RRR RR(R9tlRRRS((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyRs  &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( RRR+Rt setdefaultRt itervaluestsortRP(R9RRRRR+((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pytnodetagss cC@s|jj|S(s;return the list of bookmarks pointing to the specified node(RR(R9R((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyt nodebookmarksscC@stj||j|jS(skreturns a dictionary {branch: [branchheads]} with branchheads ordered by increasing revision number(Rt updatecacheRiRa(R9((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyRs cC@s+|js$tj|j|_n|jS(N(RjRtrevbranchcacheR8(R9((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyRs 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 branchtiptKeyErrorRRR(R9tbrancht ignoremissing((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyRs  cC@stj||jS(N(R't revsymbolR(R9R((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyRdscC@s,||jkr|Stj||jS(N(RR'RR(R9R((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyt lookupbranchsc C@sk|j}|j}|j}g}xC|D];}|j|}|dkpR||k }|j|q(W|S(N(R tnodemapRRPR5R( R9RtclRRRRRStresp((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyRes    cC@s|S(N((R9((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyRscC@s|jjdddtS(NR tpublisht untrusted(RRDRR(R9((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyt publishingscC@s4|jstS|js tS|jdjj S(Ntvisible(RRQRRRRR R(R9((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pytcancopys   cC@s|j|jkrdSdS(s2the type of shared repository (None if not shared)R)N(RRHR5(R9((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyR scG@s|jj|j||S(N(R/treljoinR(R9Rtinsidef((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pytwjoinscC@s|jj|jj||}||}|rxG|D]<}||kr<|||kr<|jj|||q<q<Wn|tkrxZt|jjjD]:\}}||kr||kr|jjd|qqWnWdQXdS(N( Rt parentchanget setparentsRRRtcopiesRR5(R9Rtp2R#tpctxRts((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyR"s  ! (cC@stj||||d|S(sechangeid can be a changeset revision, node, or tag. fileid can be a file revision or node.R(R tfilectx(R9RHRtfileidR((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyR'$scC@s |jjS(N(Rtgetcwd(R9((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyR)*scC@s|jj||S(N(Rtpathto(R9Rtcwd((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyR*-sc @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|shook-track-tagststripc@s}tj|j|}|jj}tj|j||}tj|j|||}|rd|jd<|jdddt}tj ||WdQXndS(Nt1t tag_movedschanges/tags.changestwt atomictemp( Rt fnoderevsRR theadrevstdifftagsthookargsR/RRt writediff(ttr2R:t oldfnodestnewheadst newfnodestchangest changesfile(toldheadstreporef(s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyt tracktagss   c @s|}|jjddr>tj||ntj|jdrxtjdjD]b\}\}}j j }|j t j ||||jddtdtj|qmWntj|jdr|jj}xjdjD]w\}\}}j j }t|j|}|j tj ||||jddtdtj|qWn|jd dtdtjj d S( swill run pre-closing hooksR>ssingle-head-per-branchspretxnclose-bookmarkRRRRspretxnclose-phaseR t pretxncloseN(RRDR'tenforcesingleheadRthashookRRbRR\RR5RtpreparehookargsRRR"RxR8R RRR ( R^R:RSRRR_RRR(tdescReRNRf(s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pytvalidates*  ,&c@sY}|r"|jjdn3tjd|jjdd|jdtdS(Nsjournal.narrowspecsjournal.dirstateR(RRR5Rt restorebackupRRR(RNtsuccessR:(ReR9(s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyt releasefns  tundot validatorRotcheckambigfilest origrepolent obsmarkersR Rs flush-fncachec@s5|jfd}j|dS(sMTo be run if transaction is successful, will schedule a hook run c @s}tj|jdrtjdj}xm|D]b\}\}}jj}|jt j ||||jddt dt j |q>Wntj|jdri|jj}tjdj}x|D]w\}\}}jj}t|j|} |jtj | |||jddt dt j |qWn|jddt dt j dS(Nstxnclose-bookmarkRRRRstxnclose-phaseR ttxnclose(RRiRRRbRR\RR5RRjRQR"RxR8R RRR ( R:t bmchangesRSRRR_RtphasemvRR(RkR\ReRN(s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pythookfunc*s& N(R\t _afterlock(R^Rx(RkReRN(R\s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyt txnclosehook!s s txnclose-hooks -warm-cachec@s/jddtdtj|jdS(s0To be run if transaction is aborted ttxnabortRRRN(RRQR"RxR\(R^(RkRe(s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyt txnaborthookGss txnabort-hooksrefresh-filecachestats(0RRDRxRnR5RRtROtnestRWRRRtrandomttimeRthashlibtsha1tdigestRRRt _writejournalt _journalfilestundonameRR/RRR RZR,t aftertransR)RRERMRbRR\t addfinalizeRt addpostcloset_buildcacheupdatertaddabortt_refreshfilecachestatsRmR'tregistersummarycallback(R9RktreporttidbasethaRSR/RGtrenamestrptvfsmaptshouldtracktagsRlRoRzR|((RkRdReR9RNRfs9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyR,sj     4  " (       cC@sL|jdf|jdf|jdf|jdf|jdf|jdffS(NRPsjournal.dirstatesjournal.branchs journal.descsjournal.bookmarkssjournal.phaseroots(RWR/(R9((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyRTs      cC@s/g|jD]\}}|t|f^q S(N(RR(R9R/RG((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyt undofiles\scC@s|jjddtj|d|jjdtj|jj|jjddt ||f|jjd|jj d|j jd|j j d dS( Nsjournal.dirstatesjournal.narrowspecsjournal.branchs journal.descs%d %s sjournal.bookmarksRsjournal.phaserootsR( Rt savebackupR5RR/RRt fromlocalRRMRRW(R9Rk((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyR_s    c C@s|j|jjdr|jjtdi|jd6|jd6}tj|j|d|jj dt |j t S|jj tdt SWdQXdS(NRPs%rolling back interrupted transaction RMRCRrs%no interrupted transaction available (RRWRRtstatusRR/R,trollbackRRERRRRQ(R9R((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pytrecoverls     cC@sd}}}zm|j}|j}|jjdr`tj|d}|j|||S|jjt ddSWdt |||XdS(NRpRs"no rollback information available i( R5twlockRRWRRt _rollbackRRRtrelease(R9tdryruntforceRRtdsguard((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyR{s  cC@sV|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"|d kr"t j td d tdn|j | |r9dS|j j} |ji|jd6|jd6} tj|j| d|jdt|jjdr|jjdddtn|jjdr|jjdddtn|j| d|jjkp| d|jjk} | rH|jtj|d|j jddy/|jjd}|j jtj |Wn1t k r|jtd|j j!nXt"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 %d (undo %s: %s) s4repository tip rolled back to revision %d (undo %s) s!rolling back unknown transaction RRtcommits;rollback of last commit while not checked out may lose dataR#suse -f to forceRCRMRpRrsundo.bookmarksRt checkambigsundo.phaserootsRsundo.narrowspecs undo.dirstates undo.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 ()RR/RRRR5RMtverboseRRRRRRRt destroyingRWR,RRRERtrenameRRRR RRoRRmt setbranchRRRRRtmergemodt mergestatetcleanRt destroyed(R9RRRRR_toldlenRktdetailtoldtipRzRRt parentgoneRtp((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyRsj "       '      /   c@s"tj|fd}|S(scalled during transaction to build the callback updating cache Lives on the repository to help extension who might want to augment this logic. For this purpose, the created transaction is passed to the method. c@s}|j|dS(N(t updatecaches(RNR:(Re(s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pytupdaters (RR(R9tnewtransactionR((Res9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyRscC@s|dk r(|jjddkr(dS|dksM|jdt|krv|jjdtj|j dn|r|j }x|j D]}|j |qW|j x%|djD]}|jqWndS(swarm appropriate caches If this function is called after a transaction closed. The transaction will be available in the 'tr' argument. This can be used to selectively update caches relevant to the changes in that transaction. If 'full' is set, make sure all caches the function knows about have up-to-date data. Even the ones usually loaded more lazily. RRTNRssupdating the branch cache RR(R5R\RPRbRMRR:RRRRR t branchinfoRRR(R9RNtfulltrbcRSR((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyRs $%  cC@sMdt|kr|jd=n|jjj|j|jjdS(NR(R]t__dict__R8RitcleartinvalidatevolatilesetsRr(R9((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pytinvalidatecachess   cC@s|jjtj|dS(N(RpRRtclearobscaches(R9((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyR s 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).RN(R^RROtdelattrtAttributeErrorR8(R9R((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pytinvalidatedirstates  cC@s|j}xt|jjD]z}|dkr:q"n|dkrd|jrd|jjrdq"n|rw|j|=nyt||Wq"tk rq"Xq"W|j |js|j j ndS(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). RR N( R8tlistROtkeysROR t_delayedRRRR)(R9RR8R((s9/usr/lib64/python2.7/site-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(R9((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyt invalidateallAs cC@s^xW|jjD]F\}}tj|}|dks||jkrLqn|jqWdS(s>Reload stats of cached files so that they are flagged as validRN(RORR"RuRtrefresh(R9RNRtce((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyRHs c C@sd} |dk r'tjj|} nd} d} |rf|jjdd} |jjdd} n|jjdd} tj|j||| | d|d|d|d |d | d | } | S( NiRttimeouts timeout.warnssignal-safe-lockRot acquirefnRktinheritcheckert parentlockt signalsafe( R5RtenvironRPRR3RDtlockmodttrylock(R9R/tlocknametwaitRoRRkRt parentenvvarRRt warntimeoutRR((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyt_lockQs    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(RoRntheldt postreleaseR(R9RRR((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyRyis 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( RxRnR5RRRWRRRRR(R9RR((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyRvs  cC@s(|jdk r$tjdndS(Ns8wlock cannot be inherited in the middle of a transaction(ROR5Rt LockInheritanceContractViolation(R9((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyt_wlockchecktransactionsc @sjoj}|d k r8|jr8|j|S|rjjddshjjddrjjd k rjjdqnfd}j j d||j t 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.R_s all-warningss check-lockss"wlock" acquired after "lock"c@sDjjrjjnjjdjdjdS(NR(RtpendingparentchangeRRR5ROR((R9(s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pytunlocksRsworking directory of %sRRtHG_WLOCK_LOCKERN(RoR5RRRRDRxRnRwRR/RRRRRR(R9RRR((R9s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyRs     cC@s7|dkrdS|}|dks/|j r3dS|S(s3Returns the lock if it's held, or None if it's not.N(R5R(R9tlockrefR((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyRxs   cC@s|j|jS(s4Returns the wlock if it's held, or None if it's not.(RxRo(R9((s9/usr/lib64/python2.7/site-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|| dt branchheadsRR t nodesbetween(R9RR?R@Rtbheadstfbheadsth((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyRAt s   ! "(cC@s|s|jjg}ng}x|D]z}|}xktr|jj|}|dtkso|dtkr|j|||d|dfPn|d}q7Wq(W|S(Nii(R RRRRRR(R9RRRRR((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyR s   !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( R9RRSttoptbottomRRRRR((s9/usr/lib64/python2.7/site-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((R9tpushop((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyt checkpush scC@s tjS(sReturn util.hooks consists of a pushop with repo, remote, outgoing methods, which are called before pushing changesets. (R.thooks(R9((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pytprepushoutgoinghooks sc @sCyj}i}|dk r4|j|jntj|}|d<|d<|d<|d<jddt|WnZtj k r}j j t d||j rj j t d|j ntSXj jd ftjfd }j|S( NRRRRt prepushkeyRspushkey-abort: %s s(%s) spushing key for "%s:%s" c @s/jdddddddS(NR!RRRRR(R((RRRRRR9(s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pytrunhook s$(ROR5R5R\R"RxRRRRt HookAbortRt write_errRR#RQR:R!RRy( R9RRRRRNR\RRM((RRRRRR9s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyR! s*         cC@s\|jddtd||jjd|tj||}|jdd|d||S(Nt prelistkeysRRslisting keys for "%s" Rtvalues(RRRRR:R!R(R9RRQ((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyR s cC@s2d||tj|tj|tj|fS(s+used to test argument passing over the wires%s %s %s %s %s(R"R(R9RRRRR((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyR s cC@sR|jdd}z|j|Wd|jX|j|jt|jdS(Nslast-message.txttwbi(R/RRoR*RSRMR(R9Rtfp((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyR s  N(R?R@RAR4RItsupportedformatsRRyR5RDRbRgRoRRRtpropertyRRRRmR8RRBRRRLRRR RRRRRtFILENAMERRRQR[RRRRt__bool__RRRRRRRRYRR+RRRR R RRcRRRdRReRRRRR RR"R'R)R*R8R=RVR?RARBRERKRLROR,RRRRRRRRRRRRRRRRyRRRRRRxRRRRRRRRR:R;R<RRARRRIRKR!RRR(((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyR0s    z #      &       ?         #                     I    "     $  X nx            c@s2g|D]}t|^qfd}|S(Nc@sSxLD]D\}}}|j|y|j||Wqtk rJqXqWdS(N(t tryunlinkRR(R/tsrctdest(t renamefiles(s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyta s   (R(RRR\((R[s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyR s cC@s:tjj|\}}tjj||jdddS(NRPRpi(tosRHtsplitRItreplace(RRRS((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyR scC@s>tj|}|r+t||d|nt||d|S(Nt createoptsR(R.t urllocalpathtcreaterepositoryR(RRHtcreateRR`t localpath((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pytinstance scC@stS(N(RR(RH((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pytislocal scC@s;t|p i}d|kr7|jdd|d|jdn |jd|Sd|krmtjdn|ddkrtjtd|dndh}|jd d r |jd |jd d r |jd |jd dr |jdq q n|j dd}|t j krUtjtd|dtdn|dkru|jd|nt j |r|jdn|jddr|jdn|jd dr|jtn|j dd}|dkr |jd|jd|jtn|jd drB|jdn|jdrd|jtjn|jdr|jdn|S(sDetermine the set of requirements for a new local repository. Extensions can wrap this function to specify custom requirements for new repositories. t sharedrepotsharedrelativeRRRgsFbackend key not present in createopts; was defaultcreateopts() called?R2sCunable to determine repository requirements for storage backend: %sR0tusestoreR)t usefncacheR(R)R>sformat.compressionsNcompression engine %s defined by experimental.format.compression not availableR#s;run "hg debuginstall" to list available compression enginestzlibsexp-compression-%sR9R/s sparse-revlogR8s*enable-unstable-format-and-corrupt-my-datasinternal-phaset narrowfilesR(RRRPRFRRtRRRDRHR.RR't gdinitconfigRItremovetdiscardR4R#RN(RR`RRBR8((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pytnewreporequirements sV          c@s5dddddddhfd|jDS( s%Filters a dict of repo creation options against options that are known. Receives a dict of repo creation options and returns a dict of those options that we don't know how to handle. This function is called as part of repository creation. If the returned dict contains any items, repository creation will not be allowed, as it means there was a request to create a repository with options not recognized by loaded code. Extensions can wrap this function to filter out creation options they know how to handle. RgRRnRiRjt shareditemstshallowfilestorec@s+i|]!\}}|kr||qS(((RRR(Re(s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pys p s (R(RR`((Res9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pytfilterknowncreateoptsX s c C@sIt|d|}t||}t|tsBtjdn|rtjtddjt |dtdnt |d|}t j |dt dt }t j |jd }|jrtjtd |nd |krv|d j}|jd rvytjj||j}Wqsttfk ro}tjtd dtj|qsXqvn|js|jn|jdt d|krd |kr|jd|jddntj||d |kr|j d|n|jdrEdjt |dd} |j d| ndS(sCreate a new repository in a vfs. ``path`` path to the new repo's working directory. ``createopts`` options for the new repository. The following keys for ``createopts`` are recognized: backend The storage backend to use. lfs Repository will be created with ``lfs`` requirement. The lfs extension will automatically be loaded when the repository is accessed. narrowfiles Set up repository to support narrow file storage. sharedrepo Repository object from which storage should be shared. sharedrelative Boolean indicating if the path to the shared repo should be stored as relative. By default, the pointer to the "parent" repo is stored as an absolute path. shareditems Set of items to share to the new repository (in addition to storage). shallowfilestore Indicates that storage for files should be shallow (not all ancestor revisions are known). R`s-filterknowncreateopts() did not return a dictsBunable to create repository because of unknown creation option: %ss, R#s#is a required extension not loaded?RRs.hgsrepository %s already existsRiRjscannot calculate relative patht notindexedR)s 00changelog.is9 dummy changelog to prevent using the old repo layoutRRss RN(!RhRuRRRRtRRRIRRrRR/RRRRRRPR]RHtrelpathRRRR2RtmakedirstmakedirtmkdirRR'RR( RRHR`t unknownoptsRRRRR R((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyRbr sD        cC@s7|jdtfdY}tj|d|dS(s9Poison a repository instance so it can no longer be used.tpoisonedrepositorycB@seZdZdZRS(cS@s/|dkrtj||StjddS(NRos/repo instances should not be used after unshare(RZt__getattribute__RRt(R9titem((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyR} s cS@sdS(N((R9((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyRo s(R?R@R}Ro(((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyR| s RN(RoRZR[(R:R|((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pytpoisonrepository s  (t __future__RRRR]R~R{RRti18nRRRRRRRRMRRR R R R R RRRRRRRRRRRRRRRRRRRRRR R!R"R#R$R%R&R'R(R)R*R*R+RR,R-R.R/RtutilsR0R1R2t revlogutilsR3RJRturlerrRRREt filecacheR4RBRLRUt propertycacheRVRYR^RcRtunionRt implementertipeercommandexecutorRZRit ipeercommandsRmRtipeerlegacycommandsRR4RIRR5RRRRRRRR6RTtilocalrepositoryfilestorageRURYR^tilocalrepositorymainRRRRReRfRhRrRuRbR(((s9/usr/lib64/python2.7/site-packages/mercurial/localrepo.pyts       (+           *        A        G  [