\x89\x50\x4E\x47\x0D\x0A\x1A\x0A PNG  \x89\x50\x4E\x47\x0D\x0A\x1A\x0A  13\c@@s ddlmZddlZddlmZddlmZmZmZm Z m Z m Z m Z mZmZmZmZmZmZmZmZmZmZmZmZmZddlmZmZej Z ej!Z!ej"Z"ej#Z#ej$Z$ej%Z%ej&Z&ej'Z'ej(Z(ej)Z)ej*Z*ej+Z+dZ,dZ-d Z.e-d Z/d Z0d Z1d Z2dZ3dZ4dZ5dZ6dZ7dZ8dZ9dZ:dZ;dZ<dZ=dZ>dZ?dZ@dZAdZBdZCdZDejEZEeFZGejHZIeId d!ZJeId"d#ZKeId$d%eLd&d'd(ZMeId)d%eLd&d*d+ZNeOddd,ZQeId-d%eLd.ZReId/d%eLd0ZSd1ZTd2ZUeId3d%eLd&d4d5ZVeId6d%eLd7ZWeId8d%eLd9ZXeId:d%eLd;ZYeId<d%eLd&d4d=ZZeId>d%eLd?Z[eId@d%eLdAZ\dBZ]dCZ^eIdDd%eLdEZ_eIdFd%eLd&d4dGZ`eIdHd%eLdIZaeIdJd%eLdKZbeIdLd&dMdNZceIdOd%eLdPZdeIdQd%eLd&d4dRZeeIdSd%eLd&d4dTZfeOdddUZgeIdVd%eLdWZheIdXd%eLdYZieIdZd%eLd&d4d[ZjeId\d%eLd]ZkeId^d%eOd&dMd_ZleId`d%eLdaZmeIdbd%eLdcZneIddd%eLdeZoeIdfd%eLdgeLd&ddhZpeOdiZqeIdjd%eLdkZreIdld%eLdmZseIdnd%eLdoZteIdpd%eLdqZueIdrd&d4dsZveIdtd%eLduZweIdvd%eLd&d4dwZxeIdxd%eLdyZyeIdzd%eLdgeLd{ZzeId|d%eLd}Z{eId~d%eLd&d4dZ|eIdd%eLdgeLd&ddZ}eIdd%eLdgeLdZ~eIdd%eLdZeIdd%eLdZeIdd%eLdZeIdd%eLdZeIdd%eLd&d'dZeIddZeIdd%eLdZeIdd%eLdZeIdd%eLdZeIdd%eLdZeIdd%eLdZeIdd%eOd&d4dZeIdd%eLdZeIdd%eLdZdZeIdd%eLdZdZeIdd%eLdZeIdd%eLdZeIdd%eLdZeIdd%eLdZdZeIdd%eLdgeLdZeIdd%eLdZeIdd%eLdZeIdd%eLdZeIdd%eOdZeIdd%eLd&d'dZeIdd%eLdZeIdd%eLdgeLdZHeIdd%eLdZeIdd%eLdgeLd&ddZeIdd%eLdZidd6dd6dd6dd6dd6dd6ZdZeIdd%eLdgeLd&d4dZeIddZdZeIdd%eLdZeLdZeIdd%eLdZeIdd%eLdZeIdd%eLdZeIdd%eLd&d4dZeIdd%eLd&ddZdZeIdd%eLdgeLdZdZeIdd%eLdgeLd&ddZdZeIdd%eLdgeLdZie3d6e4d6e5d6e6d6e8d6e2d6e2d6e9d6e:d6e=d6e>d6e;d6e?d6e@d6eAd6eBd6eCd6eDd6eUd6ed6ed6ZdZddZ dddZdZdZeddeIeEjZdS(i(tabsolute_importNi(t_(tdagoptdestutiltdiffutiltencodingterrorthbisecttmatchtnodetobsoletetobsutiltpathutiltphasestpycompatt registrartrepoviewt revsetlangtscmutiltsmartsettstacktutil(tdateutilt stringutiltanytdefinetfollowcC@s@|stjtdnt|d||d||dS(Nsmissing argumentitorderi(Rt ParseErrorRtmethods(trepotsubsettxR((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytgetsetcscC@sa||j}xJdD]B}||kry|||jSWqYtjk rUqYXqqWdS(Ntsourcettransplant_sourcet rebase_source(R"R#R$(textratrevRtRepoLookupErrortNone(RtrR%tlabel((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyt _getrevsourcehs   cC@sttjtj|S(N(tsortedRtrapplyt maybebytestr(txs((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyt_sortedbrscC@sw|stjtdntjtj||}||ksc|tjkrpt|t rpt |gSt S(Ns$empty string is not a valid revision( RRRRtintrevt revsymbolR tnullrevt isinstancet fullreposettbaseset(RRR R((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyt stringsetws  cC@sgt|t||}t|t||}| s>| rEtSt|||j|j|S(N(R!R5R6t _makerangesettfirsttlast(RRR tyRtmtn((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytrangesets cC@st||d|jj|S(Ni(R8t changelogttiprev(RRR R((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytrangeallscC@sAt|t||}|s%tSt||d|j|S(Ni(R!R5R6R8R:(RRR;RR=((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytrangeprescC@sJt|t||}|s%tSt|||j|jj|S(N(R!R5R6R8R9R?R@(RRR RR<((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyt rangeposts cC@s||krt|g}n|tjkrUt||t|t|g}ny|tjkrt|gt||jj|d}n;||krt|||d}nt|||d}|tkr||@S||@SdS(Ni(R6R twdirrevtspansettlenR?R@t defineorder(RRR<R=RR)((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR8s (/  cC@sGt|}tj|t|||t|||dt}||@S(Nt includepath(R5RtreachablerootsR!tTrue(RRR R;RR)R/((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytdagranges * cC@s=|tkrt}nt}t|t||||||S(N(tanyordert followorderR!(RRR R;Rtyorder((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytandsets  cC@s=|tkrt}nt}t|t||||||S(N(RLRMR!(RRR R;RRN((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyt andsmallysets  cC@s&t||||t|||tS(N(R!RL(RRR R;R((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyt differencesetscC@sst|dkr)t|||d|St|d}t|||| |}t|||||}||S(Niii(RFR!t _orsetlist(RRR/Rtptatb((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRRs cC@sYt|}|stS|tkrB|t|t||t@St||||SdS(N(tgetlistR6RMRRR5RL(RRR RR/((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytorsets   cC@s|t|||tS(N(R!RL(RRR R((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytnotsetscC@stjtddS(Ns$can't use a relation in this context(RRR(RRR R;R((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyt relationsetsc C@st|}t|td}|dkr|dkr`| }t|||d|d|dSt|||d|d|dSntj|dgdS( Ns%relation subscript must be an integertgt generationsit startdeptht stopdepthi(RZR[(t getsymbolt getintegerRt _ancestorst _descendantsRtUnknownIdentifier(RRR R;tzRtrelR=((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytrelsubscriptsets    #cC@stjtddS(Ns%can't use a subscript in this context(RRR(RRR R;R((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyt subscriptsetscO@s%tjtddtddS(Ns can't use a list in this contextthintssee 'hg help "revsets.x or y"'(RRR(RRR/topts((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytlistsetscC@stjtddS(Ns*can't use a key-value pair in this context(RRR(RRtktvR((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyt keyvaluepairsc C@st|}|tkrWt|}t|dtrG|||||S||||Sd}gtjD]\}} || rm|^qm} tj|| dS(Nt _takeordercS@st|dddk S(Nt__doc__(tgetattrR((tfn((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyts(R^tsymbolsRotFalsetitemsRRb( RRRTRURtftfunctkeeptsRptsyms((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRvs    1t _destupdatecC@s<t|dd}|ttj|tj|dg@S(Ntlimittcleani(t getargsdictR6Rt destupdateRt strkwargs(RRR targs((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRzst _destmergecC@sMd}|dk r-t|t||}n|ttj|d|g@S(Nt sourceset(R(R!R5R6Rt destmerge(RRR R((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRs s adds(pattern)tsafetweighticC@s(t|td}t|||dS(sChangesets that add a file matching pattern. The pattern without explicit kind like ``glob:`` is expected to be relative to the current directory and match against a file or a directory. sadds requires a patterni(t getstringRt checkstatus(RRR tpat((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytadds's sancestor(*changeset)g?cC@stt|t||dt}y|t|}Wntk rOtSXx!|D]}|j||}qWWtj |}||krt|gStS(sA greatest common ancestor of the changesets. Accepts 0 or more changesets. Will return empty list when passed no args. Greatest common ancestor of a single changeset is that changeset. R( titerRWR5RLtnextt StopIterationR6tancestorRR1(RRR trevitertancR)((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR3s$    cC@sHt|t||}|s%tStj|||||}||@S(N(R!R5R6Rt revancestors(RRR t followfirstR\R]theadsRx((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR`Hs sancestors(set[, depth])cC@st|dd}d|kr6tjtdnd}}d|krt|dd}|dkr}tjdn|}nd |krt|d td }|dkrtjtd n|d }nt|||dd|d |S(sChangesets that are ancestors of changesets in set, including the given changesets themselves. If depth is specified, the result only includes changesets up to the specified generation. t ancestorssset depth startdepthtsets#ancestors takes at least 1 argumentR\s'ancestors expects an integer startdepthisnegative startdepthtdepths"ancestors expects an integer depthsnegative depthiR]N(R}RRRR(R_R`(RRR RR\R]R=((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRPs"           t_firstancestorscC@st|||dtS(NR(R`RJ(RRR ((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRmsc C@st}xt|t||D]}xt|D]f}||j}t|dkraPnt|dkrtjtdn|dj }q5W|j |q"W||@S(sAChangesets that are the Nth child of a changeset in set. iis'revision in set has more than one child( RR!R5trangetchildrenRFRR'RR&tadd( RRR R=RtcsR)titc((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyt _childrenspecss c C@st|td}|dkr8t|||| |St}|j}xt|t||D]r}x\t|D]N}y|j|d}Wqvt j k r||j dj }qvXqvW|j |qcW||@S(sg``set~n`` Changesets that are the Nth ancestor (first parents only) of a changeset in set. s~ expects a numberi(R_RRRR?R!R5Rt parentrevsRtWdirUnsupportedtparentsR&R( RRR R=RtpstclR)R((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyt ancestorspecs   "sauthor(string)i c@sUt|td}t|dt\}}|jfddd|fS(s Alias for ``user(string)``. sauthor requires a stringt casesensitivec@s|jS(N(tuser(R (tmatcherR(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRqstcondreprs (RRt_substringmatcherRstfilter(RRR R=tkindtpattern((RRs6/usr/lib64/python2.7/site-packages/mercurial/revset.pytauthorssbisect(string)cC@s;t|tdj}ttj||}||@S(s Changesets marked in the specified bisect status: - ``good``, ``bad``, ``skip``: csets explicitly marked as good/bad/skip - ``goods``, ``bads`` : csets topologically good/bad - ``range`` : csets taking part in the bisection - ``pruned`` : csets that are goods, bads or skipped - ``untested`` : csets whose fate is yet unknown - ``ignored`` : csets ignored due to DAG topology - ``current`` : the cset currently being bisected sbisect requires a string(RRtlowerRRtget(RRR tstatuststate((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytbisects tbisectedcC@st|||S(N(R(RRR ((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRssbookmark([name])c @st|ddtd}|rkt|dtd}tj|\}}}t}|dkr||krjj|}njj|d } | st j td|n|j | j qt} x9jjD](\} } || r| j | qqW| s@t j td|nxG| D]} |j | j qGWnfdjjD}|tjh8}||@S( s{The named bookmark or all bookmarks. Pattern matching is supported for `name`. See :hg:`help revisions.patterns`. iis"bookmark takes one or no argumentss)the argument to bookmark must be a stringtliteralsbookmark '%s' does not exists"no bookmarks exist that match '%s'c@s h|]}|jqS((R&(t.0R)(R(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pys s N(tgetargsRRRt stringmatcherRt _bookmarkst expandnameRR(RR'RR&t iteritemstvaluesR R3( RRR RtbmRRRtbmstbmrevt matchrevstname((Rs6/usr/lib64/python2.7/site-packages/mercurial/revset.pytbookmarks4         sbranch(string or set)c@srjjfdyt|dWntjk rJnXtj\}}|dkr|jkr|jfdddfSj drtj t d|qn%|jfd ddfSt t |}tx!|D]}j|q!W|j|jfd dfd S( s All changesets belonging to the given branch or the branches of the given changesets. Pattern matching is supported for `string`. See :hg:`help revisions.patterns`. c@s8y|dSWntjk r3|jSXdS(Ni(RRtbranch(R)(tgetbiR(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyt getbranchstRc@s|S(N((R)(RR(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRqsRs sliteral:sbranch '%s' does not existc@s|S(N((R)(RR(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRqsc@s|p|kS(N((R)(RURR(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRqsc@sdtS(Ns (R0((RU(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRq s(trevbranchcachet branchinfoRRRRRt branchmapRt startswithR'RR!R5RRt __contains__(RRR RRRxR)((RURRRRRs6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRs.       sphasedivergent()cC@s3t|ddtdtj|d}||@S(sMutable changesets marked as successors of public changesets. Only non-public and non-obsolete changesets can be `phasedivergent`. (EXPERIMENTAL) is!phasedivergent takes no argumentstphasedivergent(RRtobsmodtgetrevs(RRR R((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR ssbundle()cC@sAy|jj}Wn&tk r8tjtdnX||@S(sIChangesets in the bundle. Bundle must be specified by the -R option.s$no bundle provided - specify with -R(R?t bundlerevstAttributeErrorRtAbortR(RRR R((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytbundles  c@sUtjdkdgfd}|j|ddfS(NRc@sM|}d srItjjjgd|d(RtpatkindR(R(RRRRR((RRRRRs6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR#s c C@s|s tSt}|jj}|j}tj}xv|D]n}||krVq>n||\}} ||kr|j|n| |kr>| |kr>|j|q>q>Wt|S(N(R6RR?RtminR R3R( RRt parentsetRtprtminrevR3R)Rtp2((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyt _childrenCs       s children(set)cC@s2t|t||}t|||}||@S(s+Child changesets of changesets in set. (R!R5R(RRR RxR((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRTssclosed()c@s5t|ddtd|jfdddS(sChangeset is closed. isclosed takes no argumentsc@s|jS(N(t closesbranch(R)(R(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRqbsRs(RRR(RRR ((Rs6/usr/lib64/python2.7/site-packages/mercurial/revset.pytclosed\ss_commonancestorheads(set)cC@sDt|t||dt}|jjt|}|t|@S(NR(R!R5RLR?t_commonancestorsheadstlistR6(RRR t startrevstancs((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyt_commonancestorheadsfsscommonancestors(set)cC@s_t|t||dt}|s+tSx-|D]%}|tj|t|gM}q2W|S(s=Changesets that are ancestors of every changeset in set. R(R!R5RLR6RR(RRR RR)((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytcommonancestorsrs  #scontains(pattern)idc@s@t|tdfd}|j|ddfS(s<The revision's manifest contains a file matching pattern (but might not modify it). See :hg:`help patterns` for information about file patterns. The pattern without explicit kind like ``glob:`` is expected to be relative to the current directory and match against a file exactly for efficiency. scontains requires a patternc@stjsDtjjj}||krtSnX|}tjjjgd|}x$|jD]}||rtSqWt S(NR( RRR t canonpathRRRJRtmanifestRs(R tpatsRR<Ru(RR(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRs ' Rs (RRR(RRR R((RRs6/usr/lib64/python2.7/site-packages/mercurial/revset.pytcontains}s  sconverted([id])c@swd t|ddtd}|rCt|dtdnfd|jfdddfS( sChangesets converted from the given identifier in the old repository if present, or all converted changesets if no identifier is specified. iis#converted takes one or no argumentssconverted requires a revisionc@sA|jjdd}|dk o@dkp@|jS(Ntconvert_revision(R%RR(R(R)R"(RR&(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyt _matchvaluesc@s |S(N((R)(R(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRqsRsN(R(RRRR(RRR tl((RRR&s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyt converteds sdate(interval)c@sIt|td}tj||jfddd|fS(s:Changesets within the interval, see :hg:`help dates`. sdate requires a stringc@s|jdS(Ni(tdate(R (tdmR(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRqsRs (RRRt matchdateR(RRR tds((RRs6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRss desc(string)c@sUt|td}t|dt\}}|jfddd|fS(sSearch commit message for string. The match is case-insensitive. Pattern matching is supported for `string`. See :hg:`help revisions.patterns`. sdesc requires a stringRc@s|jS(N(t description(R)(RR(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRqsRs (RRRRsR(RRR RRR((RRs6/usr/lib64/python2.7/site-packages/mercurial/revset.pytdescscC@sHt|t||}|s%tStj|||||}||@S(N(R!R5R6Rtrevdescendants(RRR RR\R]trootsRx((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRas sdescendants(set[, depth])cC@st|dd}d|kr6tjtdnd}}d|krt|dd}|dkr}tjdn|}nd |krt|d td }|dkrtjtd n|d }nt|||dd|d |S(sChangesets which are descendants of changesets in set, including the given changesets themselves. If depth is specified, the result only includes changesets up to the specified generation. t descendantssset depth startdepthRs%descendants takes at least 1 argumentR\s)descendants expects an integer startdepthisnegative startdepthRs$descendants expects an integer depthsnegative depthiR]N(R}RRRR(R_Ra(RRR RR\R]R=((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRs"           t_firstdescendantscC@st|||dtS(NR(RaRJ(RRR ((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRssdestination([set])c@s|dk r't|t||}n t|}tx|D]}t||}d}xs|dk r|dkrt}n|j|||ks|krj|Pn|}t||}qaWqCW|jj dfdS(sChangesets that were created by a graft, transplant or rebase operation, with the given revisions specified as the source. Omitting the optional set is the same as passing all(). Rc@sdtS(Ns(R0((tdests(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRqsN( R(R!R5RR+RtappendtupdateRR(RRR tsourcesR)tsrctlineage((Rs6/usr/lib64/python2.7/site-packages/mercurial/revset.pyt destinations$        scontentdivergent()cC@s3t|ddtdtj|d}||@S(sh Final successors of changesets with an alternative set of final successors. (EXPERIMENTAL) is#contentdivergent takes no argumentstcontentdivergent(RRRR(RRR R((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR ssextdata(source)cC@sPt|dd}t|jdtd}tj||}|t|@S(s:Changesets in the specified extdata source. (EXPERIMENTAL)textdataR"s(extdata takes at least 1 string argument(R}RRRRt extdatasourceR6(RRR RR"tdata((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR+s s extinct()cC@s3t|ddtdtj|d}||@S(s8Obsolete changesets with obsolete descendants only. isextinct takes no argumentstextinct(RRRR(RRR textincts((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR 6ssextra(label, [value])c@st|dd}d|kr6tjtdnt|dtdd d|krt|dtdtj\}nfd|jfd d d fS( sChangesets with the given label in the extra metadata, with the given optional value. Pattern matching is supported for `value`. See :hg:`help revisions.patterns`. R%s label valueR*sextra takes at least 1 arguments(first argument to extra must be a stringtvalues)second argument to extra must be a stringc@s6|j}|ko5dkp5|S(N(R%R((R)R%(R*RRR (s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRVsc@s |S(N((R)(R(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRqZsRsN( R}RRRRR(RRR(RRR RR((RR*RRR s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR%?s  sfilelog(pattern)c@s)t|td}t}|j}tj|s`tj|j|j |}|g}nEtj |j|j |gd|dfd|dD}xy|D]q}|j |}i} d} xMt |D]?} |j| } | | kr|j| | qn|j| } | |kr=|j| q| dk rt| | d}d} x|j|D]}||j|krr||j|krryS||j|}|| kr|| kr|j||} Pq|| |xsiiN(RRRR?RRR RRRRR(tfileRR Rtlinkrevtmaxtrevstrevisiont readfilestfilenodeRtManifestLookupError(RRR RRxRRuRtfltknowntscanpostfrRptlrtstartR)R=((R<s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytfilelog]sH   +    *   sfirst(set, [n])t takeordercC@st||||S(sAn alias for limit(). (R{(RRR R((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR9sc @sut||d}d}d|krCt|t||d}nd|kr0t|dtd|}|dkrdg}ng}x|D]}||} |dkr|dntj|j|j |gd| dd} |j fd j j | DqWt j||} n=|dkrXt|djg}nt j|||} || @S( Ns file startrevtstartrevR s%s expected a patternt.Rtdefaulttpathc3@s|]}|jVqdS(N(t introfilectx(RRu(R(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pys s(R}R(R!R5RRRRRRtextendRtwalkRtfilerevancestorsR6R&R( RRR RRRRtfctxsR)tmctxR<Rx((Rs6/usr/lib64/python2.7/site-packages/mercurial/revset.pyt_follows*       0 sfollow([file[, startrev]])cC@st|||dS(s An alias for ``::.`` (ancestors of the working directory's first parent). If file pattern is specified, the histories of files matching given pattern in the revision given by startrev are followed, including copies. R(R&(RRR ((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRst _followfirstcC@st|||ddtS(NR'R(R&RJ(RRR ((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR'ss?followlines(file, fromline:toline[, startrev=., descend=False])cC@st|dd}t|ddkr@tjtdnd}d|krt|t||d}t|dkrtjtdn|j}nt|d td }td }t j ||||}t |dd td } g| D]} t | td^q\} } t j| | \} } ||j|} t}d|krt|dtd}n|rtdtj| | | Ddt}n+tdtj| | | Ddt}||@S(sChangesets modifying `file` in line range ('fromline', 'toline'). Line range corresponds to 'file' content at 'startrev' and should hence be consistent with file size. If startrev is not specified, working directory's parent is used. By default, ancestors of 'startrev' are returned. If 'descend' is True, descendants of 'startrev' are returned though renames are (currently) not followed in this direction. t followlinessfile *lines startrev descendtlinesis!followlines requires a line rangeRRs(followlines expects exactly one revisionR sfollowlines requires a patterns$followlines expects exactly one fileis followlines expects a line ranges"line range bounds must be integerstdescends"descend argument must be a booleancs@s!|]\}}|jVqdS(N(R&(RRt _linerange((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pys stiterasccs@s!|]\}}|jVqdS(N(R&(RRR+((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pys s(R}RFRRRR!R5R:RRtparsefollowlinespatterntgetrangeR_RtprocesslinerangetfilectxRst getbooleant generatorsetRtblockdescendantsRJtblockancestors(RRR RR&RRtmsgRRRTtfromlinettolinetfctxR*trs((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR(s@   +    sall()cC@s't|ddtd|t|@S(s+All changesets, the same as ``0:tip``. isall takes no arguments(RRRE(RRR ((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytgetallss grep(regex)c@sy"tjt|tdWn8tjk r\}tjtdtj|nXfd}|j|ddj fS(sLike ``keyword(string)`` but accepts a regex. Use ``grep(r'...')`` to ensure special escape characters are handled correctly. Unlike ``keyword(string)``, the match is case-sensitive. sgrep requires a stringsinvalid match pattern: %sc@sN|}x=|j|j|jgD]}j|r-tSq-WtS(N(RRRtsearchRJRs(R Rte(tgrR(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRs  )Rs ( tretcompileRRRRRt forcebytestrRR(RRR R<R((R=Rs6/usr/lib64/python2.7/site-packages/mercurial/revset.pytgrep s" t _matchfilesc @st|ddd}gggd\x|D]}t|d}|d |d}}|dkrj|q<|dkrj|q<|dkrj|q<|d krdk rtjd n|d krtjqK|q<|d kr8dk r/tjd n|q<tjd|q<Ws^dntdDdgj j tj  f d}|j |ddfS(Niis*_matchfiles requires at least one arguments%_matchfiles requires string argumentsisp:si:sx:sr:s)_matchfiles expected at most one revisionRsd:s-_matchfiles expected at most one default modesinvalid _matchfiles prefix: %stglobcs@s$|]}tj|dkVqdS(RN(RR(RRS((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pys Msc @s| kr|j}n |}d sHrdkrdkrZ|n}tjjjddd|dd(NN( RR(RRRRR RDRR?RR( RRR RtargRxtprefixR R(( RRFRGRRHRRRR&RDs6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRB"sB                 * s file(pattern)cC@s/t|td}t||dd|fS(sChangesets affecting files matched by pattern. For a faster but less accurate result, consider using ``filelog()`` instead. This predicate uses ``glob:`` as the default kind of pattern. sfile requires a patterntstringsp:(RRRB(RRR R((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pythasfilels shead()c@sst|ddtdt}|jx7|jjD]#}|jfd|Dq>W|t|@S(s&Changeset is a named branch head. ishead takes no argumentsc3@s|]}j|VqdS(N(R&(Rth(R(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pys s(RRRR?Rt itervaluesRR6(RRR thstls((Rs6/usr/lib64/python2.7/site-packages/mercurial/revset.pytheadys   !s heads(set)cC@sG|tkrt}nt|||d|}t|||}||S(s,Members of set with no children in set. R(RGRMR!R(RRR RRxR((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRs   shidden()cC@s3t|ddtdtj|d}||@S(sHidden changesets. ishidden takes no argumentstvisible(RRRt filterrevs(RRR t hiddenrevs((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pythiddensskeyword(string)c@sItjt|tdfd}|j|ddfS(sSearch commit message, user name, and names of changed files for string. The match is case-insensitive. For a regular expression or case sensitive search of these fields, use ``grep(regex)``. skeyword requires a stringc@s@|}tfd|j|j|jgDS(Nc3@s$|]}tj|kVqdS(N(RR(Rtt(tkw(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pys s(RRRR(R)R(RWR(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRs Rs (RRRRR(RRR R((RWRs6/usr/lib64/python2.7/site-packages/mercurial/revset.pytkeywords slimit(set[, n[, offset]])c C@s t|dd}d|kr6tjtdnt|jdtddd}|d kr~tjtd nt|jd tddd }|d krtjtd nt|t||d}|j|||}|t kr|dkr||@S||@S( sCFirst n members of set, defaulting to 1, starting from offset. R{s set n offsetRs%limit requires one to three argumentsR=slimit expects a numberRiisnegative number to selecttoffsetsnegative offset( R}RRRR_RR!R5tsliceRM( RRR RRtlimtofstosRP((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR{s $ $ slast(set, [n])cC@st|ddtd}d}t|dkrOt|dtd}n|dkrstjtdnt|t||d}|j|j d|}|t kr|dkr||@S|j||@S(s,Last n members of set, defaulting to 1. iis"last requires one or two argumentsslast expects a numberisnegative number to select( RRRFR_RRR!R5treverseRZRM(RRR RRR[R]RP((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR:s   smax(set)cC@szt|t||}y8|j}||krOt|gdd||fSWntk rcnXtdd||fS(s3Changeset with highest revision number in set. tdatareprs (R!R5RR6t ValueError(RRR R]R<((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytmaxrevs    smerge()c@s>t|ddtd|j|jfdddS(s$Changeset is a merge changeset. ismerge takes no argumentsc@sj|ddkS(Nii(R(R)(R(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRqsRs(RRR?R(RRR ((Rs6/usr/lib64/python2.7/site-packages/mercurial/revset.pytmerges s branchpoint()c@st|ddtd|j}|s/tSt|dgt|x[|jddD]C}x:|j|D])}|kr|cd7( RRR?R6RRFRRR(RRR RR)RS((RcRds6/usr/lib64/python2.7/site-packages/mercurial/revset.pyt branchpoints   smin(set)cC@szt|t||}y8|j}||krOt|gdd||fSWntk rcnXtdd||fS(s2Changeset with lowest revision number in set. R_s (R!R5RR6R`(RRR R]R<((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRs    smodifies(pattern)cC@s(t|td}t|||dS(sChangesets modifying files matched by pattern. The pattern without explicit kind like ``glob:`` is expected to be relative to the current directory and match against a file or a directory. smodifies requires a patterni(RRR(RRR R((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytmodifiess snamed(namespace)c @st|ddtd}t|dtd}tj|\}}}t}|dkr|jkrtjtd|n|j j|n^x9jj D](\} }|| r|j |qqW|stjtd|nt} xc|D][}xR|j D]A} | |j kr'| j fd|j| Dq'q'WqW| tjh8} || @S( sThe changesets in a given namespace. Pattern matching is supported for `namespace`. See :hg:`help revisions.patterns`. is#named requires a namespace argumentis&the argument to named must be a stringRsnamespace '%s' does not exists#no namespace exists that match '%s'c3@s|]}|jVqdS(N(R&(RR=(R(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pys =s(RRRRRRtnamesRR'RRt listnamest deprecatedRtnodesR R3( RRR RtnsRRRt namespacesRRg((Rs6/usr/lib64/python2.7/site-packages/mercurial/revset.pytnameds.        4s id(string)cC@s;t|ddtd}t|dtd}t|dkry|jjtj|}Wqtj k rtj }qt t fk rd}qXnmd}y7tj||}|dk r|jj|}nWn-t k rntj k rtj }nX|dkr$tSt|g}||@S(sGRevision non-ambiguously specified by the given hex string prefix. isid requires one argumentisid requires a stringi(N(RRRRFR?R&R tbinRRRDt LookupErrort TypeErrorR(RtresolvehexnodeidprefixR6(RRR RR=trntpmtresult((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytnode_Bs,      snone()cC@s t|ddtdtS(sNo changesets. isnone takes no arguments(RRR6(RRR ((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytnoneass obsolete()cC@s3t|ddtdtj|d}||@S(s'Mutable changeset with a newer version.isobsolete takes no argumentsR (RRRR(RRR t obsoletes((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR issonly(set, [set])c C@s|j}t|ddtd}t|t||d}t|dkr|s_tSttj ||t }g|j D]$}||kr||kr|^q}nt|t||d}t|j d|d|} || @S(sChangesets that are ancestors of the first set that are not ancestors of any other head in the repo. If a second set is specified, the result is ancestors of the first set that are not ancestors of the second set (i.e. :: - ::). iisonly takes one or two argumentsitcommonR( R?RRR!R5RFR6RRRRstheadrevstfindmissingrevs( RRR RRRDRR&REtresults((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytonlyqs 's origin([set])c@sm|dk r'tt|}n t}fdfd|D}|dh8}||@S(sn Changesets that were specified as a source for the grafts, transplants or rebases that created the given revisions. Omitting the optional set is the same as passing all(). If a changeset created by these operations is itself specified as a source for one of these operations, only the source changeset for the first operation is selected. c@sUt|}|dkrdSx/trPt|}|dkrG|S|}q"WdS(N(R+R(RJ(R&Rtprev(R(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyt _firstsrcs   c@sh|]}|qS(((RR)(R~(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pys s N(R(R!R5(RRR Rto((R~Rs6/usr/lib64/python2.7/site-packages/mercurial/revset.pytorigins    soutgoing([path])c@sddlm}m}t|ddtd}|rPt|dtdpSd}|sed}n|jjj |dd}|st j td d td n|j p|j }|jgf}|j|||g\} } | rg| D]} |j| ^q} n|j|i|} |jj|j|| d | } |jj|jfd | jD}||@S(sdChangesets not found in the specified destination repository, or the default push location. i(t discoverythgis"outgoing takes one or no argumentss#outgoing requires a repository pathRRs default-pushs"default repository not configured!Rgssee 'hg help config.paths't onlyheadsc@sh|]}j|qS((R&(RR)(R(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pys s N(s default-pushR(RRRRRRR(tuitpathstgetpathRRtpushloctlocRt addbranchrevstlookuptpeert pushbuffertfindcommonoutgoingt popbufferR?tmissing(RRR RRRtdestRtbranchesRtcheckoutR&tothertoutgoingR((Rs6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRs*% %   s p1([set])cC@s|dkrF||jj}|dkr?|t|g@StSt}|j}xvt|t||D]\}y|j|j |dWqqt j k r|j||j djqqXqqW|t jh8}||@S(sAFirst parent of changesets in set, or the working directory. iN(R(RR&R6RR?R!R5RRRRRR R3(RRR RSRRR)((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRs    )s p2([set])cC@s'|dkro||j}y8|dj}|dkrL|t|g@StSWqotk rktSXnt}|j}xt|t||D]q}y|j |j |dWqt j k r ||j}t |dkr |j |dq qXqW|tjh8}||@S(sBSecond parent of changesets in set, or the working directory. iiiN(R(RR&R6t IndexErrorRR?R!R5RRRRRFR R3(RRR RRSRR)R((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRs(       cC@st|||S(N(R(RRR R((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyt parentpostssparents([set])cC@s|dkr/td||jD}nt}|j}|j}|j}xit|t||D]O}y|||Wqltj k r|d||jDqlXqlW|t j h8}||@S(sU The set of all parents for all changesets in set, or the working directory. cs@s|]}|jVqdS(N(R&(RRS((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pys scs@s|]}|jVqdS(N(R&(RRS((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pys sN( R(RRR?RRR!R5RRR R3(RRR RRtupRR)((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRs #    &cG@s|jj|||S(s,helper to select all rev in phases(t _phasecachet getrevset(RRttargets((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyt_phasess _phase(idx)cC@s8t|ddd}t|dd}t|||S(Nis_phase requires one argumentis_phase expects a number(RR_R(RRR Rttarget((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytphasessdraft()cC@s2t|ddtdtj}t|||S(sChangeset in draft phase.isdraft takes no arguments(RRR tdraftR(RRR R((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR!s ssecret()cC@s2t|ddtdtj}t|||S(sChangeset in secret phase.issecret takes no arguments(RRR tsecretR(RRR R((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR)s s stack([revs])cC@sw|dkr!tj||}nNtjg}x<t|t||D]"}tj||}||}qIW||@S(sdExperimental revset for the stack of changesets or working directory parent. (EXPERIMENTAL) N(R(tstackmodtgetstackRR6R!R5(RRR tstacksRt currentstack((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR1s c C@sy)t|d}|dkr(tnWn,ttfk rWtjtdnXt}|j}x.t|t ||D]}|dkr|j |q|dkr y|j |j |dWqtj k r|j ||j djqXqy:|j |}|dtjkrC|j |dnWqtj k r||j }t|dkr|j |djqqXqW||@S(s``set^0`` The set. ``set^1`` (or ``set^``), ``set^2`` First or second parent, respectively, of all changesets in set. iiis^ expects a number 0, 1, or 2(iii(tintR`RpRRRRR?R!R5RRRRR&R R3RF( RRR R=RRRR)R((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyt parentspec@s2      ("s present(set)cC@s6yt||||SWntjk r1tSXdS(sAn empty set, if any revision in set isn't found; otherwise, all revisions in set. If any of specified revisions is not present in the local repository, the query is normally aborted. But this predicate allows the query to continue even in such cases. N(R!RR'R6(RRR R((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytpresentas t _notpubliccC@s,t|dddt||tjtjS(Nis_notpublic takes no arguments(RRR RR(RRR ((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRpss"_phaseandancestors(phasename, set)c @st|ddd}t|d}tt|d}tjtj}id6d6|d6}||krtjd|n||j j fd }t j |d |} |dkr| j fd } n|| @S( Nis)_phaseandancestors requires two argumentsiiRRRs%r is not a valid phasenamec@s|kS(N((R&(tgetphaset minimalphaseR(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytcutfuncsRc@s|kS(N((R)(RRR(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRqs(RR^R!R5R RRRRRRRRR( RRR Rt phasenameRxRt phasenamemapRR((RRRRs6/usr/lib64/python2.7/site-packages/mercurial/revset.pyt_phaseandancestorsvs$       !spublic()cC@s,t|ddtdt||tjS(sChangeset in public phase.ispublic takes no arguments(RRRR tpublic(RRR ((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRssremote([id [,path]])cC@sddlm}t|ddtd}d}t|dkr_t|dtd}n|dkr~|dj}nd}t|dkrt|dtd }n|jj|pd }|j |\}}|j |||g\}} |r(g|D]} |j | ^q }n|j |i|} | j |} | |kr|| j } | |krt| gSntS( sLocal revision that corresponds to the given identifier in a remote repository, if present. Here, the '.' identifier is a synonym for the current local branch. i(Riis(remote takes zero, one, or two argumentsRsremote requires a string idRs!remote requires a repository pathR(RRRRRFRRRt expandpathtparseurlRRRR&R6(RRR RRtqRRRRR&RR=R)((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytremotes, %  sremoves(pattern)cC@s(t|td}t|||dS(sChangesets which remove files matching pattern. The pattern without explicit kind like ``glob:`` is expected to be relative to the current directory and match against a file or a directory. sremoves requires a patterni(RRR(RRR R((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytremovess s rev(number)cC@st|ddtd}y#tt|dtd}Wn,ttfk rltjtdnX||jkr|t j t j fkrt S|t |g@S(s0Revision with the given numeric identifier. isrev requires one argumentisrev requires a numbersrev expects a number( RRRRRpR`RRR?R R3RDR6(RRR R((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR&s#'s revset(set)cC@st||||S(sStrictly interpret the content as a revset. The content of this special predicate will be strictly interpreted as a revset. For example, ``revset(id(0))`` will be interpreted as "id(0)" without possible ambiguity with a "id(0)" bookmark or tag. (R!(RRR R((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytrevsetpredicatessmatching(revision [, field])c @st|ddtd}tt|ddg}t|dkrtt|dtdj}ng}xq|D]i}|dkr|ddd g7}q|d kr|d d g7}q|d krd}n|j|qWt|}d |kr"d|kr"|j d ndddd dd d ddd g fd}t |}|j d|gi fdd6fdd6fdd 6fdd6fdd 6fdd6fdd6fdd6fdd 6fdd 6}xU|D]M} |j | d#} | d#krdtjtd| nj| q$Wfdfd } |j| d!d"|fS($sChangesets in which a given set of fields match the set of fields in the selected revision or set. To match more than one field pass the list of fields to match separated by spaces (e.g. ``author description``). Valid fields are most regular revision fields and some special fields. Regular revision fields are ``description``, ``author``, ``branch``, ``date``, ``files``, ``phase``, ``parents``, ``substate``, ``user`` and ``diff``. Note that ``author`` and ``user`` are synonyms. ``diff`` refers to the contents of the revision. Two revisions matching their ``diff`` will also match their ``files``. Special fields are ``summary`` and ``metadata``: ``summary`` matches the first line of the description. ``metadata`` is equivalent to matching ``description user date`` (i.e. it matches the main metadata fields). ``metadata`` is the default field which is used when no fields are specified. You can match more than one field at a time. iismatching takes 1 or 2 argumentsitmetadatas1matching requires a string as its second argumentRRRtdiffRRtsummaryRRRtsubstatec@s0yj|SWntk r+tSXdS(N(tindexR`RF(Ru(t fieldorder(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyt fieldkeyfunc#s tkeyc@s|jS(N(R(R)(R(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRq0sc@s|jS(N(R(R)(R(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRq1sc@s|jS(N(R(R)(R(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRq2sc@s|jS(N(R(R)(R(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRq3sc@s|jS(N(R(R)(R(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRq4sc@s|jS(N(R(R)(R(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRq5sc@s|jS(N(R(R)(R(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRq6sc@s |jS(N(R(R)(R(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRq7sc@s|jjdS(Ni(Rt splitlines(R)(R(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRq8sc@s0t|jdtjjitd6S(NRhtgit(RRRt diffalloptsRRJ(R)(R(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRq9ss,unexpected field name passed to matching: %sc@sgD]}||^qS(N((R)Ru(t getfieldfuncs(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRqFsc@smxfD]^}|}t}x9tD]+\}}||||kr,t}q,q,W|rtSqWtS(N(RJt enumerateRs(R R&RRR=Ru(RtgetinfoR(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRHs   RsN(RRR!R5RFRtsplitRRtdiscardRtsortRR(RRR( RRR Rt fieldlisttfieldsRRt_funcstinfotgetfieldR((RRRRRs6/usr/lib64/python2.7/site-packages/mercurial/revset.pytmatchingsX            s reverse(set)cC@s2t||||}|tkr.|jn|S(sReverse order of set. (R!RGR^(RRR RR((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR^Us  s roots(set)c@sMt|t|||jjfd}|j|dd@S(s7Changesets in set with no parent changeset in set. c@s7x0|D]"}d|kr |kr tSq WtS(Ni(RsRJ(R)RS(RRx(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRdsRs(R!R5R?RR(RRR R((RRxs6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR^s cC@s |jS(N(R&(R((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRqlsR&cC@s |jS(N(R(R((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRqmsRcC@s |jS(N(R(R((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRqnsRcC@s |jS(N(R(R((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRqosRcC@s |jS(N(R(R((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRqpsRcC@s|jdS(Ni(R(R((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRqqsRcC@st|dd}d|kr6tjtdnd}d|krdt|dtd}ng}x|jD]~}|}|jd}|r|d }n|tkr|d krtjtd tj |n|j ||fqwWt |d kr9t d |Dr9tjtd ni}d|krt d|Drr|d|dss7topo sort order cannot be combined with other sort keysstopo.firstbranchcs@s!|]\}}|dkVqdS(RN((RRjR^((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pys ss>topo.firstbranch can only be used when using the topo sort key( R}RRRRRRt _sortkeyfuncsRtbytestrRRFR(R RRtkeyflagsRjtfkR^Rh((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyt _getsortargsts0   ( ssort(set[, [-]key... [, ...]])cC@st|\}}}t||||}| s=|tkrA|St|dkr|dddkr|jd|dd|S|dddkrd }d|krt|||d}nttj||jj |dt }|ddr|j n|Sg|D]} || ^q} x4t |D]&\} } | jdt | d| q2Wtg| D]} | j^qfS( sSort set by keys. The default sort order is ascending, specify a key as ``-key`` to sort in descending order. The keys can be: - ``rev`` for the revision number, - ``branch`` for the branch name, - ``desc`` for the commit message (description), - ``user`` for user name (``author`` can be used as an alias), - ``date`` for the commit date - ``topo`` for a reverse topographical sort The ``topo`` sort order cannot be combined with other sort keys. This sort takes one optional argument, ``topo.firstbranch``, which takes a revset that specifies what topographical branches to prioritize in the sort. iiR&R^Rstopo.firstbranchtistopoR((RR!RGRFRR6RttoposortR?RRJR^treversedRR&(RRR RRxRRhRt firstbranchR)tctxsRjR^R((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRs*&    ssubrepo([pattern])c@st|ddtd}d t|dkrOt|dtdntjjjdgfdfd}|j|dd fS( sChangesets that add, modify or remove the given subrepo. If no subrepo pattern is named, any subrepo changes are returned. iis"subrepo takes at most one argumentssubrepo requires a patterns .hgsubstatec3@sAtj\}}}x"|D]}||r|VqqWdS(N(RR(RgRjRSR<R(R(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyt submatchess  c@s)|}j|jj|jd}dkrY|jpX|jpX|jS|jr{t|jj S|jrt |jjj }|j |jj xE|D]4}|jjj ||jj |krt SqWn|jr%t|jjj StS(NR(RRR R(taddedtmodifiedtremovedRRRRRRRJRs(R RRxtsubsR(R<RRR(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRs *   *  Rs N( RRR(RFRRtexactRR(RRR RR((R<RRRs6/usr/lib64/python2.7/site-packages/mercurial/revset.pytsubreposc@sv|jj}|j|j|jtfd|fd|DD}tj||jjS(s(repo, smartset, [node] -> [node]) -> smartset Helper method to map a smartset to another smartset given a function only talking about nodes. Handles converting between rev numbers and nodes, and filtering. c3@s'|]}|kr|VqdS(N((RR=(tnodemapttorev(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pys sc3@s|]}|VqdS(N((RR)(ttonode(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pys s( t unfilteredR?R&R RRRR6t filteredrevs(RRxRuRRt((RRRs6/usr/lib64/python2.7/site-packages/mercurial/revset.pyt_mapbynodefuncs    5ssuccessors(set)c@sAtt|}fd}t||}||@S(s:All successors for set, including the given set themselvesc@stjj|S(N(R t allsuccessorstobsstore(Rj(R(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRqs(R!R5R(RRR RxRutd((Rs6/usr/lib64/python2.7/site-packages/mercurial/revset.pyt successorssc@sptjd|\}}|dkrc|sQtjfd}qcfd}n||fS(NRRc@stj|kS(N(RR(Rx(R(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRqsc@s |kS(N((Rx(R(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRqs(RRRR(RRRR((Rs6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR s s tag([name])c@st|ddtd}|j|rt|dtd}tj|\}}|dkr|jjj|d }|d krt j td|n||j h}qfd|j D}nfd|j D}||@S( sThe specified tag by name, or all tagged revisions if no name is given. Pattern matching is supported for `name`. See :hg:`help revisions.patterns`. iistag takes one or no argumentss$the argument to tag must be a stringRstag '%s' does not existc@s1h|]'\}}|rj|qS((R&(RRVR=(RR(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pys +s c@s1h|]'\}}|dkrj|qS(ttip(R&(RRVR=(R(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pys -s N(RRR?RRRt _tagscachettagsRR(RR'R&ttagslist(RRR RRRttnRx((RRs6/usr/lib64/python2.7/site-packages/mercurial/revset.pyttags     "ttaggedcC@st|||S(N(R(RRR ((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR0ssorphan()cC@s3t|ddtdtj|d}||@S(sDNon-obsolete changesets with obsolete ancestors. (EXPERIMENTAL) isorphan takes no argumentstorphan(RRRR(RRR R((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR4ss user(string)cC@st|||S(sUser name contains string. The match is case-insensitive. Pattern matching is supported for `string`. See :hg:`help revisions.patterns`. (R(RRR ((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR>sswdir()cC@sNt|ddtdtj|ks7t|trGttjgStS(s!Working directory. (EXPERIMENTAL)iswdir takes no arguments(RRR RDR4R5R6(RRR ((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytwdirGsc C@s)t|d}|stS|j}g}t}x|jdD]}y>t|}d||ksu||kr~tn|g} Wn&tk rt|||t} nXxg| D]_}||krqn||ks|t j kr t |t r |j |n|j|qWqDWt|S(Nsinternal errorss%d(RR6R?RRRR`R7RGR R3R4R5RR( RRR RxRRPtseenRVR)R((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyt _orderedlistPs,         t_listcC@s:|tkr&|t|t||@St|||SdS(N(RMRR5(RRR R((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRms cC@sst|d}|stSg|jdD]}t|^q,}|}tg|D]}||krT|^qTS(Nsinternal errors(RR6RR(RRR RxR)RP((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyt_orderedintlistus (t_intlistcC@s:|tkr&|t|t||@St|||SdS(N(RMRR5(RRR R((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR~s cC@st|d}|stS|j}g|jdD]}|jtj|^q5}|}tg|D]}||kri|^qiS(Nsinternal errors(RR6R?RR&R Rn(RRR RxRR)RP((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyt_orderedhexlists 4t_hexlistcC@s:|tkr&|t|t||@St|||SdS(N(RMRR5(RRR R((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRs RRARBRCRKRKtsymboltandt andsmallytortnott differencetrelationt relsubscriptt subscriptRtkeyvalueRvRtparentRc@s fdS(Nc@stj|S(N(Rt isrevsymbol(R(R(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRqs((R((Rs6/usr/lib64/python2.7/site-packages/mercurial/revset.pytlookupfnscC@st||gd|S(s+Create a matcher for a single revision specR(tmatchany(RtspecR((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRsc@s3|sd d}|St|s:tjtdnt|dkretj|d}n&dd tfd|Df}g}d }|r|j |j d|j }n|r|j |j n|rtj ||d |}ntj|}tj|}tj|}t|S( seCreate a matcher that will include any revisions matching one of the given specs If lookup function is not None, the parser will first attempt to handle old-style ranges, which may contain operator characters. If localalias is not None, it is a dict {name: definitionstring}. It takes precedence over [revsetalias] config section. cS@stS(N(R6(RR((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytmfuncss empty queryiiRRc3@s!|]}tj|VqdS(N(Rtparse(RRx(R(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pys st revsetaliastwarnN(R(R(tallRRRRFRR ttupleR!t configitemsR Rtt expandaliasest foldconcattanalyzetoptimizet makematcher(RtspecsRt localaliasR ttreetaliasesR ((Rs6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRs,   # c@sddfd}|S(s)Create a matcher from an evaluatable treec@sX|dkr*|dkr!t}q*t}n|dkrEt|}nt|||S(N(R(RGRMR5R!(RRR(R(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR s     N(R((RR ((Rs6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRs cC@sGx@|jjD]/\}}|t|<|jrtj|qqWdS(s7Load revset predicates from specified registrarobj N(t_tableRRrt_safet safesymbolsR(Rtextnamet registrarobjRRv((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyt loadpredicates  (t __future__RR>ti18nRRRRRRRRRRR R RR R R RRRRRRRRRtutilsRRR^RR_R1RVR.RR}R6R2RER5RLRGRMR!R+R0R7R>RARBRCR8RKRORPRQRRRWRXRYReRfRiRlRvRrRRRt predicateRzRRJRRRsR(R`RRRRRRRRRRRRRRRRRRRRRRaRRRRRR R%RR9R&RR'R(R:RARBRLRQRRURXR{R:RaRbReRRfRmRuRvR|RRRRRRRRRRRRRRRRRR&RR^RRRRRRRRRRRRRRRRRRRRRRRRRt i18nfunctions(((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytsp             (                     ! !   ! %!,  !   ! ! !- !  B'   5J!  !  !'! ! % !#   !!#! ! q'         &,,   ! ! ! ' !   $