HEX
Server: Apache
System: Linux p102.lithium.hosting 4.18.0-553.141.1.el8_10.x86_64 #1 SMP Fri Jul 10 17:48:02 UTC 2026 x86_64
User: bvzmoamr (9955)
PHP: 8.1.34
Disabled: syslog
Upload Files
File: //proc/self/root/lib64/python2.7/site-packages/mercurial/revset.pyc
�
1�3\c@@s�
ddlmZddlZddlmZddlmZmZmZm	Z	m
Z
mZm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
�Z2d�Z3d�Z4d�Z5d�Z6d�Z7d�Z8d�Z9d�Z:d�Z;d�Z<d�Z=d�Z>d�Z?d�Z@d�ZAd�ZBd�ZCd�ZDejEZEeF�ZGejH�ZIeId �d!��ZJeId"�d#��ZKeId$d%eLd&d'�d(��ZMeId)d%eLd&d*�d+��ZNeOddd,�ZQeId-d%eL�d.��ZReId/d%eL�d0��ZSd1�ZTd2�ZUeId3d%eLd&d4�d5��ZVeId6d%eL�d7��ZWeId8d%eL�d9��ZXeId:d%eL�d;��ZYeId<d%eLd&d4�d=��ZZeId>d%eL�d?��Z[eId@d%eL�dA��Z\dB�Z]dC�Z^eIdDd%eL�dE��Z_eIdFd%eLd&d4�dG��Z`eIdHd%eL�dI��ZaeIdJd%eL�dK��ZbeIdLd&dM�dN��ZceIdOd%eL�dP��ZdeIdQd%eLd&d4�dR��ZeeIdSd%eLd&d4�dT��ZfeOdddU�ZgeIdVd%eL�dW��ZheIdXd%eL�dY��ZieIdZd%eLd&d4�d[��ZjeId\d%eL�d]��ZkeId^d%eOd&dM�d_��ZleId`d%eL�da��ZmeIdbd%eL�dc��ZneIddd%eL�de��ZoeIdfd%eLdgeLd&d�dh��ZpeOdi�ZqeIdjd%eL�dk��ZreIdld%eL�dm��ZseIdnd%eL�do��ZteIdpd%eL�dq��ZueIdrd&d4�ds��ZveIdtd%eL�du��ZweIdvd%eLd&d4�dw��ZxeIdxd%eL�dy��ZyeIdzd%eLdgeL�d{��ZzeId|d%eL�d}��Z{eId~d%eLd&d4�d��Z|eId�d%eLdgeLd&d�d���Z}eId�d%eLdgeL�d���Z~eId�d%eL�d���ZeId�d%eL�d���Z�eId�d%eL�d���Z�eId�d%eL�d���Z�eId�d%eLd&d'�d���Z�eId��d���Z�eId�d%eL�d���Z�eId�d%eL�d���Z�eId�d%eL�d���ZeId�d%eL�d���Z�eId�d%eL�d���Z�eId�d%eOd&d4�d���Z�eId�d%eL�d���Z�eId�d%eL�d���Z�d��Z�eId�d%eL�d���Z�d��Z�eId�d%eL�d���Z�eId�d%eL�d���Z�eId�d%eL�d���Z�eId�d%eL�d���Zd��Z�eId�d%eLdgeL�d���Z�eId�d%eL�d���Z�eId�d%eL�d���Z�eId�d%eL�d���Z�eId�d%eO�d���Z�eId�d%eLd&d'�d���Z�eId�d%eL�d���Z�eId�d%eLdgeL�d���ZHeId�d%eL�d���Z�eId�d%eLdgeLd&d�d���Z�eId�d%eL�d���Z�id��d�6d��d�6d��d�6d��d�6d��d�6d��d�6Z�d��Z�eId�d%eLdgeLd&d4�d���Z�eId��d���Z�d��Z�eId�d%eL�d���Z�eLd��Z�eId�d%eL�d���Z�eId�d%eL�d���Z�eId�d%eL�d���Z�eId�d%eLd&d4�d���Z�eId�d%eLd&d�d���Z�d��Z�eId�d%eLdgeL�d���Z�d��Z�eId�d%eLdgeLd&d�d���Z�d��Z�eId�d%eLdgeL�d���Z�ie3d�6e4d�6e5d�6e6d�6e8d�6e2d�6e2d�6e9d�6e:d�6e=d�6e>d�6e;d�6e?d�6e@d�6eAd�6eBd�6eCd�6eDd�6eUd�6e�d�6e�d�6Z�d�Z�dd�Zddd�Z�d�Z�d�Z�e�ddeI�eEj��Z�dS(i(tabsolute_importNi(t_(tdagoptdestutiltdiffutiltencodingterrorthbisecttmatchtnodetobsoletetobsutiltpathutiltphasestpycompatt	registrartrepoviewt
revsetlangtscmutiltsmartsettstacktutil(tdateutilt
stringutiltanytdefinetfollowcC@s@|stjtd���nt|d||d||d�S(Nsmissing argumentitorderi(Rt
ParseErrorRtmethods(trepotsubsettxR((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytgetsetcscC@sa||j�}xJdD]B}||kry|||j�SWqYtjk
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|stjtd���ntjtj||��}||ksc|tjkrpt|t	�rpt
|g�St
�S(Ns$empty string is not a valid revision(RRRRtintrevt	revsymbolR	tnullrevt
isinstancetfullreposettbaseset(RRR R((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyt	stringsetws
cC@sgt|t|�|�}t|t|�|�}|s>|rEt�St|||j�|j�|�S(N(R!R5R6t
_makerangesettfirsttlast(RRR tyRtmtn((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytrangeset�s
cC@s1|dkst�t||d|jj�|�S(Ni(R(tAssertionErrorR8t	changelogttiprev(RRR R((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytrangeall�scC@sAt|t|�|�}|s%t�St||d|j�|�S(Ni(R!R5R6R8R:(RRR;RR=((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytrangepre�scC@sJt|t|�|�}|s%t�St|||j�|jj�|�S(N(R!R5R6R8R9R@RA(RRR RR<((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyt	rangepost�s
cC@s�||krt|g�}n�|tjkrUt||t|��t|g�}ny|tjkr�t|g�t||jj�|d�}n;||kr�t|||d�}nt|||d�}|tkr�||@S||@SdS(Ni(R6R	twdirrevtspansettlenR@RAtdefineorder(RRR<R=RR)((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR8�s(/cC@sGt|�}tj|t|||�t|||�dt�}||@S(Ntincludepath(R5RtreachablerootsR!tTrue(RRR R;RR)R/((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytdagrange�s*	cC@s=|tkrt}nt}t|t||||�||�S(N(tanyordertfolloworderR!(RRR R;Rtyorder((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytandset�s	cC@s=|tkrt}nt}t|t||||�||�S(N(RMRNR!(RRR R;RRO((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytandsmallyset�s	cC@s&t||||�t|||t�S(N(R!RM(RRR R;R((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyt
differenceset�scC@s|st�t|�dkr5t|||d|�St|�d}t|||| |�}t|||||�}||S(Niii(R?RGR!t
_orsetlist(RRR/Rtptatb((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRS�scC@sYt|�}|st�S|tkrB|t|t|�|t�@St||||�SdS(N(tgetlistR6RNRSR5RM(RRR RR/((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytorset�scC@s|t|||t�S(N(R!RM(RRR R((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytnotset�scC@stjtd���dS(Ns$can't use a relation in this context(RRR(RRR R;R((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytrelationset�sc	C@s�t|�}t|td��}|dkr�|dkr`|}t|||d|d|d�St|||d|d|d�Sntj|dg��dS(	Ns%relation subscript must be an integertgtgenerationsit
startdeptht	stopdepthi(R[R\(t	getsymbolt
getintegerRt
_ancestorst_descendantsRtUnknownIdentifier(RRR R;tzRtrelR=((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytrelsubscriptset�s #cC@stjtd���dS(Ns%can't use a subscript in this context(RRR(RRR R;R((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytsubscriptset�scO@s%tjtd�dtd���dS(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.pytlistset�scC@stjtd���dS(Ns*can't use a key-value pair in this context(RRR(RRtktvR((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytkeyvaluepair�scC@s�t|�}|tkrWt|}t|dt�rG|||||�S||||�Sd�}gtj�D]\}}	||	�rm|^qm}
tj||
��dS(Nt
_takeordercS@st|dd�dk	S(Nt__doc__(tgetattrR((tfn((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyt<lambda>t(R_tsymbolsRptFalsetitemsRRc(RRRURVRtftfunctkeeptsRqtsyms((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRx�s
	1t_destupdatecC@s<t|dd�}|ttj|tj|��dg�@S(Ntlimittcleani(tgetargsdictR6Rt
destupdateRt	strkwargs(RRR targs((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR|st
_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.pyR�ss
adds(pattern)tsafetweighticC@s(t|td��}t|||d�S(s�Changesets 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	getstringRtcheckstatus(RRR tpat((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytadds's	sancestor(*changeset)g�?cC@s�tt|t|�|dt��}y|t|�}Wntk
rOt�SXx!|D]}|j||�}qWWtj	|�}||kr�t|g�St�S(s�A 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(
titerRXR5RMtnextt
StopIterationR6tancestorRR1(RRR trevitertancR)((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR�3s$


cC@sHt|t|�|�}|s%t�Stj|||||�}||@S(N(R!R5R6Rtrevancestors(RRR tfollowfirstR]R^theadsRz((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRaHs
sancestors(set[, depth])cC@s�t|dd�}d|kr6tjtd���nd}}d|kr�t|dd�}|dkr}tjd��n|}nd	|kr�t|d	td
��}|dkr�tjtd���n|d}nt|||dd|d
|�S(s�Changesets 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(RRRRR(R`Ra(RRR R�R]R^R=((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR�Ps"	

		
t_firstancestorscC@st|||dt�S(NR�(RaRK(RRR ((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR�msc	C@s�t�}x�t|t|�|�D]�}x�t|�D]f}||j�}t|�dkraPnt|�dkr�tjtd���n|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(R�R!R5trangetchildrenRGRR'RR&tadd(	RRR R=RtcsR)titc((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyt
_childrenspecss	c	C@s�t|td��}|dkr8t|||||�St�}|j}x�t|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`RR�R�R@R!R5R�t
parentrevsRtWdirUnsupportedtparentsR&R�(	RRR R=RtpstclR)R�((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytancestorspec�s		"sauthor(string)i
c@sUt|td��}t|dt�\}}�|j��fd�dd|f�S(s Alias for ``user(string)``.
    sauthor requires a stringt
casesensitivec@s��|j��S(N(tuser(R (tmatcherR(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRr�Rstcondreprs	<user %r>(R�Rt_substringmatcherRutfilter(RRR R=tkindtpattern((R�Rs6/usr/lib64/python2.7/site-packages/mercurial/revset.pytauthor�ssbisect(string)cC@s;t|td��j�}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(R�RtlowerR�Rtget(RRR tstatuststate((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytbisect�s
tbisectedcC@st|||�S(N(R�(RRR ((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR��ssbookmark([name])c@s�t|ddtd��}|rkt|dtd��}tj|�\}}}t�}|dkr�||kr��jj|�}n�jj|d	�}	|	s�t
jtd�|��n|j�|	j
��q�t�}
x9�jj�D](\}}	||�r�|
j|	�q�q�W|
s@t
jtd�|��nxG|
D]}	|j�|	j
��qGWn�fd��jj�D�}|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|]}�|j��qS((R&(t.0R)(R(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pys	<setcomp>�s	N(tgetargsRR�Rt
stringmatcherR�t
_bookmarkst
expandnameR�R(RR'R�R&t	iteritemstvaluesR	R3(RRR R�tbmR�R�R�tbmstbmrevt	matchrevstname((Rs6/usr/lib64/python2.7/site-packages/mercurial/revset.pytbookmark�s4
	
	

sbranch(string or set)c@sr�j�j���fd��yt|d��Wntjk
rJn�Xtj��\}}�|dkr�|�j�kr�|j��fd�dd�f�S�j	d�r�tj
td�|��q�n%|j��fd	�dd�f�St�t
��|�}t��x!|D]}�j�|��q!W|j�|j���fd
�d�fd��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�|j�SXdS(Ni(RR�tbranch(R)(tgetbiR(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyt	getbranch�sRsR�c@s��|��S(N((R)(R�R�(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRr�RsR�s<branch %r>sliteral:sbranch '%s' does not existc@s��|��S(N((R)(R�R�(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRrRsc@s�|�p�|��kS(N((R)(RVR�R�(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRrRsc@sdt��S(Ns<branch %r>(R0((RV(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRr	Rs(trevbranchcachet
branchinfoR�RRRR�t	branchmapR�t
startswithR'RR!R5R�R�t__contains__(RRR R�R�RzR)((RVR�R�R�R�Rs6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR��s.	

	
	sphasedivergent()cC@s3t|ddtd��tj|d�}||@S(s�Mutable changesets marked as successors of public changesets.

    Only non-public and non-obsolete changesets can be `phasedivergent`.
    (EXPERIMENTAL)
    is!phasedivergent takes no argumentstphasedivergent(R�Rtobsmodtgetrevs(RRR R�((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR�ssbundle()cC@sAy|jj}Wn&tk
r8tjtd���nX||@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@sUtj��dk�dg������fd�}|j|dd��f�S(NR�c@sM�|}�ds�rItj�j�j��gd|��d<n�d}d}|j�r�t|j��dkr�|j�d}n|dk	r�||j�kr�tSn+x(|j�D]}||�r�Pq�q�WtS�j	|j
�j�|j���}|dk	r(||krItSn!x|D]}||�r/tSq/WdS(Nitctxi(
tmatchmodRtroottgetcwdR(tanypatsRGtfilesRuR�tp1R	RK(R R�R<tfnameRwR�(tfieldthassettmcacheR�R(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytmatches's*
.
%(
R�s<status[%r] %r>(R�tpatkindR(R�(RRR�R�R�((R�R�R�R�Rs6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR�#s	c
C@s�|s
t�St�}|jj}|j�}tj}xv|D]n}||krVq>n||�\}}	||kr�|j|�n|	|kr>|	|kr>|j|�q>q>Wt|�S(N(R6R�R@R�tminR	R3R�(
RRt	parentsetR�tprtminrevR3R)R�tp2((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 RzR�((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR�Tssclosed()c@s5t|ddtd��|j�fd�dd�S(sChangeset is closed.
    isclosed takes no argumentsc@s�|j�S(N(tclosesbranch(R)(R(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRrbRsR�s<branch closed>(R�RR�(RRR ((Rs6/usr/lib64/python2.7/site-packages/mercurial/revset.pytclosed\ss_commonancestorheads(set)cC@sDt|t|�|dt�}|jjt|��}|t|�@S(NR(R!R5RMR@t_commonancestorsheadstlistR6(RRR t	startrevstancs((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyt_commonancestorheadsfsscommonancestors(set)cC@s_t|t|�|dt�}|s+t�Sx-|D]%}|tj|t|g��M}q2W|S(s=Changesets that are ancestors of every changeset in set.
    R(R!R5RMR6RR�(RRR R�R)((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytcommonancestorsrs
#scontains(pattern)idc@s@t|td�����fd�}|j|dd�f�S(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@s�tj��sDtj�j�j���}|�|kr�tSnX�|}tj�j�j��gd|�}x$|j�D]}||�r�tSq�Wt	S(NR�(
R�R�Rt	canonpathR�R�RKRtmanifestRu(R tpatsR�R<Rw(R�R(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR��s
'R�s
<contains %r>(R�RR�(RRR R�((R�Rs6/usr/lib64/python2.7/site-packages/mercurial/revset.pytcontains}s

sconverted([id])c@swd	�t|ddtd��}|rCt|dtd���n��fd��|j�fd�dd�f�S(
s�Changesets 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�|j�jdd�}|dk	o@�dkp@|j��S(Ntconvert_revision(R%R�R(R�(R)R"(RR&(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyt_matchvalue�sc@s
�|�S(N((R)(R�(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRr�RsR�s<converted %r>N(R(R�RR�R�(RRR tl((R�RR&s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyt	converted�s	sdate(interval)c@sIt|td��}tj|��|j��fd�dd|f�S(s:Changesets within the interval, see :hg:`help dates`.
    sdate requires a stringc@s��|j�d�S(Ni(tdate(R (tdmR(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRr�RsR�s	<date %r>(R�RRt	matchdateR�(RRR tds((R�Rs6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR��ssdesc(string)c@sUt|td��}t|dt�\}}�|j��fd�dd|f�S(s�Search commit message for string. The match is case-insensitive.

    Pattern matching is supported for `string`. See
    :hg:`help revisions.patterns`.
    sdesc requires a stringR�c@s��|j��S(N(tdescription(R)(R�R(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRr�RsR�s	<desc %r>(R�RR�RuR�(RRR R�R�R�((R�Rs6/usr/lib64/python2.7/site-packages/mercurial/revset.pytdesc�scC@sHt|t|�|�}|s%t�Stj|||||�}||@S(N(R!R5R6Rtrevdescendants(RRR R�R]R^trootsRz((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRb�s
sdescendants(set[, depth])cC@s�t|dd�}d|kr6tjtd���nd}}d|kr�t|dd�}|dkr}tjd��n|}nd	|kr�t|d	td
��}|dkr�tjtd���n|d}nt|||dd|d
|�S(s�Changesets 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.
    tdescendantssset depth startdepthR�s%descendants takes at least 1 argumentR]s)descendants expects an integer startdepthisnegative startdepthR�s$descendants expects an integer depthsnegative depthiR^N(RRRRR(R`Rb(RRR R�R]R^R=((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR��s"	

		
t_firstdescendantscC@st|||dt�S(NR�(RbRK(RRR ((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR��ssdestination([set])c@s�|dk	r't|t|�|�}nt|�}t��x�|D]�}t||�}d}xs|dk	r�|dkr�t�}n|j|�||ks�|�kr��j|�Pn|}t||�}qaWqCW|j�j	d�fd��S(s�Changesets 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().
    R�c@sdt��S(Ns<destination %r>(R0((tdests(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRrRsN(
R(R!R5R�R+R�tappendtupdateR�R�(RRR tsourcesR)tsrctlineage((R�s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytdestination�s$	


scontentdivergent()cC@s3t|ddtd��tj|d�}||@S(sh
    Final successors of changesets with an alternative set of final
    successors. (EXPERIMENTAL)
    is#contentdivergent takes no argumentstcontentdivergent(R�RR�R�(RRR R((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR ssextdata(source)cC@sPt|dd�}t|jd�td��}tj||�}|t|�@S(s:Changesets in the specified extdata source. (EXPERIMENTAL)textdataR"s(extdata takes at least 1 string argument(RR�R�RRt
extdatasourceR6(RRR R�R"tdata((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR+s
s	extinct()cC@s3t|ddtd��tj|d�}||@S(s8Obsolete changesets with obsolete descendants only.
    isextinct takes no argumentstextinct(R�RR�R�(RRR textincts((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR
6ssextra(label, [value])c@s�t|dd�}d|kr6tjtd���nt|dtd���d�d|kr�t|dtd���tj��\}��n����fd��|j�fd	�d
d��f�S(
s�Changesets 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%slabel 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�}�|ko5�dkp5�|��S(N(R%R((R)R%(R*R�RR(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR�Vsc@s
�|�S(N((R)(R�(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRrZRsR�s<extra[%r] %r>N(	RRRRR�R(RR�R�(RRR R�R�((R�R*R�RR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|d���fd�|dD�}xy|D]q}|j|�}i}	d}
xMt
|�D]?}|j|�}||	kr|j|	|�q�n|j|�}
|
|kr=|j|
�q�|
dk	r�t|
|
�d}d}
x�|j|�D]�}||j|�krr||j|�krryS||j|�}||	kr�||kr�|j|�|}
Pq�||	|<nWqtjk
rqrqXqrqrWq�q�Wq�W||@S(saChangesets connected to the specified filelog.

    For performance reasons, visits only revisions mentioned in the file-level
    filelog, rather than filtering through all changesets (much faster, but
    doesn't include deletes or duplicate changes). For a slower, more accurate
    result, use ``file()``.

    The pattern without explicit kind like ``glob:`` is expected to be
    relative to the current directory and match against a file exactly
    for efficiency.

    If some linkrev points to revisions filtered by the current repoview, we'll
    work around it to return a non-filtered value.
    sfilelog requires a patternR�c3@s!|]}�|�r|VqdS(N((R�Rw(R<(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pys	<genexpr>xsiiN(R�RR�R@R�R�RR�R�R�RR(tfileR�R	R�tlinkrevtmaxtrevstrevisiont	readfilestfilenodeRtManifestLookupError(RRR R�RzR�RwR�tfltknowntscanpostfrRqtlrtstartR)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.pyR9�sc	@sut||d�}d}d|krCt|t|�|d�}nd|kr0t|dtd�|�}|dkr�dg}ng}x�|D]�}||�}	|dkr�|d�ntj|j|j	�|gd|	dd�}
|j
�fd	��j�j|
�D��q�Wt
j||�}n=|dkrXt|dj�g�}nt
j|||�}||@S(
Ns
file startrevtstartrevR
s%s expected a patternt.R�tdefaulttpathc3@s|]}�|j�VqdS(N(tintrofilectx(R�Rw(R�(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pys	<genexpr>�s(RR(R!R5R�RR�RR�R�textendR�twalkRtfilerevancestorsR6R&R�(RRR R�R�R�RtfctxsR)tmctxR<Rz((R�s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyt_follow�s*

0sfollow([file[, startrev]])cC@st|||d�S(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.pyR�st_followfirstcC@st|||ddt�S(NR(R�(R'RK(RRR ((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR(�ss?followlines(file, fromline:toline[, startrev=., descend=False])cC@s�t|dd�}t|d�dkr@tjtd���nd}d|kr�t|t|�|d�}t|�dkr�tjtd���n|j�}nt|d	td
��}td�}t	j
||||�}t|ddtd
��}	g|	D]}
t|
td��^q\}}t
j||�\}}||j|�}
t}d|kr�t|dtd��}n|r�td�tj|
||�D�dt�}n+td�tj|
||�D�dt�}||@S(s�Changesets 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.
    tfollowlinessfile *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!|]\}}|j�VqdS(N(R&(R�R�t
_linerange((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pys	<genexpr>�stiterasccs@s!|]\}}|j�VqdS(N(R&(R�R�R,((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pys	<genexpr>�s(RRGRRRR!R5R:R�RtparsefollowlinespatterntgetrangeR`RtprocesslinerangetfilectxRut
getbooleantgeneratorsetRtblockdescendantsRKtblockancestors(RRR R�R&RR�tmsgR�RRUtfromlinettolinetfctxR+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(R�RRF(RRR ((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytgetallssgrep(regex)c@s�y"tjt|td����Wn8tjk
r\}tjtd�tj|���nX��fd�}|j|dd�j	f�S(s�Like ``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�|j�gD]}�j|�r-tSq-WtS(N(R�R�R�tsearchRKRu(R R�te(tgrR(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR�s

)R�s	<grep %r>(
tretcompileR�RRRRtforcebytestrR�R�(RRR R=R�((R>Rs6/usr/lib64/python2.7/site-packages/mercurial/revset.pytgreps" t_matchfilesc	
@s�t|ddd�}ggg���d\��x|D]}t|d�}|d |d}}|dkr��j|�q<|dkr��j|�q<|dkr��j|�q<|d	kr�dk	r�tjd
��n|dkr�tj�qK|�q<|dkr8�dk	r/tjd
��n|�q<tjd|��q<W�s^d�ntd����D���dg��j	j
�tj�	����������	f
d�}|j|dd�����f�S(Nii����s*_matchfiles requires at least one arguments%_matchfiles requires string argumentsisp:si:sx:sr:s)_matchfiles expected at most one revisionRssd:s-_matchfiles expected at most one default modesinvalid _matchfiles prefix: %stglobcs@s$|]}tj|�dkVqdS(R�N(R�R�(R�RT((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pys	<genexpr>Msc@s�|�	kr�|j�}n�|�}�dsH�r��dkr��dkrZ|n�}tj�j�j��d�d�d�|d���d<n�d}x|D]}||�r�tSq�WtS(NitincludetexcludeR�R(R�R(R�RR�R�RKRu(R R�R)R<Rw(
RtexctgetfilesR�tincR�R�RR&RE(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR�Us

R�sC<matchfiles patterns=%r, include=%r exclude=%r, default=%r, rev=%r>(NN(R�R(R�RRRR	RERR@RR�(	RRR R�targRztprefixRR�((
RRGRHR�RIR�R�RR&REs6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRC"sB
					*s
file(pattern)cC@s/t|td��}t||dd|f�S(s�Changesets 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:(R�RRC(RRR R�((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pythasfilels
shead()c@sst|ddtd��t�}|j�x7|j�j�D]#}|j�fd�|D��q>W|t|�@S(s&Changeset is a named branch head.
    ishead takes no argumentsc3@s|]}�j|�VqdS(N(R&(R�th(R�(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pys	<genexpr>�s(R�RR�R@R�t
itervaluesRR6(RRR thstls((R�s6/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(RHRNR!R�(RRR RRzR�((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR��s
	shidden()cC@s3t|ddtd��tj|d�}||@S(sHidden changesets.
    ishidden takes no argumentstvisible(R�RRt
filterrevs(RRR t
hiddenrevs((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pythidden�sskeyword(string)c@sItjt|td������fd�}|j|dd�f�S(s�Search 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@�|}t�fd�|j�|j�|j�gD��S(Nc3@s$|]}�tj|�kVqdS(N(RR�(R�tt(tkw(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pys	<genexpr>�s(RR�R�R�(R)R�(RXR(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR��s
R�s<keyword %r>(RR�R�RR�(RRR R�((RXRs6/usr/lib64/python2.7/site-packages/mercurial/revset.pytkeyword�s	slimit(set[, n[, offset]])c	C@s t|dd�}d|kr6tjtd���nt|jd�td�dd�}|d	kr~tjtd
���nt|jd�td�dd	�}|d	kr�tjtd���nt|t|�|d�}|j|||�}|t	kr|dkr||@S||@S(
sCFirst n members of set, defaulting to 1, starting from offset.
    R}sset n offsetR�s%limit requires one to three argumentsR=slimit expects a numberRiisnegative number to selecttoffsetsnegative offset(
RRRRR`R�R!R5tsliceRN(	RRR RR�tlimtofstosRQ((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR}�s$$slast(set, [n])cC@s�t|ddtd��}d}t|�dkrOt|dtd��}n|dkrstjtd���nt|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(R�RRGR`RRR!R5treverseR[RN(RRR RR�R\R^RQ((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR:�s

smax(set)cC@szt|t|�|�}y8|j�}||krOt|gdd||f�SWntk
rcnXtdd||f�S(s3Changeset with highest revision number in set.
    tdatareprs<max %r, %r>(R!R5RR6t
ValueError(RRR R^R<((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytmaxrev�s 
smerge()c@s>t|ddtd��|j�|j�fd�dd�S(s$Changeset is a merge changeset.
    ismerge takes no argumentsc@s�j|�ddkS(Nii����(R�(R)(R�(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRr�RsR�s<merge>(R�RR@R�(RRR ((R�s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytmerge�s	s
branchpoint()c@s�t|ddtd��|j}|s/t�St|��dgt|���x[|jd�d�D]C}x:|j|�D])}|�kr�|�cd7<qqWqiW|j��fd�dd�S(s)Changesets with more than one child.
    isbranchpoint takes no argumentsRic@s�|�dkS(Ni((R)(tbaserevtparentscount(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRr�RsR�s
<branchpoint>(	R�RR@R6R�RGRR�R�(RRR R�R)RT((RdRes6/usr/lib64/python2.7/site-packages/mercurial/revset.pytbranchpoint�s	smin(set)cC@szt|t|�|�}y8|j�}||krOt|gdd||f�SWntk
rcnXtdd||f�S(s2Changeset with lowest revision number in set.
    R`s<min %r, %r>(R!R5R�R6Ra(RRR R^R<((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR�s 
smodifies(pattern)cC@s(t|td��}t|||d�S(s�Changesets 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(R�RR�(RRR R�((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytmodifiess	snamed(namespace)c@s�t|ddtd��}t|dtd��}tj|�\}}}t�}|dkr�|�jkr�tjtd�|��n|j	�j|�n^x9�jj
�D](\}	}||	�r�|j	|�q�q�W|stjtd�|��nt�}
xc|D][}xR|j��D]A}	|	|jkr'|
j
�fd�|j�|	�D��q'q'WqW|
tjh8}
||
@S(	s�The 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 stringR�snamespace '%s' does not exists#no namespace exists that match '%s'c3@s|]}�|j�VqdS(N(R&(R�R=(R(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pys	<genexpr>=s(R�RR�RR�R�tnamesRR'R�R�t	listnamest
deprecatedRtnodesR	R3(RRR R�tnsR�R�R�t
namespacesR�Rh((Rs6/usr/lib64/python2.7/site-packages/mercurial/revset.pytnameds.
	

	
4s
id(string)cC@s;t|ddtd��}t|dtd��}t|�dkr�y|jjtj|��}Wqtj	k
r�tj
}qttfk
r�d}qXnmd}y7tj||�}|dk	r�|jj|�}nWn-tk
r�ntj	k
rtj
}nX|dkr$t�St|g�}||@S(sGRevision non-ambiguously specified by the given hex string prefix.
    isid requires one argumentisid requires a stringi(N(R�RR�RGR@R&R	tbinRR�REtLookupErrort	TypeErrorR(RtresolvehexnodeidprefixR6(RRR R�R=trntpmtresult((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytnode_Bs,


snone()cC@s t|ddtd��t�S(sNo changesets.
    isnone takes no arguments(R�RR6(RRR ((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytnoneass
obsolete()cC@s3t|ddtd��tj|d�}||@S(s'Mutable changeset with a newer version.isobsolete takes no argumentsR
(R�RR�R�(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_t�Sttj	||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. ::<set1> - ::<set2>).
    iisonly takes one or two argumentsitcommonR�(
R@R�RR!R5RGR6R�RR�Rutheadrevstfindmissingrevs(
RRR R�R�RER�R&RFtresults((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytonlyqs	's
origin([set])c@sm|dk	r't�t��|�}nt��}�fd���fd�|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(RK(R&Rtprev(R(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyt	_firstsrc�s	c@sh|]}�|��qS(((R�R)(R(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pys	<setcomp>�s	N(R(R!R5(RRR R�to((RRs6/usr/lib64/python2.7/site-packages/mercurial/revset.pytorigin�s	
soutgoing([path])c@s�ddlm}m}t|ddtd��}|rPt|dtd��pSd}|sed}n|jjj	|dd�}|s�t
jtd	�d
td���n|jp�|j
}|jgf}|j|||g�\}	}
|	rg|	D]}|j|�^q�}	n|j|i|�}|jj�|j||d|	�}
|jj�|j��fd
�|
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 pathRsRsdefault-pushs"default repository not configured!Rhssee 'hg help config.paths't	onlyheadsc@sh|]}�j|��qS((R&(R�R)(R�(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pys	<setcomp>�s	N(sdefault-pushR(RsR�R�R�RR�R(tuitpathstgetpathRR�tpushloctlocR�t
addbranchrevstlookuptpeert
pushbuffertfindcommonoutgoingt	popbufferR@tmissing(RRR R�R�R�tdestR tbranchesRtcheckoutR&tothertoutgoingR�((R�s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR��s*%	%

	s	p1([set])cC@s�|dkrF||j�j�}|dkr?|t|g�@St�St�}|j}xvt|t|�|�D]\}y|j|j	|�d�Wqqt
jk
r�|j||j�dj��qqXqqW|t
jh8}||@S(sAFirst parent of changesets in set, or the working directory.
    iN(R(R�R&R6R�R@R!R5R�R�RR�R�R	R3(RRR RTR�R�R)((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR��s		)s	p2([set])cC@s'|dkro||j�}y8|dj�}|dkrL|t|g�@St�SWqotk
rkt�SXnt�}|j}x�t|t|�|�D]q}y|j	|j
|�d�Wq�tjk
r
||j�}t
|�dkr|j	|d�qq�Xq�W|tjh8}||@S(sBSecond parent of changesets in set, or the working directory.
    iiiN(R(R�R&R6t
IndexErrorR�R@R!R5R�R�RR�RGR	R3(RRR R�RTR�R)R�((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR��s(
		cC@st|||�S(N(R�(RRR R((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyt
parentpostssparents([set])cC@s�|dkr/td�||j�D��}n�t�}|j}|j}|j}xit|t|�|�D]O}y|||��Wqltj	k
r�|d�||j�D��qlXqlW|t
jh8}||@S(sU
    The set of all parents for all changesets in set, or the working directory.
    cs@s|]}|j�VqdS(N(R&(R�RT((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pys	<genexpr>	scs@s|]}|j�VqdS(N(R&(R�RT((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pys	<genexpr>sN(R(R�R�R@RR�R!R5RR�R	R3(RRR R�R�tupR�R)((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR�s#				&cG@s|jj|||�S(s,helper to select all rev in <targets> 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(R�R`R�(RRR R�ttarget((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytphasessdraft()cC@s2t|ddtd��tj}t|||�S(sChangeset in draft phase.isdraft takes no arguments(R�RR
tdraftR�(RRR R�((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR�!s	ssecret()cC@s2t|ddtd��tj}t|||�S(sChangeset in secret phase.issecret takes no arguments(R�RR
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@s�y)t|d�}|dkr(t�nWn,ttfk
rWtjtd���nXt�}|j}x.t|t	|�|�D]}|dkr�|j
|�q�|dkr
y|j
|j|�d�Wq�tjk
r|j
||j
�dj��q�Xq�y:|j|�}|dtjkrC|j
|d�nWq�tjk
r�||j
�}t|�dkr�|j
|dj��q�q�Xq�W||@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(tintRaRqRRRR�R@R!R5R�R�R�R�R&R	R3RG(	RRR R=RR�R�R)R�((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyt
parentspec@s2
		("spresent(set)cC@s6yt||||�SWntjk
r1t�SXdS(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|ddd�t||tjtj�S(Nis_notpublic takes no arguments(R�R�R
R�R�(RRR ((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR�pss"_phaseandancestors(phasename, set)c
@st|ddd�}t|d�}t�t��|d�}tj�tj}i�d6�d6|d6}||kr�tjd|��n||��j	j
����fd	�}tj�|d
|�}	|dkr|	j
���fd��}	n||	@S(Nis)_phaseandancestors requires two argumentsiiR�R�R�s%r is not a valid phasenamec@s��|��kS(N((R&(tgetphasetminimalphaseR(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytcutfunc�sR�c@s��|��kS(N((R)(R�R�R(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRr�Rs(R�R_R!R5R
R�R�RRR�R�RR�R�(
RRR R�t	phasenameRzR�tphasenamemapR�R((R�R�R�Rs6/usr/lib64/python2.7/site-packages/mercurial/revset.pyt_phaseandancestorsvs$		

!spublic()cC@s,t|ddtd��t||tj�S(sChangeset in public phase.ispublic takes no arguments(R�RR�R
tpublic(RRR ((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR��ssremote([id [,path]])cC@s�ddlm}t|ddtd��}d}t|�dkr_t|dtd��}n|dkr~|dj�}nd}t|�dkr�t|dtd	��}n|jj|p�d
�}|j	|�\}}|j
|||g�\}}	|r(g|D]}
|j|
�^q
}n|j|i|�}|j|�}||kr�||j
�}
|
|kr�t|
g�Snt�S(s�Local 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(R�iis(remote takes zero, one, or two argumentsRsremote requires a string idRss!remote requires a repository pathR(RsR�R�RRGR�R�R�t
expandpathtparseurlR�R�R�R&R6(RRR R�R�tqR�R�RR�R&R�R=R)((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytremote�s,%sremoves(pattern)cC@s(t|td��}t|||d�S(s�Changesets 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(R�RR�(RRR R�((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytremoves�s	srev(number)cC@s�t|ddtd��}y#tt|dtd���}Wn,ttfk
rltjtd���nX||jkr�|t	j
t	jfkr�t�S|t|g�@S(s0Revision with the given numeric identifier.
    isrev requires one argumentisrev requires a numbersrev expects a number(
R�RR�R�RqRaRRR@R	R3RER6(RRR R�((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR&�s#'srevset(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.pytrevsetpredicate�ssmatching(revision [, field])c
@s�t|ddtd��}t�t��|d��dg}t|�dkrtt|dtd��j�}ng}xq|D]i}|dkr�|ddd	g7}q�|d
kr�|dd
g7}q�|dkr�d}n|j|�q�Wt|�}d
|kr"d|kr"|j	d
�ndddd	dd
dddd
g
��fd�}t
|�}|jd|�g�i
�fd�d6�fd�d6�fd�d	6�fd�d6�fd�d6�fd�d6�fd�d6�fd�d6�fd�d
6�fd�d
6}xU|D]M}	|j|	d#�}
|
d#krdtjtd�|	��n�j|
�q$W�fd�����fd �}|j|d!d"|�f�S($s�Changesets 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 argumentR�R�R�tdiffR�R�tsummaryR�R�R�tsubstatec@s0y�j|�SWntk
r+t��SXdS(N(tindexRaRG(Rw(t
fieldorder(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytfieldkeyfunc#s
tkeyc@s�|j�S(N(R�(R)(R(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRr0Rsc@s�|j�S(N(R�(R)(R(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRr1Rsc@s�|j�S(N(R�(R)(R(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRr2Rsc@s�|j�S(N(R�(R)(R(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRr3Rsc@s�|j�S(N(R�(R)(R(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRr4Rsc@s�|j�S(N(R�(R)(R(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRr5Rsc@s�|j�S(N(R�(R)(R(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRr6Rsc@s�|jS(N(R�(R)(R(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRr7Rsc@s�|j�j�dS(Ni(R�t
splitlines(R)(R(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRr8Rsc@s0t�|jdtj�jitd6���S(NRitgit(R�R�RtdiffalloptsR�RK(R)(R(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRr9ss,unexpected field name passed to matching: %sc@sg�D]}||�^qS(N((R)Rw(t
getfieldfuncs(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRrFRsc@smxf�D]^}�|�}t}x9t��D]+\}}||||�kr,t}q,q,W|rtSqWtS(N(RKt	enumerateRu(R R&R�RR=Rw(R�tgetinfoR(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR�Hs

R�s<matching%r %r>N(R�RR!R5RGR�tsplitRR�tdiscardR�tsortR�R(RRR�(RRR R�t	fieldlisttfieldsR�R�t_funcstinfotgetfieldR�((R�R�R�RRs6/usr/lib64/python2.7/site-packages/mercurial/revset.pytmatching�sX	

	
sreverse(set)cC@s2t||||�}|tkr.|j�n|S(sReverse order of set.
    (R!RHR_(RRR RR�((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR_Us
s
roots(set)c@sMt|t|�|��|jj���fd�}|�j|dd�@S(s7Changesets in set with no parent changeset in set.
    c@s7x0�|�D]"}d|kr
|�kr
tSq
WtS(Ni(RuRK(R)RT(R�Rz(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR�dsR�s<roots>(R!R5R@R�R�(RRR R�((R�Rzs6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR�^scC@s
|j�S(N(R&(R�((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRrlRsR&cC@s
|j�S(N(R�(R�((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRrmRsR�cC@s
|j�S(N(R�(R�((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRrnRsR�cC@s
|j�S(N(R�(R�((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRroRsR�cC@s
|j�S(N(R�(R�((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRrpRsR�cC@s|j�dS(Ni(R�(R�((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRrqRsR�cC@s�t|dd�}d|kr6tjtd���nd}d|krdt|dtd��}ng}x�|j�D]~}|}|jd�}|r�|d	}n|tkr�|d
kr�tjtd�tj	|���n|j
||f�qwWt|�d	kr9td�|D��r9tjtd
���ni}d|kr�td�|D��rr|d|d<q�tjtd���n|d||fS(s5Parse sort options into (set, [(key, reverse)], opts)R�sset keys topo.firstbranchR�s"sort requires one or two argumentsR&tkeysssort spec must be a stringt-ittoposunknown sort key %rcs@s!|]\}}|dkVqdS(R�N((R�RkR_((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pys	<genexpr>�ss7topo sort order cannot be combined with other sort keysstopo.firstbranchcs@s!|]\}}|dkVqdS(R�N((R�RkR_((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pys	<genexpr>�ss>topo.firstbranch can only be used when using the topo sort key(
RRRRR�R�R�t
_sortkeyfuncsRtbytestrRRGR(R R�R�tkeyflagsRktfkR_Ri((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|kr�t|||d�}nttj||jj	|�dt
�}|ddr|j�n|Sg|D]}	||	^q}
x4t|�D]&\}}|
jdt
|d|�q2Wtg|
D]}
|
j�^qf�S(
s�Sort 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_R�stopo.firstbranchtistopoR�((R�R!RHRGR�R6RttoposortR@R�RKR_treversedR�R&(RRR RRzR�RiRtfirstbranchR)tctxsRkR_R�((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR��s*&		
ssubrepo([pattern])c@s�t|ddtd��}d
�t|�dkrOt|dtd���ntj�j�jdg���fd������fd�}|j|dd	�f�S(s�Changesets 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�(RhRkRTR<R�(R�(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyt
submatches�s
c@s)�|}�j|j�j�|j�d��}�dkrY|jpX|jpX|jS|jr{t�|jj	���S|jr�t
|j�jj	��}|j|jj	��xE�|�D]4}|j�jj|�|jj|�kr�t
Sq�Wn|jr%t�|j�jj	���StS(NR(R�R�R	R(taddedtmodifiedtremovedRR�R�R�RR�RKRu(R R�RztsubsR (R<R�RR�(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR��s
*		*	R�s<subrepo %r>N(	R�RR(RGR�R�texactR�R�(RRR R�R�((R<R�RR�s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytsubrepo�sc@sv|j�j}|j�|j�|j�t��fd�|�fd�|D��D��}tj||jj�S(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((R�R=(tnodemapttorev(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pys	<genexpr>�sc3@s|]}�|�VqdS(N((R�R)(ttonode(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pys	<genexpr>�s(	t
unfilteredR@R&R	R�R�RR6tfilteredrevs(RRzRwR�Ru((R�R�R�s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyt_mapbynodefunc�s			5ssuccessors(set)c@sAt�t��|�}�fd�}t�||�}||@S(s:All successors for set, including the given set themselvesc@stj�j|�S(N(Rt
allsuccessorstobsstore(Rk(R(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRrRs(R!R5R�(RRR RzRwtd((Rs6/usr/lib64/python2.7/site-packages/mercurial/revset.pyt
successorssc@sptj�d|�\}�}|dkrc|sQtj����fd�}qc�fd�}n|�|fS(NR�R�c@s�tj|�kS(N(RR�(Rz(R�(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRrRsc@s
�|kS(N((Rz(R�(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRrRs(RR�RR�(R�R�R�R�((R�s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR�	sstag([name])c@st|ddtd��}|j�|r�t|dtd��}tj|�\}}�|dkr�|jjj|d	�}|d	kr�t
jtd�|��n||j�h}q���fd�|j
�D�}n�fd�|j
�D�}||@S(
s�The 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 stringR�stag '%s' does not existc@s1h|]'\}}�|�r�j|��qS((R&(R�RWR=(R�R�(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pys	<setcomp>+s	c@s1h|]'\}}|dkr�j|��qS(ttip(R&(R�RWR=(R�(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pys	<setcomp>-s	N(R�RR@R�RR�t
_tagscachettagsR�R(RR'R&ttagslist(RRR R�R�R�ttnRz((R�R�s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyttags	

"ttaggedcC@st|||�S(N(R�(RRR ((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR�0ssorphan()cC@s3t|ddtd��tj|d�}||@S(sDNon-obsolete changesets with obsolete ancestors. (EXPERIMENTAL)
    isorphan takes no argumentstorphan(R�RR�R�(RRR R�((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR�4ssuser(string)cC@st|||�S(s�User 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|ddtd��tj|ks7t|t�rGttjg�St�S(s!Working directory. (EXPERIMENTAL)iswdir takes no arguments(R�RR	RER4R5R6(RRR ((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytwdirGsc
C@s)t|d�}|st�S|j}g}t�}x�|jd�D]�}y>t|�}d||ksu||kr~t�n|g}	Wn&tk
r�t|||t�}	nXxg|	D]_}||kr�q�n||ks�|t	j
kr
t|t�r
|j
|�n|j|�q�WqDWt|�S(Nsinternal errorss%d(R�R6R@R�R�R�RaR7RHR	R3R4R5RR�(
RRR RzR�RQtseenRWR)R((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyt_orderedlistPs,			


t_listcC@s:|tkr&|t|t|�|�@St|||�SdS(N(RNR�R5(RRR R((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR�mscC@sst|d�}|st�Sg|jd�D]}t|�^q,}|}tg|D]}||krT|^qT�S(Nsinternal errors(R�R6R�R�(RRR RzR)RQ((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyt_orderedintlistus(t_intlistcC@s:|tkr&|t|t|�|�@St|||�SdS(N(RNR�R5(RRR R((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR�~scC@s�t|d�}|st�S|j}g|jd�D]}|jtj|��^q5}|}tg|D]}||kri|^qi�S(Nsinternal errors(R�R6R@R�R&R	Ro(RRR RzR�R)RQ((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyt_orderedhexlist�s	4t_hexlistcC@s:|tkr&|t|t|�|�@St|||�SdS(N(RNR�R5(RRR R((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR��sR�RBRCRDRLRLtsymboltandt	andsmallytortnott
differencetrelationtrelsubscriptt	subscriptR�tkeyvalueRxR�tparentR�c@s
�fd�S(Nc@stj�|�S(N(Rtisrevsymbol(R�(R(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyRr�Rs((R((Rs6/usr/lib64/python2.7/site-packages/mercurial/revset.pytlookupfn�scC@st||gd|�S(s+Create a matcher for a single revision specR�(tmatchany(R�tspecR�((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR�sc@s3|sd
d�}|St|�s:tjtd���nt|�dkretj|d��}n&ddt�fd�|D��f}g}d
}|r�|j	|j
d��|j}n|r�|j	|j��n|r�tj
||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@st�S(N(R6(RR((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pytmfunc�ssempty queryiiR�R�c3@s!|]}tj|��VqdS(N(Rtparse(R�Rz(R�(s6/usr/lib64/python2.7/site-packages/mercurial/revset.pys	<genexpr>�strevsetaliastwarnN(R�(R(tallRRRRGRRttupleR"tconfigitemsR
Rvt
expandaliasest
foldconcattanalyzetoptimizetmakematcher(R�tspecsR�t
localaliasR
ttreetaliasesR
((R�s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyR�s,
#c@sdd�fd�}|S(s)Create a matcher from an evaluatable treec@sX|dkr*|dkr!t}q*t}n|dkrEt|�}nt||�|�S(N(R(RHRNR5R!(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.pyR�s	cC@sGx@|jj�D]/\}}|t|<|jrtj|�qqWdS(s7Load revset predicates from specified registrarobj
    N(t_tableR�Rtt_safetsafesymbolsR�(R�textnametregistrarobjR�Rx((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyt
loadpredicate�s
	(�t
__future__RR?ti18nRRsRRRRRRRR�R	R
R�RRR
RRRRRRRR�RtutilsRRR_R�R`R2RWR/R�RR6R3RFR5RMRHRNR!R+R0R7R>RBRCRDR8RLRPRQRRRSRXRYRZRfRgRjRmRxRtR�RR�t	predicateR|R�RKR�R�RuR(RaR�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�RbR�R�RRRR
R%RR9R'RR(R)R;RBRCRMRRR�RVRYR}R:RbRcRfR�RgRnRvRwR}R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R&R�R_R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�RRRRRR�t
i18nfunctions(((s6/usr/lib64/python2.7/site-packages/mercurial/revset.pyt<module>sp�												(	
															
									!!		!
%!,	 	!
!
!!-!	B'		5J!
!	!'!
!% !#			!!#!!
q'	






	&,,	
!	!		!		'	
!
	$