\x89\x50\x4E\x47\x0D\x0A\x1A\x0A PNG  \x89\x50\x4E\x47\x0D\x0A\x1A\x0A  13\c@@sddlmZddlZddlZddlZddlZddlZddlZddlZddl Z ddl m Z ddl m Z mZmZmZmZmZmZddlmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$ddl%m&Z&m'Z'ej(rJddlm)Z*ndd lm+Z*ej,d Z-e*j.Z.d e/fd YZ0d Z1ddZ3dZ4dZ5dZ6dZ7dZ8de9fdYZ:dZ;e<de<dZ=dZ>dZ?dZ@dZAdZBdZCdddZDdZEd ZFd!ZGd"dd#ZHd$ZId%ZJdd&ZKd'ZLd(ZMdZde<d)dd*ZNd[de<d)dd+Zd,ZOdd-ZPd.ZQd/ZRd0e9fd1YZSdde<deTd2ZUdd3ZVd4d5ZWd6ZXd7ZYd8ZZe<dd9Z[d:Z\d;e9fd<YZ]d=e9fd>YZ^d?e9fd@YZ_dAZ`ddBZadCZbdDe9fdEYZcdFZddGZedHe9fdIYZfdJdKdLdMdNgZgdKdNgZhdOZie#jjZkeTZldPdQZmdRZndSdTZodUZpdVZqdWZrdXZsdYZtdS(\i(tabsolute_importNi(t_(tbinthextnullidtnullrevtshorttwdiridtwdirrev(tencodingterrortmatchtobsoletetobsutiltpathutiltphasestpolicytpycompatt revsetlangtsimilartsmartsetturltutiltvfs(tprocutilt stringutil(t scmwindows(tscmposixtparserststatuscB@seZdZd ZdZedZedZedZedZ edZ edZ edZ d Z RS( sNamed tuple with a list of files per status. The 'deleted', 'unknown' and 'ignored' properties are only relevant to the working copy. c C@s%tj||||||||fS(N(ttuplet__new__(tclstmodifiedtaddedtremovedtdeletedtunknowntignoredtclean((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyREscC@s|dS(sfiles that have been modifiedi((tself((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyR!JscC@s|dS(sfiles that have been addedi((R(((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyR"OscC@s|dS(sfiles that have been removedi((R(((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyR#TscC@s|dS(sofiles that are in the dirstate, but have been deleted from the working copy (aka "missing") i((R(((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyR$YscC@s|dS(s.files not in the dirstate that are not ignoredi((R(((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyR%`scC@s|dS(s<files not in the dirstate that are ignored (by _dirignore())i((R(((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyR&escC@s|dS(s!files that have not been modifiedi((R(((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyR'jscO@sdtd|DS(NsXcs@s'|]}tjtj|VqdS(N(RtsysstrRtpprint(t.0tv((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pys rs(R(R(targstkwargs((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyt__repr__os((t__name__t __module__t__doc__t __slots__RtpropertyR!R"R#R$R%R&R'R/(((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyR>s cc@stj|j|}|jtj|j|t}x7|jD],}||jkrD||=|j|qDqDWx4t|jD] \}}||j|fVqWx%|D]}||j ||fVqWdS(sfind subrepos in ctx1 or ctx2N( tdicttfromkeystsubstatetupdatetsettaddtsortedt iteritemstsubtnullsub(tctx1tctx2tsubpathstmissingtsubpathtctx((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyt itersubreposts  cC@sg}|r\xM|D]B}||}|jtjkr|j r|j|qqWn|r|jtdt|n|jtddS(sjReport no changes for push/pull, excluded is None or a list of nodes excluded from the push/pull. s0no changes found (ignored %d secret changesets) sno changes found N(tphaseRtsecrettextincttappendRRtlen(tuitrepotexcludedt secretlisttnRD((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pytnochangesfounds  "cC@s y&y |SWn|jnXWntjk r}|jtjkrltdtj|j}ntd|j}|jtd|j pt j |j |f|js |jtdq n6tj k r&}|jtd|j p t j |j tj|jfntjk r}|jrPtd}n td}|j||jr|jdj|jn|jr |jd |jq nXtjk r}|jtd ||jr |jtd |jq ntjk r}|jtd |jd |jd }t|tdrgtj|}nt|ts|jd|fq |s|jtdq |jdtjt j|n:tjk r}|jtd|ntjk r'}|jtd |ntjk rt}|jd||jrp|jtd |jnd Stjk r|jtdnotj k r}|jtd||jr |jtd |jq nt!k r}|jtd t j |t j |j"d}|dj"kr\|jtdq |dj"kr |jtdq nt#k r}t$j%|dr|jtdt j |q t$j%|drRy|j&jd }Wn t't(fk r|j&}nXt|tj)r8tj*|}n|jtd|q t$j%|dr|jr|jd tj+krq t,|dd#rt,|d d#r|jtdtj|jt j |j fq |jtdtj|jq nt.k r}t,|d d#d#k rm|jtd!tj|jt j |j fq |jtdtj|jnvt/k r|jtd"nSt0k r}|j1St2jk r}|jtdt j |jdnXdS($scall func() with global exception handling return func() if no exception happens. otherwise do some error handling and return an exit code accordingly. does not handle all exceptions. s%timed out waiting for lock held by %rslock held by %rsabort: %s: %s s(lock might be very busy) sabort: could not lock %s: %s sabort: remote error: sabort: remote error ts(%s) s abort: %s! s abort: %siius %r s empty string s %r sabort: file censored %s! s%s s6abort: working directory revision cannot be specified s abort: %s is mpatch bdiffs((did you forget to compile extensions?) tzlibs"(is your Python install correct?) tcodetreasonsabort: error: %s R-tstrerrortfilenamesabort: %s: '%s' sabort: out of memory N(3t tracebackR tLockHeldterrnot ETIMEDOUTRRtbytestrtlockertdescRt forcebytestrRVtLockUnavailableR t strtolocalRUtOutOfBandErrorR-tjointhintt RepoErrort ResponseErrort isinstancettypetsysbytestbytestellipsistCensoredNodeErrort StorageErrortInterventionRequiredtWdirUnsupportedtAbortt ImportErrortsplittIOErrorRt safehasattrRTtAttributeErrort IndexErrortunicodet unitolocaltEPIPEtgetattrtNonetOSErrort MemoryErrort SystemExitRStsocket(RKtfunctinstRTtmsgtm((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyt callcatchs    #         &    # && +cC@s|d kr(tjtd|nx?d D]7}||kr/tjtd tj|q/q/Wy#t|tjtd Wntk rnX|j|krtjtd |ndS(Nttipt.tnullsthe name '%s' is reservedt:ss s s%r cannot be used in a namescannot use an integer as a names)leading or trailing whitespace in name %r(RRR(Rss s (R RoRRR[tintt ValueErrortstrip(RLtlbltkindtc((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyt checknewlabels   #  cC@sAd|ksd|kr=tjtdtj|ndS(sFCheck that the filename f is an acceptable filename for a tracked files s s)'\n' and '\r' disallowed in filenames: %rN(R RoRRR[(tf((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyt checkfilename%scC@st|t|\}}|s(|rtj|}|rd|tj|f}|rntj|n|jt d|qndS(sECheck if filename f is portable and warn or abort depending on configs%s: %ss warning: %s N( RtcheckportabilityalertRtcheckwinfilenameRt shellquoteR RotwarnR(RKRtabortRR((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyt checkportable+s  cC@s|jdd}|j}tj|}tjp?|dk}|pQ|dk}|dkr|pu|pu|dk rtjt d|n||fS(s_check if the user's config requests nothing, a warning, or abort for non-portable filenamesRKtportablefilenamesRRtignores,ui.portablefilenames value is invalid ('%s')N( tconfigtlowerRt parseboolRt iswindowsRzR t ConfigErrorR(RKtvaltlvaltbvalRR((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyR7s %tcasecollisionauditorcB@seZdZdZRS(cC@s^||_||_dj|j}ttj|jd|_||_ t|_ dS(Ns( t_uit_abortRbt_mapR9R RRqt _loweredfilest _dirstatet _newfiles(R(RKRtdirstatetallfiles((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyt__init__Es   ! cC@s||jkrdStj|}||jkr||jkrtd|}|jrktj|n|j j td|n|jj ||jj |dS(Ns&possible case-folding collision for %ss warning: %s ( RR RRRRRR RoRRR:(R(RtflR((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyt__call__Ps (R0R1RR(((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyRDs c@s|j}|jsdSd}tfd|jD}|r~tj}x|D]}|jd|qTW|j}n|S(sbuild hash of filtered revisions in the current repoview. Multiple caches perform up-to-date validation by checking that the tiprev and tipnode stored in the cache file match the current repository. However, this is not sufficient for validating repoviews because the set of revisions in the view may change without the repository tiprev and tipnode changing. This function hashes all the revs filtered from the view and returns that SHA-1 digest. c3@s!|]}|kr|VqdS(N((R+tr(tmaxrev(s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pys lss%d;N(t changelogt filteredrevsRzR;thashlibtsha1R8tdigest(RLRtcltkeytrevststrev((Rs7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyt filteredhash\s    c#@sfd}ttjdd|rHdk rHfd}nt}|dkrv|rvg}||nx:tjdtd|D]\}}}|jd|kr|Vtjj|dd} tjj tjj| dr| Vn|r|j dqg|(q|rg} xy|D]q} tjj|| } ||| r0tjj | rx/t | t|D] } | VqWq| j | q0q0W| |(qqWdS( syield every hg repository under path, always recursively. The recurse flag will only control recursion into repo working dirsc@s|jkr|ndS(N(RV(terr(tpath(s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyt errhandlerwstsamestatc@sItj|tfd|D}|sD|jn| S(Nc3@s|]}|VqdS(N((R+t lstdirstat(tdirstatR(s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pys ~s(toststattanyRI(tdirlsttdirnameR (R(Rs7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pytadddir|s ttopdowntonerrors.hgtpatchesN(RyRRRztFalsetwalktTruetsortRbtisdirtremovetislinkt walkreposRI(Rt followsymt seen_dirstrecurseRRtroottdirstfilestqroottnewdirstdtfnamethgname((RRs7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyRts8+  !   cC@s |j}|dkrtS|S(s)Return binary node id for a given basectxN(tnodeRzR(RDR((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pytbinnodes  cC@s |j}|dkrtS|S(s]Return integer for a given basectx that can be used in comparison or arithmetic operationN(RRzR(RDR((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pytintrevs  cC@s+|j}t|jt|t|S(szFormat changectx as '{rev}:{node|formatnode}', which is the default template provided by logcmdutil.changesettemplater(RLt formatrevnodeRKRR(RDRL((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pytformatchangeids cC@s,|jrt}nt}d|||fS(sAFormat given revision and node depending on the current verbositys%d:%s(t debugflagRR(RKRRthexfunc((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyRs  cC@sO|jdr1|jjddr1|d}ny|jjj|}Wntjk r*|jjdd}|r$idd6}|jj ||j |gdt }g}xE|D]=}|jj |}t|j|r|j|qqWt|dkr|dSWdQXnnX|dkr;dS|jj||S( Ntxt experimentalsrevisions.prefixhexnodeisrevisions.disambiguatewithintuseri(Rsrevisions.disambiguatewithin(t startswithRKt configboolt unfilteredRt _partialmatchR tAmbiguousPrefixLookupErrorRRztconfigoverridetanyrevsRRRRIRJR(RLtprefixRtrevsettconfigoverridesRtmatchesR((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pytresolvehexnodeidprefixs0    cC@sbyIt|}|dkr.|dd!dks@|t|krDtStSWntk r]tSXdS(s@Checks if the given prefix may be mistaken for a revision numbert0iiN(RRJRRR(RLRti((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyt mayberevnums 1 c@swt|d}fd}jj}jjdd}|r6d}|dk ro|jd}n|dkrj|gdt}|dk r||d|D]6}|j }| || kr| j|qqWt| dkr|| SqWq6ny||j|SWn tjk rrtjnXdS( sFind the shortest unambiguous prefix that matches hexnode. If "cache" is not None, it must be a dictionary that can be used for caching between calls to this method. ic@sjjddr3t|r,d|S|Snt}xDtt|t|dD]#}|| }t|s_|Sq_WdS(sDisambiguate against revnums.Rsrevisions.prefixhexnodeRiN(RKRRRtrangeRJ(Rthexnodetlength(RRL(s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyt disambiguates & Rsrevisions.disambiguatewithintdisambiguationrevsetRtdisambiguationnodetreeN(tmaxRRRKRRztgetRRRRRtnodetreetindexRJRttinserttshortestRRIR t LookupErrortRepoLookupError(RLRt minlengthtcacheRRRRRRRRRRRt otherhexnode((RRLs7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pytshortesthexnodeidprefixsV               cC@s1yt||tSWntjk r,tSXdS(sChecks if a symbol exists in the repo. See revsymbol() for details. Raises error.AmbiguousPrefixLookupError if the symbol is an ambiguous nodeid prefix. N(t revsymbolRR RR(RLtsymbol((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyt isrevsymbol/s  cC@s]t|ts7d|t|f}tj|ny|d krN||Syt|}d||krvtnt|j}|dkr||7}n|dks||kr|t krtn||SWn0tj k rntt t fk rnXt|dkrvy*t |}|jj|}||SWqvtjk r\qvttfk rrqvXny3|jj||}|jj|}||SWntk rnXt||}|d k r|jj|}||Stjtd|WnJtjk r'|d Stj tjtjfk rXt||nXd S( sReturns a context given a single revision symbol (as string). This is similar to revsingle(), but accepts only a single revision symbol, i.e. things like ".", "tip", "1234", "deadbeef", "my-bookmark" work, but not "max(public())". sCsymbol (%s of type %s) was not a string, did you mean repo[symbol]?RRRs%dii(sunknown revision '%s'N(RRR(RfRiRgR tProgrammingErrorRRRJRRtFilteredIndexErrort OverflowErrorRuRRtFilteredLookupErrort TypeErrorRtnamest singlenodetKeyErrorRRzRRRntFilteredRepoLookupErrort_filterederror(RLRRRtlRR((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyR;s\     $        cC@s|jjdr|j}t||}|jrQtj|||}ntd|}td}tj |d|Std}|||jf;}tj |S(sbuild an exception to be raised about a filtered changeid This is extracted in a function to help extensions (eg: evolve) to experiment with various message variants.tvisibleshidden revision '%s's'use --hidden to access hidden revisionsRcs+filtered revision '%s' (not in '%s' subset)( t filternameRRRR R t_getfilteredreasonRR R(RLtchangeidtunfilteredrepoRDRRc((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyRxs    RcC@s_| r|dkr||St||gd|}|sQtjtdn||jS(Nit localaliassempty revision set(trevrangeR RoRtlast(RLtrevspectdefaultRR((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyt revsingles cC@s#tj|}|o"|ddkS(NiRtrangepret rangeposttrangeall(RR R!R"(Rtparse(Rttree((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyt _pairspecsc@sj|sddfSt|}|s:d}}nf|jra|j}|j}n?|jr|j}|j}n|j}|j}|dkrtj t dn||krt |dkrt fd|D rtj t dn||krXt |dkrXt |d rX|dfS||fS(NRsempty revision rangeic3@s!|]}t|gVqdS(N(R(R+R(RL(s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pys ss#empty revision on one side of rangeii(RzRt isascendingtminRt isdescendingtfirstRR RoRRJtallR%(RLRRR)tsecond((RLs7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pytrevpairs*        /cC@sag}x?|D]7}t|tr7tjd|}n|j|q W|j|dtd|S(sExecute 1 to many revsets and return the union. This is the preferred mechanism for executing revsets using user-specified config options, such as revset aliases. The revsets specified by ``specs`` will be executed via a chained ``OR`` expression. If ``specs`` is empty, an empty result is returned. ``specs`` can contain integers, in which case they are assumed to be revision numbers. It is assumed the revsets are already formatted. If you have arguments that need to be expanded in the revset, call ``revsetlang.formatspec()`` and pass the result as an element of ``specs``. Specifying a single revset is allowed. Returns a ``revset.abstractsmartset`` which is a list-like interface over integer revisions. srev(%d)RR(RfRRt formatspecRIRR(RLtspecsRtallspecstspec((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyRs  cC@sh|j}t|dkr"|S|jjr@|d|tgS|djt|dkrdgS|S(sReturn list of meaningful (or all if debug) parentrevs for rev. For merges (two non-nullrev revisions) both parents are meaningful. Otherwise the first parent revision is considered meaningful if it is not the preceding revision. ii(tparentsRJRKRRRR(RLRDR1((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pytmeaningfulparentss   cC@stjst|Sg}x|D]}tj|d\}}|dkrytj|}Wntjk r||g}nX|r|j |q qn|j |q W|S(siExpand bare globs when running on windows. On posix we assume it already has already been done by sh.N( Rt expandglobstlisttmatchmodt _patsplitRztglobtreR textendRI(tpatstrettkindpatRtpattglobbed((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyt expandpatss       trelpathc @s|d krg}n|d kr*i}n| rR|dkrRt|pIg}nfd}|d kry|}nj||jd|jd|d|jdd|jrg}n|fS( sReturn a matcher and the patterns that were used. The matcher will warn about bad matches, unless an alternate badfn callback is provided.RQR@c@s-jjjdj||fdS(Ns%s: %s (RLRKRtrel(RR(RDR(s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pytbadstincludetexcludet listsubrepostsubrepostbadfn(RQN(RzR?R Rtalways(RDR:toptsR>RRGRB((RDRs7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyt matchandpatss      !  cC@s t|||||d|dS(s2Return a matcher that will warn about bad matches.RGi(RJ(RDR:RIR>RRG((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyR scC@stj|j|jS(s8Return a matcher that will efficiently match everything.(R5RHRtgetcwd(RL((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pytmatchallscC@s"tj|j|j|d|S(sAReturn a matcher that will efficiently match exactly these files.RG(R5texactRRK(RLRRG((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyt matchfilesscC@stj|s+tj|j|j|S||}tj|j|j|gd|}g|D]}||rc|^qc}t|dkrtj |n|dSdS(sWReturn a file name from `pat` pattern suitable for usage in followlines logic. RDiiN( R5tpatkindRt canonpathRRKR RJR t ParseError(RLRR=RRDRRR((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pytparsefollowlinespattern!s '%cC@s|jdd}|s |dStjtjj|d|j}tj|j|}|j |}|j | s|j |r |j t d|j|xctttj|D]F}|j|r|j t d|j||j|PqqW|j|n|j |ru|j | ru|j t d|j||j|dtn|j|S( scustomize where .orig files are created Fetch user defined path from config file: [ui] origbackuppath = Fall back to default (filepath with .orig suffix) if not specified RKtorigbackuppaths.origtstartscreating directory: %s sremoving conflicting file: %s s#removing conflicting directory: %s tforcibly(RRtnormpathRRR@RRtwjoinRRRtnoteRRbtreversedR4tfinddirst isfileorlinktunlinktmakedirstrmtreeR(RKRLtfilepathRStfilepathfromroottorigvfst origbackupdirR((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pytorigpath/s* " t _containsnodecB@s eZdZdZdZRS(sEproxy __contains__(node) to container.__contains__ which accepts revscC@s|jj|_|j|_dS(N(RRt_torevt __contains__t _revcontains(R(RLt revcontainer((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyRVscC@s|j|j|S(N(RgRe(R(R((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyRfZs(R0R1R2RRf(((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyRdSs c, @s"| r| rdStj|ds7d|D}nNi}x?|jD]1\} } t| tsq| f} n| || ts ismax(%ln)ismax((::%n) - %ln)Rc@s|jS(N(R(RO(tunfi(s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pytsc@sj|j|jS(N(RRRF(RD(t newphases(s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyRFsc3@s|]}|VqdS(N((R+tp(RF(s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pys sc3@s|]}|jVqdS(N(RF(R+toldnode(Rj(s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pys stcleanup(t bookmarkss"moving bookmarks %r from %s to %s s*parents(roots(%ln & (::%n))) - parents(%n)c@s|ddS(Ni((tns(ttorev(s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyRksc3@s|]}|VqdS(N((R+RO(Rj(s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pys sc3@s|]}|VqdS(N((R+R(Rj(s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pys st operationtmetadata(trepaircs@s"|]}|D] }|Vq qdS(N((R+RqRO((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pys stbackup(0RRsRiRfRRzRRJtnextR9RR9R4Rtvaluest setdefaultRIRRR1RFt transactiont _bookmarkst nodebookmarksRQRpRKtdebugRtrapplyt maybebytestrRRRdtdivergent2deletet applychangesRtretractboundarytadvanceboundaryR t isenabledtcreatemarkersoptRRR;t createmarkersRut delayedstrip(,RLt replacementsRstmovesRttfixphaset targetphaseRvtreplsRtvaluetoldnodestnewnodesRntnewnodet allreplacedtreptrootsRqROt allnewnodest toretractt toadvancet precursorsRDt parentphasetoldphasetnewphasettrtbmarkst bmarkchangest oldbmarksRpt deleterevst deletenodestnametbtnodestsortfunctrelsRRARuttostrip((RlRFRrRjs7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyt cleanupnodes]s      !    ,  %  "  #     %8 c@s|dkri}n||jd}yt|jdpBd}Wn&tk rqtjtdnX|dks|dkrtjtdn|d:}d}fd}|d}xt|jD]} t j | } |jd s#j | s#t | j r|j| } y"| j| |rSd }nWqtjk r|jjtd || qXqqWgfd } t j| } t|| \}}}}}t||}|j}|j|xt|D]}|jjs2j | r||kr`td j|}d}ntdj|}d}|jj|d|qqWt||||||}|st|||||nx$D]}|j krd SqW|S(Ntdry_runt similarityissimilarity must be a numberids$similarity must be between 0 and 100gY@c@stjj|S(N(RRRb(R(R(s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyRksRFis#skipping missing subrepository: %s c@s6|jkr%j||nj|dS(N(RRBRI(RR(Rtrejected(s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyRGss adding %s sui.addremove.addeds removing %s sui.addremove.removedtlabel(RzRtfloatRR RoRR;R7R5t subdirmatcherRMRRR=t addremoveRRKRtbadmatcht_interestingfilesR9tcopyR8tverbosetuipatht _findrenamest _markchanges(RLtmatcherRRIRRR;RbtwctxRCtsubmatchR=RGRR"R%R$R#t forgottent unknownsetttoprinttabsRRtrenamesR((RRRs7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyRs`     0       gc@s2t||dfd}gt||\}}}}}|jjrt||} | j} | j|xVt| D]E} | | krtd| } ntd| } |jj | qWnt |||||||} t ||||| x$D]}||j krdSqWdS(s[Assert that files have somehow been operated upon. files are relative to the repo root.RGc@s j|S(N(RI(Rty(R(s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyRk,ss adding %s s removing %s ii( RNRRKRR9RR8R;RRRRR(RLRRRR"R%R$R#RRRRRRR((Rs7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyt marktouched)s&      c C@s}gggggf\}}}}}tj|jdt}|d }|j} |j|dt}| j|dt|j dtdt dt } x| j D]\} } | | } | dkr|j | r|j | q| dkr| r|j | q| dkr'| r'|j | q| dkrJ| rJ|j | q| d kr|j | qqW|||||fS( sWalk dirstate with matcher, looking for files that addremove would care about. This is different from dirstate.status because it doesn't care about whether files are modified or clean.tcachedt includeexactRFR%R&tfullt?RtaN(Rt pathauditorRRRzRt narrowmatchRR;R7RR<tcheckRI(RLRR"R%R$R#Rt audit_pathRDRt walkresultsRtsttdstate((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyRFs($    c C@si}|dkrxtj||||D]\}}}|jjsf|j| sf|j| r|jjtd|j||j||dfn|||WWdQXdS(smMarks the files in unknown as added, the files in deleted as removed, and the files in renames as copied.N(RztwlocktforgetR:R<R(RLR%R$RRRR((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyRss     cC@s|jj|p|}||krT|j|dkr| r|jj|qn|j|dkr||kr|js|jtd|j|||j||fn|j|dkr| r|j|gqn|s|j||ndS(sUpdate the dirstate to reflect the intent of copying src to dst. For different reasons it might not end with dst being marked as copied from src. tmnRsF%s has not been committed yet, so no copy data will be stored for %s. s?rN( Rtcopiedt normallookuptquietRRtpathtoR:R(RKRLRtsrctdsttdryruntcwdtorigsrc((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyt dirstatecopy}s  )cC@sD|dd/}x%t|D]}|jd|qWWdQXdS(Ntrequirestws%s (R;twrite(topenert requirementstfpR((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyt writerequiresstfilecachesubentrycB@s;eZdZdZdZdZedZRS(cC@sd||_d|_d|_|r`tj|j|_|jrT|jj|_q`d|_ndS(N(RRzt cachestatt _cacheableRRt cacheable(R(RR((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyRs    cC@s(|jr$tj|j|_ndS(N(RRRRR(R(((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pytrefreshs cC@s|jdk r|jStS(N(RRzR(R(((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyRscC@sz|jstStj|j}|rV|jdkrV|j|_|jsVtSn|j|krr||_tStSdS(N( RRRRRRRzRR(R(tnewstat((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pytchangeds   cC@sCytj|SWn+tk r>}|jtjkr?q?nXdS(N(RRR{RYtENOENT(Rte((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyRs (R0R1RRRRt staticmethodR(((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyRs     tfilecacheentrycB@s&eZedZdZdZRS(cC@s7g|_x'|D]}|jjt||qWdS(N(t_entriesRIR(R(tpathsRR((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyRs  cC@s(x!|jD]}|jr tSq WtS(strue if any entry has changed(RRRR(R(tentry((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyRs cC@s"x|jD]}|jq WdS(N(RR(R(R((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyRs(R0R1RRRR(((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyRs  t filecachecB@sGeZdZdZdZdZddZdZdZ RS(sA property like decorator that tracks files under .hg/ for updates. On first access, the files defined as arguments are stat()ed and the results cached. The decorated function is called. The results are stashed away in a ``_filecache`` dict on the object whose method is decorated. On subsequent access, the cached result is returned. On external property set operations, stat() calls are performed and the new value is cached. On property delete operations, cached data is removed. When using the property API, cached data is always returned, if available: no stat() is performed to check if the file has changed and if the function needs to be called to reflect file changes. Others can muck about with the state of the ``_filecache`` dict. e.g. they can populate an entry before the property's getter is called. In this case, entries in ``_filecache`` will be used during property operations, if available. If the underlying file changes, it is up to external callers to reflect this by e.g. calling ``delattr(obj, attr)`` to remove the cached method result as well as possibly calling ``del obj._filecache[attr]`` to remove the ``filecacheentry``. cG@s ||_dS(N(R(R(R((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyRscC@s tdS(sUsed to compute the runtime path of a cached file. Users should subclass filecache and provide their own version of this function to call the appropriate join function on 'obj' (an instance of the class that its member function was decorated). N(tNotImplementedError(R(tobjR((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyRbscC@s.||_|j|_tj|j|_|S(N(RR0tsnameRRhR(R(R((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyRs  cC@s|dkr|S|j|jkr0|j|jS|jj|j}|ro|jr|j||_qnYg|j D]}|j ||^qy}t |t }|j||_||j|j<|j|j|j<|jS(N( RzRt__dict__t _filecacheRRRRRRRbRR(R(RRgRRR((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyt__get__ s  (cC@s|j|jkr\g|jD]}|j||^q}t|t}||j|j value dict from the specified source A source spec is treated as a URL, with a special case shell: type for parsing the output from a shell command. The data is parsed as a series of newline-separated records where each record is a revision specifier optionally followed by a space and a freeform string value. If the revision is known locally, it is converted to a rev, otherwise the record is skipped. Note that both key and value are treated as UTF-8 and converted to the local encoding. This allows uniformity between local and remote data sources. textdatasunknown extdata source '%s'sshell:itshelltbufsizeit close_fdststdoutRt iRQNisextdata command '%s' failed: %s(RKRR RoRRzRt subprocesstPopenRt tonativestrRtclosefdstPIPERRRtopenRRqR ttolocalRRRRt communicatetcloset returncodet explainexit( RLtsourceR0tdataRtproctcmdRtkR,((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyt extdatasource8s@        !&  c O@sr|dkrtjdn|dkr3i}n|j-}|||<|jj|d|||SWdQXdS(Ns%lock can only be inherited while heldtenviron(RzR t LockInheritanceContractViolationtinheritRKtsystem(RLtlocktenvvarRRR-R.R\((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyt_locksubqs     cO@st||jd|||S(srun cmd as a subprocess that allows inheriting repo's wlock This can only be called while the wlock is held. This takes all the arguments that ui.system does, and returns the exit code of the subprocess.tHG_WLOCK_LOCKER(Rt currentwlock(RLRR-R.((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pytwlocksub{stprogresscB@s\eZdd dZdZdZdd dZddd dZdZdZ RS( RQcC@s1||_d|_||_||_||_dS(Ni(RKtposttopictunitttotal(R(RKRR R!((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyRs     cC@s|S(N((R(((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyt __enter__scC@s|jdS(N(tcomplete(R(texc_typet exc_valuetexc_tb((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyt__exit__scC@s,|r||_n||_|j|dS(N(R!Rt_print(R(RtitemR!((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyR8s  icC@s|j|j|||dS(N(R8R(R(tstepR)R!((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyt incrementscC@s|jj|jddS(N(RKRRRz(R(((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyR#scC@s,|jj|j|j||j|jdS(N(RKRRRR R!(R(R)((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyR(sN( R0R1RzRR"R'R8R+R#R((((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyRs   cC@s4|jddp3|jddp3|jddS(sIhelper function to know if a repo should be created as general delta tformatt generaldeltatusegeneraldeltas sparse-revlog(R(RK((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyt gdinitconfigscC@s|jddS(sBhelper function to know if incoming delta should be optimised R,R-(R(RK((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyt gddeltaconfigstsimplekeyvaluefilecB@s8eZdZdZddZedZddZRS(sA simple file with key=value lines Keys must be alphanumerics and start with a letter, values must not contain ' ' characterst __firstlinecC@s||_||_dS(N(RR(R(RRtkeys((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyRs cC@s|jj|j}i}|rd|sEtd}tj|n|dd ||j<|d=ny[td|D}|j|krtd}tj||jn|j|Wn(t k r}tjt |nX|S(sRead the contents of a simple key-value file 'firstlinenonkeyval' indicates whether the first line of file should be treated as a key-value pair or reuturned fully under the __firstline key.sempty simplekeyvalue fileiics@s1|]'}|jr|d jddVqdS(it=iN(RRq(R+tline((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pys ss%r can't be used as a key( Rt readlinesRRR tCorruptedStatet firstlinekeyR5R8Rtstr(R(tfirstlinenonkeyvaltlinesRRt updatedict((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pytreads"   cC@s<g}|dk r&|jd|nx|jD]\}}||jkrmd|j}tj|n|dd!jsd}tj|n|jsd}tj|nd|krd}tj|n|jd ||fq3W|j|j d d d t }|j d j |WdQXdS(s Write key=>value mapping to a file data is a dict. Keys must be alphanumerical and start with a letter. Values must not contain newline characters. If 'firstline' is not None, it is written to file before everything else, as it is, not in a key=value forms%s skey name '%s' is reservediis1keys must start with a letter in a key-value files+invalid key name in a simple key-value files s(invalid value in a simple key-value files%s=%s tmodetwbt atomictempRQN( RzRIRiR8R R tisalphatisalnumRRRRRb(R(Rt firstlineR;RR,RR((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyRs&    !N( R0R1R2R8RzRRR=R(((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyR1s   t debugobsoletetpulltpushtservetunbundlecC@s>|rtj|d}n t|}t|||dS(sInvokes the registered file prefetch functions, allowing extensions to ensure the corresponding files are available locally, before the command uses them.cS@sdS(N(Rz(tfnR((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyRk sN(R5RRLtfileprefetchhooks(RLRR ((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyt prefetchfiless RQc @sfd}gfd}|trH|d}ntjtjrjjddrdddgfd |fd }n|tr|d }|d}ndS(sKregister a callback to issue a summary after the transaction is closed c@stfd|DS(Nc3@s|]}j|VqdS(N(R(R+R (ttxnname(s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pys s(R(tsources(RL(s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyttxmatchsc@sdjtjjfd}dt}j||j||S(sdecorator for report callbacks.c@s2}r!|j}n||dS(N(tfiltered(RRL(RRtreporef(s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pytwrapped's s%02i-txnreport(RtweakreftrefRRJt addpostcloseRI(RRQtnewcat(t categoriestotrRL(RRRPs7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyt reportsummarys  cS@s?tj||}|r;|jjtdt|ndS(Nsobsoleted %i changesets (R t getobsoletedRKRRRJ(RLRt obsoleted((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pytreportobsoleted2sRsevolution.report-instabilitiestorphansphase-divergenttphasedivergentscontent-divergenttcontentdivergentc@sS|jj}i}x:D]2\}}tttj|||||scs@s|]}t|VqdS(N(R(R+R{((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pys ss%s and %d others(RJRKRRbR(RLRt maxnumnodesR)((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyt nodesummariesscC@s|d krdS|jd}x|jjD]w\}}t|dkr2td}||;}td}|t|t||f;}tj|d|q2q2WdS( s-check that no named branch has multiple headsRRuNRis'rejecting multiple heads on branch "%s"s %d heads: %sRc(RRu(ROt branchmapR<RJRR}R Ro(RLRR]RRtheadsRRc((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pytenforcesingleheads    cC@s|S(sAllow extensions to wrap the sink returned by convcmd.convertsink() before it is used, whether or not the convert extension was formally loaded. ((tsink((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pytwrapconvertsinksc C@s+|j s |jjdd r$|S|jdkr7|St}xQ|D]I}ytj|}Wntjk ryqGnX|jtj |qGW|s|St ||}|s|S|dkr|j }dj g|D]}t j||^q} |jjtd| n|jd|S( s(parse the user specs and unhide changesets whose hash or revision number is passed. hiddentype can be: 1) 'warn': warn while unhiding changesets 2) 'nowarn': don't warn while unhiding changesets returns a repo object with the required changesets unhidden Rt directaccessRsvisible-hiddenRs, s=warning: accessing hidden changesets for write operation: %s (Rsvisible-hidden(RRKRR9RR#R RQR8tgethashlikesymbolst_getrevsfromsymbolsRRbRR[RRRO( RLR.t hiddentypetsymbolsR0R$RRjRtrevstr((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pytunhidehashlikerevss.      / c C@s.t}|j}|j}|j}t|}|jjdd}x|D]}yJt|} | |kr|s|wOq| |kr|j| nwOnWntk rnXyt ||}Wn#t j t j fk rd}nX|dk rO|j|} | |kr&|j| q&qOqOW|S(skparse the list of symbols and returns a set of revision numbers of hidden changesets present in symbolsRsdirectaccess.revnumsN(R9RRRJRKRRR:RRR RRnRzR( RLRRRjtunficlRttiprevt allowrevnumsRROR((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyRs4              cC@s|jd|||S(s8 Select revisions reachable by a given bookmark smancestors(bookmark(%s)) - ancestors(head() and not bookmark(%s)) - ancestors(bookmark() and not bookmark(%s))(R(RLtmark((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyt bookmarkrevss (((ut __future__RRYR7RRR8R~RRRti18nRRRRRRRRRRQR R R R5R R RRRRRRRRRRtutilsRRRRt scmplatformRt importmodRttermsizeRRRERzRPRRRRRtobjectRRRRRRRRRRRR RRRR%R,RR2R?RJRLRNRRRcRdRRRRRRRRRRRRRRRRR/R0R1RxRyRKthooksRJt_reportstroubledchangesetsRzRdR}RRRRR(((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyts        4 d  6   v    ,      G =              $  >     7[ 9   F         + "