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/scmutil.pyc
�
1�3\c@@s�ddlmZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
mZddlm
Z
mZmZmZmZmZmZddlmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$ddl%m&Z&m'Z'ej(rJddlm)Z*ndd	lm+Z*ej,d
�Z-e*j.Z.de/fd��YZ0d
�Z1dd�Z3d�Z4d�Z5d�Z6d�Z7d�Z8de9fd��YZ:d�Z;e<de<d�Z=d�Z>d�Z?d�Z@d�ZAd�ZBd�ZCddd�ZDd�ZEd �ZFd!�ZGd"dd#�ZHd$�ZId%�ZJdd&�ZKd'�ZLd(�ZMdZde<d)dd*�ZNd[de<d)dd+�Zd,�ZOdd-�ZPd.�ZQd/�ZRd0e9fd1��YZSdde<deTd2�ZUdd3�ZVd4d5�ZWd6�ZXd7�ZYd8�ZZe<dd9�Z[d:�Z\d;e9fd<��YZ]d=e9fd>��YZ^d?e9fd@��YZ_dA�Z`ddB�ZadC�ZbdDe9fdE��YZcdF�ZddG�ZedHe9fdI��YZfdJdKdLdMdNgZgdKdNgZhdO�Zie#jj�ZkeTZldPdQ�ZmdR�ZndSdT�ZodU�ZpdV�ZqdW�ZrdX�ZsdY�ZtdS(\i(tabsolute_importNi(t_(tbinthextnullidtnullrevtshorttwdiridtwdirrev(tencodingterrortmatchtobsoletetobsutiltpathutiltphasestpolicytpycompatt
revsetlangtsimilartsmartsetturltutiltvfs(tprocutilt
stringutil(t
scmwindows(tscmposixtparserststatuscB@s�eZdZd
Zd�Zed��Zed��Zed��Zed��Z	ed��Z
ed��Zed��Zd	�Z
RS(s�Named tuple with a list of files per status. The 'deleted', 'unknown'
       and 'ignored' properties are only relevant to the working copy.
    c	C@s%tj||||||||f�S(N(ttuplet__new__(tclstmodifiedtaddedtremovedtdeletedtunknowntignoredtclean((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyREscC@s|dS(sfiles that have been modifiedi((tself((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyR!JscC@s|dS(sfiles that have been addedi((R(((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyR"OscC@s|dS(sfiles that have been removedi((R(((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyR#TscC@s|dS(sofiles that are in the dirstate, but have been deleted from the
           working copy (aka "missing")
        i((R(((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyR$YscC@s|dS(s.files not in the dirstate that are not ignoredi((R(((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyR%`scC@s|dS(s<files not in the dirstate that are ignored (by _dirignore())i((R(((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyR&escC@s|dS(s!files that have not been modifiedi((R(((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyR'jscO@sdtd�|D��S(NsX<status modified=%s, added=%s, removed=%s, deleted=%s, unknown=%s, ignored=%s, clean=%s>cs@s'|]}tjtj|��VqdS(N(RtsysstrRtpprint(t.0tv((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pys	<genexpr>rs(R(R(targstkwargs((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyt__repr__os((t__name__t
__module__t__doc__t	__slots__RtpropertyR!R"R#R$R%R&R'R/(((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyR>s	cc@s�tj|j|�}|jtj|j|��t�}x7|jD],}||jkrD||=|j|�qDqDWx4t|j��D] \}}||j|�fVq�Wx%|D]}||j	||�fVq�WdS(sfind subrepos in ctx1 or ctx2N(
tdicttfromkeystsubstatetupdatetsettaddtsortedt	iteritemstsubtnullsub(tctx1tctx2tsubpathstmissingtsubpathtctx((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pytitersubreposts	
cC@s�g}|r\xM|D]B}||}|j�tjkr|j�r|j|�qqWn|r�|jtd�t|��n|jtd��dS(sjReport no changes for push/pull, excluded is None or a list of
    nodes excluded from the push/pull.
    s0no changes found (ignored %d secret changesets)
sno changes found
N(tphaseRtsecrettextincttappendRRtlen(tuitrepotexcludedt
secretlisttnRD((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pytnochangesfound�s

"cC@s
y&y|�SWn|j��nXWn�tjk
r�}|jtjkrltd�tj|j�}ntd�|j}|jtd�|j	p�t
j|j�|f�|js	|jtd��q	n6tj
k
r&}|jtd�|j	pt
j|j�tj|j�f�n�tjk
r�}|jrPtd�}ntd�}|j|�|jr�|jdj|j��n|jr	|jd	|j�q	nXtjk
r}|jtd
�|�|jr	|jtd	�|j�q	ntjk
r�}|jtd�|jd�|jd
}t|td��rgtj|�}nt|t�s�|jd|f�q	|s�|jtd��q	|jdtjt
j|���n:tjk
r�}|jtd�|�ntjk
r'}|jtd
�|�n�tjk
rt}|jd|�|jrp|jtd	�|j�nd
Stjk
r�|jtd��notj k
r�}|jtd�|�|jr	|jtd	�|j�q	nt!k
r�}|jtd
�t
j|��t
j|�j"�d}|dj"�kr\|jtd��q	|dj"�kr	|jtd��q	n�t#k
r}t$j%|d�r�|jtd�t
j|��q	t$j%|d�rRy|j&jd
}Wn t't(fk
r|j&}nXt|tj)�r8tj*|�}n|jtd�|�q	t$j%|d�r�|jr�|jdtj+kr�q	t,|dd#�rt,|d d#�r�|jtd�tj|j�t
j|j�f�q|jtd�tj|j��q	�n�t.k
r�}t,|d d#�d#k	rm|jtd!�tj|j�t
j|j�f�q	|jtd�tj|j��nvt/k
r�|jtd"��nSt0k
r�}|j1St2jk
r}|jtd�t
j|jd��nXdS($s�call func() with global exception handling

    return func() if no exception happens. otherwise do some error handling
    and return an exit code accordingly. does not handle all exceptions.
    s%timed out waiting for lock held by %rslock held by %rsabort: %s: %s
s(lock might be very busy)
sabort: could not lock %s: %s
sabort: remote error:
sabort: remote error
ts(%s)
sabort: %s!
s	abort: %siius %r
s empty string
s
%r
sabort: file censored %s!
s%s
s6abort: working directory revision cannot be specified
s
abort: %s
i����smpatch bdiffs((did you forget to compile extensions?)
tzlibs"(is your Python install correct?)
tcodetreasonsabort: error: %s
R-tstrerrortfilenamesabort: %s: '%s'
sabort: out of memory
N(3t	tracebackR
tLockHeldterrnot	ETIMEDOUTRRtbytestrtlockertdescRtforcebytestrRVtLockUnavailableR	t
strtolocalRUtOutOfBandErrorR-tjointhintt	RepoErrort
ResponseErrort
isinstancettypetsysbytestbytestellipsistCensoredNodeErrortStorageErrortInterventionRequiredtWdirUnsupportedtAborttImportErrortsplittIOErrorRtsafehasattrRTtAttributeErrort
IndexErrortunicodet
unitolocaltEPIPEtgetattrtNonetOSErrortMemoryErrort
SystemExitRStsocket(RKtfunctinstRTtmsgtm((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyt	callcatch�s�
	#		
			 
&		  #
&&
+cC@s�|dkr(tjtd�|��nx?d
D]7}||kr/tjtd	�tj|���q/q/Wy#t|�tjtd
���Wntk
r�nX|j�|kr�tjtd�|��ndS(Nttipt.tnullsthe name '%s' is reservedt:ss
s
s%r cannot be used in a namescannot use an integer as a names)leading or trailing whitespace in name %r(R�R�R�(R�ss
s
(R
RoRRR[tintt
ValueErrortstrip(RLtlbltkindtc((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyt
checknewlabels
#

cC@sAd|ksd|kr=tjtd�tj|���ndS(sFCheck that the filename f is an acceptable filename for a tracked files
s
s)'\n' and '\r' disallowed in filenames: %rN(R
RoRRR[(tf((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyt
checkfilename%scC@s�t|�t|�\}}|s(|r�tj|�}|r�d|tj|�f}|rntj|��n|jt	d�|�q�ndS(sECheck if filename f is portable and warn or abort depending on configs%s: %sswarning: %s
N(
R�tcheckportabilityalertRtcheckwinfilenameRt
shellquoteR
RotwarnR(RKR�tabortR�R�((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyt
checkportable+s
cC@s�|jdd�}|j�}tj|�}tjp?|dk}|pQ|dk}|dkr�|pu|pu|dkr�tjt	d�|��n||fS(s_check if the user's config requests nothing, a warning, or abort for
    non-portable filenamesRKtportablefilenamesR�R�tignores,ui.portablefilenames value is invalid ('%s')N(
tconfigtlowerRt	parseboolRt	iswindowsRzR
tConfigErrorR(RKtvaltlvaltbvalR�R�((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyR�7s%tcasecollisionauditorcB@seZd�Zd�ZRS(cC@s^||_||_dj|j�}ttj|�jd��|_||_	t�|_
dS(Ns(t_uit_abortRbt_mapR9R	R�Rqt
_loweredfilest	_dirstatet	_newfiles(R(RKR�tdirstatetallfiles((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyt__init__Es		!	cC@s�||jkrdStj|�}||jkr�||jkr�td�|}|jrktj|��n|j	j
td�|�n|jj|�|jj|�dS(Ns&possible case-folding collision for %sswarning: %s
(R�R	R�R�R�RR�R
RoR�R�R:(R(R�tflR�((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyt__call__Ps	(R0R1R�R�(((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyR�Ds	c@s�|j}|jsdSd}t�fd�|jD��}|r~tj�}x|D]}|jd|�qTW|j�}n|S(s�build hash of filtered revisions in the current repoview.

    Multiple caches perform up-to-date validation by checking that the
    tiprev and tipnode stored in the cache file match the current repository.
    However, this is not sufficient for validating repoviews because the set
    of revisions in the view may change without the repository tiprev and
    tipnode changing.

    This function hashes all the revs filtered from the view and returns
    that SHA-1 digest.
    c3@s!|]}|�kr|VqdS(N((R+tr(tmaxrev(s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pys	<genexpr>lss%d;N(t	changelogtfilteredrevsRzR;thashlibtsha1R8tdigest(RLR�tcltkeytrevststrev((R�s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pytfilteredhash\s		
c#@s��fd�}ttjdd��|rH�dk	rH�fd�}nt}|dkrv|rvg}||��nx:tj�dtd|�D]\}}}|j�d|kr|Vtjj|dd�}	tjj	tjj|	d��r�|	Vn|r|j
d�q�g|(q�|r�g}
xy|D]q}tjj||�}|||�r0tjj|�r�x/t|t|�D]}
|
VqWq�|
j
|�q0q0W|
|(q�q�WdS(	s�yield every hg repository under path, always recursively.
    The recurse flag will only control recursion into repo working dirsc@s|j�kr|�ndS(N(RV(terr(tpath(s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyt
errhandlerwstsamestatc@sItj|��t��fd�|D��}|sD|j��n|S(Nc3@s|]}��|�VqdS(N((R+t
lstdirstat(tdirstatR�(s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pys	<genexpr>~s(toststattanyRI(tdirlsttdirnameR(R�(R�s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pytadddir|s
ttopdowntonerrors.hgtpatchesN(RyR�R�RztFalsetwalktTruetsortRbtisdirtremovetislinkt	walkreposRI(R�t	followsymt	seen_dirstrecurseR�R�troottdirstfilestqroottnewdirstdtfnamethgname((R�R�s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyR�ts8+
!

cC@s |j�}|dkrtS|S(s)Return binary node id for a given basectxN(tnodeRzR(RDR�((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pytbinnode�scC@s |j�}|dkrtS|S(s]Return integer for a given basectx that can be used in comparison or
    arithmetic operationN(R�RzR(RDR�((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pytintrev�scC@s+|j�}t|jt|�t|��S(szFormat changectx as '{rev}:{node|formatnode}', which is the default
    template provided by logcmdutil.changesettemplater(RLt
formatrevnodeRKR�R�(RDRL((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pytformatchangeid�scC@s,|jrt}nt}d|||�fS(sAFormat given revision and node depending on the current verbositys%d:%s(t	debugflagRR(RKR�R�thexfunc((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyR��s		cC@sO|jd�r1|jjdd�r1|d}ny|j�jj|�}Wn�tjk
r*|jjdd�}|r$idd6}|jj
|���|j|gdt�}g}xE|D]=}|jj
|�}t|�j|�r�|j|�q�q�Wt|�dkr|dSWdQXn�nX|dkr;dS|jj|�|S(	Ntxtexperimentalsrevisions.prefixhexnodeisrevisions.disambiguatewithintuseri(R�srevisions.disambiguatewithin(t
startswithRKt
configboolt
unfilteredR�t
_partialmatchR
tAmbiguousPrefixLookupErrorR�RztconfigoverridetanyrevsR�R�RRIRJR�(RLtprefixR�trevsettconfigoverridesR�tmatchesR�((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pytresolvehexnodeidprefix�s0


cC@sbyIt|�}|dkr.|dd!dks@|t|�krDtStSWntk
r]tSXdS(s@Checks if the given prefix may be mistaken for a revision numbert0iiN(R�RJR�R�R�(RLR�ti((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pytmayberevnum�s1
c@swt|d�}��fd�}�j�j}�jjdd�}|r6d}|dk	ro|jd�}n|dkr��j|gdt�}|dk	r�||d<q�n|j	��|kr6t
��}d}	|dk	r�|jd�}	n|	sgytj|j
t|��}	Wntk
r,qgXx|D]}
|	j|
�q4W|dk	rg|	|d<qgn|	dk	r�t|	j��|�}|| }||�Sx�t|t|�d�D]s}g}
|| }x>|D]6}�|j
�}||| kr�|
j|�q�q�Wt|
�dkr�||�Sq�Wq6ny||j�|��SWn tjk
rrtj��nXdS(	s�Find the shortest unambiguous prefix that matches hexnode.

    If "cache" is not None, it must be a dictionary that can be used for
    caching between calls to this method.
    ic@s��jjdd�r3t�|�r,d|S|Snt��}xDtt|�t|�d�D]#}|| }t�|�s_|Sq_WdS(sDisambiguate against revnums.R�srevisions.prefixhexnodeR�iN(RKR�R�RtrangeRJ(R�thexnodetlength(R�RL(s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pytdisambiguate�s&
R�srevisions.disambiguatewithintdisambiguationrevsetR�tdisambiguationnodetreeN(tmaxR�R�RKR�RztgetR�R�R�RRtnodetreetindexRJRttinserttshortestR�RIR
tLookupErrortRepoLookupError(RLR�t	minlengthtcacheR�R�R�R�R�R�R�R�R�R�R�totherhexnode((R�RLs7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pytshortesthexnodeidprefix�sV




 

cC@s1yt||�tSWntjk
r,tSXdS(s�Checks if a symbol exists in the repo.

    See revsymbol() for details. Raises error.AmbiguousPrefixLookupError if the
    symbol is an ambiguous nodeid prefix.
    N(t	revsymbolR�R
RR�(RLtsymbol((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pytisrevsymbol/s

cC@s]t|t�s7d|t|�f}tj|��ny�|d
krN||Sy�t|�}d||krvt�nt|j�}|dkr�||7}n|dks�||kr�|t	kr�t�n||SWn0tj
k
r��ntttfk
rnXt|�dkrvy*t
|�}|jj|�}||SWqvtjk
r\�qvttfk
rrqvXny3|jj||�}|jj|�}||SWntk
r�nXt||�}|d	k	r�|jj|�}||Stjtd�|��WnJtjk
r'|d	Stj
tjtjfk
rXt||��nXd	S(s�Returns a context given a single revision symbol (as string).

    This is similar to revsingle(), but accepts only a single revision symbol,
    i.e. things like ".", "tip", "1234", "deadbeef", "my-bookmark" work, but
    not "max(public())".
    sCsymbol (%s of type %s) was not a string, did you mean repo[symbol]?R�R�R�s%dii(sunknown revision '%s'N(R�R�R�(RfRiRgR
tProgrammingErrorR�R�RJR�RtFilteredIndexErrort
OverflowErrorRuRR�tFilteredLookupErrort	TypeErrorRtnamest
singlenodetKeyErrorR�RzRRRntFilteredRepoLookupErrort_filterederror(RLRR�R�tlR�R�((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyR;s\	
$	

cC@s�|jjd�r�|j�}t||�}|j�rQtj|||�}ntd�|}td�}tj	|d|�Std�}|||jf;}tj	|�S(s�build an exception to be raised about a filtered changeid

    This is extracted in a function to help extensions (eg: evolve) to
    experiment with various message variants.tvisibleshidden revision '%s's'use --hidden to access hidden revisionsRcs+filtered revision '%s' (not in '%s' subset)(
t
filternameR�R�RRR
t_getfilteredreasonRR
R(RLtchangeidtunfilteredrepoRDR�Rc((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyRxsR�cC@s_|r|dkr||St||gd|�}|sQtjtd���n||j�S(Nit
localaliassempty revision set(trevrangeR
RoRtlast(RLtrevspectdefaultRR((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyt	revsingle�scC@s#tj|�}|o"|ddkS(NiR�trangepret	rangeposttrangeall(R�R R!R"(Rtparse(Rttree((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyt	_pairspec�sc@sj|s�d�dfSt�|�}|s:d}}nf|j�ra|j�}|j�}n?|j�r�|j�}|j�}n|j�}|j�}|dkr�tj	t
d���n||krt|�dkrt�fd�|D��rtj	t
d���n||krXt|�dkrXt
|d�rX�|�dfS�|�|fS(NR�sempty revision rangeic3@s!|]}t�|g�VqdS(N(R(R+R�(RL(s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pys	<genexpr>�ss#empty revision on one side of rangeii(RzRtisascendingtminR�tisdescendingtfirstRR
RoRRJtallR%(RLR�RR)tsecond((RLs7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pytrevpair�s*
/cC@sag}x?|D]7}t|t�r7tjd|�}n|j|�q
W|j|dtd|�S(sExecute 1 to many revsets and return the union.

    This is the preferred mechanism for executing revsets using user-specified
    config options, such as revset aliases.

    The revsets specified by ``specs`` will be executed via a chained ``OR``
    expression. If ``specs`` is empty, an empty result is returned.

    ``specs`` can contain integers, in which case they are assumed to be
    revision numbers.

    It is assumed the revsets are already formatted. If you have arguments
    that need to be expanded in the revset, call ``revsetlang.formatspec()``
    and pass the result as an element of ``specs``.

    Specifying a single revset is allowed.

    Returns a ``revset.abstractsmartset`` which is a list-like interface over
    integer revisions.
    srev(%d)R�R(RfR�Rt
formatspecRIR�R�(RLtspecsRtallspecstspec((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyR�s
cC@sh|j�}t|�dkr"|S|jjr@|d|tgS|dj�t|�dkrdgS|S(s�Return list of meaningful (or all if debug) parentrevs for rev.

    For merges (two non-nullrev revisions) both parents are meaningful.
    Otherwise the first parent revision is considered meaningful if it
    is not the preceding revision.
    ii(tparentsRJRKR�RR�R�(RLRDR1((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pytmeaningfulparents�s cC@s�tjst|�Sg}x�|D]�}tj|d�\}}|dkr�ytj|�}Wntjk
r||g}nX|r�|j	|�q q�n|j
|�q W|S(siExpand bare globs when running on windows.
    On posix we assume it already has already been done by sh.N(Rtexpandglobstlisttmatchmodt	_patsplitRztglobtreR
textendRI(tpatstrettkindpatR�tpattglobbed((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyt
expandpats�s	



	trelpathc	@s�|d	krg}n|d
kr*i}n|rR|dkrRt|pIg�}n��fd�}|d
kry|}n�j||jd�|jd�|d|jd�d|���j�r�g}n�|fS(s�Return a matcher and the patterns that were used.
    The matcher will warn about bad matches, unless an alternate badfn callback
    is provided.RQR@c@s-�j�jjd�j|�|f�dS(Ns%s: %s
(RLRKR�trel(R�R�(RDR�(s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pytbadstincludetexcludetlistsubrepostsubrepostbadfn(RQN(RzR?RR�talways(RDR:toptsR>RRGRB((RDR�s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pytmatchandpats�s			!	cC@s t|||||d|�dS(s2Return a matcher that will warn about bad matches.RGi(RJ(RDR:RIR>RRG((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyRscC@stj|j|j��S(s8Return a matcher that will efficiently match everything.(R5RHR�tgetcwd(RL((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pytmatchallscC@s"tj|j|j�|d|�S(sAReturn a matcher that will efficiently match exactly these files.RG(R5texactR�RK(RLR�RG((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyt
matchfilesscC@s�tj|�s+tj|j|j�|�S||}tj|j|j�|gd|�}g|D]}||�rc|^qc}t|�dkr�tj	|��n|dSdS(sWReturn a file name from `pat` pattern suitable for usage in followlines
    logic.
    RDiiN(
R5tpatkindRt	canonpathR�RKRRJR
t
ParseError(RLR�R=R�RDR�R�R�((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pytparsefollowlinespattern!s
'%cC@s�|jdd�}|s |dStjtjj|d|j��}tj|j|��}|j	|�}|j
|�s�|j|�r |jt
d�|j|��xctttj|���D]F}|j|�r�|jt
d�|j|��|j|�Pq�q�W|j|�n|j
|�ru|j|�ru|jt
d�|j|��|j|dt�n|j|�S(	s�customize where .orig files are created

    Fetch user defined path from config file: [ui] origbackuppath = <path>
    Fall back to default (filepath with .orig suffix) if not specified
    RKtorigbackuppaths.origtstartscreating directory: %s
sremoving conflicting file: %s
s#removing conflicting directory: %s
tforcibly(R�RtnormpathR�R�R@R�RtwjoinR�R�R�tnoteRRbtreversedR4tfinddirstisfileorlinktunlinktmakedirstrmtreeR�(RKRLtfilepathRStfilepathfromroottorigvfst
origbackupdirR�((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pytorigpath/s* "
t
_containsnodecB@s eZdZd�Zd�ZRS(sEproxy __contains__(node) to container.__contains__ which accepts revscC@s|jj|_|j|_dS(N(R�R�t_torevt__contains__t_revcontains(R(RLtrevcontainer((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyR�VscC@s|j|j|��S(N(RgRe(R(R�((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyRfZs(R0R1R2R�Rf(((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyRdSs	c,@s:|s|dkst�|r*|r*dStj|d�sOd�|D�}nNi}x?|j�D]1\}	}
t|	t�s�|	f}	n|
||	<qbW|}|dkr�i}n|j��x�|j�D]�\}}x�|D]�}
|
|kr�q�nt|�dkr)t	�j
d|��j�}n}t|�dkr�g}x|D]}|j|�qHWt
�j
d|
|��}|r�|dj�}q�t}n
|d}|||
<q�Wq�Wg|j�D]}|D]}|^q�q�}i}i}|rui}xU|j�D]G\}}x8|D]0}
x'|D]}|j|g�j|
�q)WqWq	W|jd�fd	��i��fd
��x�|D]�}�|}t�fd�|j�D��}|dkr�t�fd�||D��}t||�}nt||�}|�|<||j�kr@|j|g�j|�q�||j�kr�|j|g�j|�q�q�Wn|jd
���}|j}g}x�|j�D]�\}
}|j|
�}|s�q�nddlm} |jjdtjtj|�t |
�t |�f�|j!d|||
�}!t"||!�}"xT|D]L}#|j|#|f�x0| j#||"|#�D]}$|j|$df�qoWq@Wq�W|r�|j$|||�nx0|j�D]"\�}%t%j&||�|%�q�Wx0|j�D]"\�}%t%j'||�|%�q�Wt(j)|t(j*�r��j+j,��fd�}&g}'xkt-|j�d|&�D]Q\}}(t�fd�|D��t�fd�|(D��f})|'j|)�qeW|'r0t(j.||'d|d|�q0nNddlm/}*t
d�|D��}+|+r0|*j0|j||+|d|�nWdQXdS(s�do common cleanups when old nodes are replaced by new nodes

    That includes writing obsmarkers or stripping nodes, and moving bookmarks.
    (we might also want to move working directory parent in the future)

    By default, bookmark moves are calculated automatically from 'replacements',
    but 'moves' can be used to override that. Also, 'moves' may include
    additional bookmark moves that should not have associated obsmarkers.

    replacements is {oldnode: [newnode]} or a iterable of nodes if they do not
    have replacements. operation is a string, like "rebase".

    metadata is dictionary containing metadata to be stored in obsmarker if
    obsolescence is enabled.
    NtitemscS@si|]}d|f�qS((((R+RO((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pys
<dictcomp>ts	ismax(%ln)ismax((::%n) - %ln)R�c@s�|j�S(N(R�(RO(tunfi(s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyt<lambda>�RQc@s�j|j�|j��S(N(R�R�RF(RD(t	newphases(s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyRF�sc3@s|]}�|�VqdS(N((R+tp(RF(s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pys	<genexpr>�sc3@s|]}�|j�VqdS(N(RF(R+toldnode(Rj(s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pys	<genexpr>�stcleanup(t	bookmarkss"moving bookmarks %r from %s to %s
s*parents(roots(%ln & (::%n))) - parents(%n)c@s�|dd�S(Ni((tns(ttorev(s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyRk�RQc3@s|]}�|VqdS(N((R+RO(Rj(s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pys	<genexpr>�sc3@s|]}�|VqdS(N((R+R�(Rj(s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pys	<genexpr>�st	operationtmetadata(trepaircs@s"|]}|D]}|Vq
qdS(N((R+RqRO((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pys	<genexpr>�stbackup(1RztAssertionErrorRRsRiRfRR�RJtnextR9R�R9R4Rtvaluest
setdefaultRIR�R�R1RFttransactiont
_bookmarkst
nodebookmarksRQRpRKtdebugRtrapplytmaybebytestrRR�Rdtdivergent2deletetapplychangesRtretractboundarytadvanceboundaryRt	isenabledtcreatemarkersoptR�R�R;t
createmarkersRutdelayedstrip(,RLtreplacementsRstmovesRttfixphasettargetphaseRvtreplsR�tvaluetoldnodestnewnodesRntnewnodetallreplacedtreptrootsRqROtallnewnodest	toretractt	toadvancet
precursorsRDtparentphasetoldphasetnewphasettrtbmarkstbmarkchangest	oldbmarksRpt
deleterevstdeletenodestnametbtnodestsortfunctrelsR�RARuttostrip((RlRFRrRjs7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pytcleanupnodes]s�	
!
	
,

%

"
#		
%8
c@s|dkri}n|�|jd�}yt|jd�pBd�}Wn&tk
rqtjtd���nX|dks�|dkr�tjtd���n|d:}d}�fd�}|d}x�t|j�D]�}	t	j
|	��}
|jd	�s#�j|	�s#t|
j
��r�|j|	�}y"|j|
�|�rSd
}nWq�tjk
r�|jjtd�||	��q�Xq�q�Wg���fd�}t	j�|�}
t||
�\}}}}}t||�}|j�}|j|�x�t|�D]�}|jjs2�j|�r||kr`td
��j|�}d}ntd��j|�}d}|jj|d|�qqWt|�|||||�}|s�t|||||�nx$�D]}|�j
�kr�d
Sq�W|S(Ntdry_runt
similarityissimilarity must be a numberids$similarity must be between 0 and 100gY@c@stjj�|�S(N(R�R�Rb(R�(R�(s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyRk�RQRFis#skipping missing subrepository: %s
c@s6|�j�kr%�j||�n�j|�dS(N(R�RBRI(R�R�(R�trejected(s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyRGss
adding %s
sui.addremove.addedsremoving %s
sui.addremove.removedtlabel(RzR�tfloatR�R
RoRR;R7R5t
subdirmatcherRMR�R�R=t	addremoveRRKRtbadmatcht_interestingfilesR9tcopyR8tverbosetuipatht_findrenamest_markchanges(RLtmatcherR�RIR�R�R;RbtwctxRCtsubmatchR=RGR�R"R%R$R#t	forgottent
unknownsetttoprinttabsRR�trenamesR�((R�R�R�s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyR��s`	


0

		
gc@s2t||d�fd��}g�t||�\}}}}}|jjr�t||�}	|	j�}
|
j|�xVt|
�D]E}||	kr�td�|}ntd�|}|jj	|�q�Wnt
|||||||�}
t|||||
�x$�D]}||j�krdSqWdS(s[Assert that files have somehow been operated upon. files are relative to
    the repo root.RGc@s
�j|�S(N(RI(R�ty(R�(s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyRk,RQs
adding %s
sremoving %s
ii(
RNR�RKR�R9R�R8R;RRR�R�R�(RLR�R�R�R"R%R$R#R�R�R�R�RR�R�((R�s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pytmarktouched)s&
	
c
C@s}gggggf\}}}}}tj|jdt�}|d
}|j}	|j|dt�}|	j|dt|j	�dtdt
dt
�}
x�|
j�D]�\}}|	|}
|
dkr�|j|�r�|j
|�q�|
dkr|r|j
|�q�|
dkr'|r'|j
|�q�|
dkrJ|rJ|j
|�q�|
d	kr�|j
|�q�q�W|||||fS(s�Walk dirstate with matcher, looking for files that addremove would care
    about.

    This is different from dirstate.status because it doesn't care about
    whether files are modified or clean.tcachedtincludeexactRFR%R&tfullt?R�taN(RtpathauditorR�R�RzR�tnarrowmatchR�R;R7R�R<tcheckRI(RLR�R"R%R$R#R�t
audit_pathRDR�twalkresultsR�tsttdstate((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyR�Fs($
	
c	C@s�i}|dkr�x�tj||||�D]�\}}}|jjsf|j|�sf|j|�r�|jjtd�|j|�|j|�|df�n|||<q+Wn|S(s.Find renames from removed files to added ones.is7recording removal of %s as rename to %s (%d%% similar)
id(RtfindrenamesRKR�RMRRRA(	RLR�R"R#R�R�toldtnewtscore((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyR�dscC@sh|d}|j��L|j|�|j|�x*|j�D]\}}|j||�q>WWdQXdS(smMarks the files in unknown as added, the files in deleted as removed,
    and the files in renames as copied.N(RztwlocktforgetR:R<R�(RLR%R$R�R�R�R�((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyR�ss



cC@s|jj|�p|}||krT|j|dkr�|r�|jj|�q�n�|j|dkr�||kr�|js�|jtd�|j||�|j||�f�n|j|dkr�|r�|j|g�q�n|s�|j||�ndS(s�Update the dirstate to reflect the intent of copying src to dst. For
    different reasons it might not end with dst being marked as copied from src.
    tmnR�sF%s has not been committed yet, so no copy data will be stored for %s.
s?rN(	R�tcopiedtnormallookuptquietR�RtpathtoR:R�(RKRLR�tsrctdsttdryruntcwdtorigsrc((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pytdirstatecopy}s	)cC@sD|dd��/}x%t|�D]}|jd|�qWWdQXdS(Ntrequirestws%s
(R;twrite(topenertrequirementstfpR�((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyt
writerequires�stfilecachesubentrycB@s;eZd�Zd�Zd�Zd�Zed��ZRS(cC@sd||_d|_d|_|r`tj|j�|_|jrT|jj�|_q`d|_ndS(N(R�Rzt	cachestatt
_cacheableR�R�t	cacheable(R(R�R�((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyR��s				cC@s(|j�r$tj|j�|_ndS(N(R�R�R�R�R�(R(((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pytrefresh�scC@s|jdk	r|jStS(N(R�RzR�(R(((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyR��scC@sz|j�stStj|j�}|rV|jdkrV|j�|_|jsVtSn|j|krr||_tStSdS(N(	R�R�R�R�R�R�RzR�R�(R(tnewstat((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pytchanged�s		cC@sCytj|�SWn+tk
r>}|jtjkr?�q?nXdS(N(RR�R{RYtENOENT(R�te((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyR��s
(R0R1R�R�R�R�tstaticmethodR�(((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyR��s
				tfilecacheentrycB@s&eZed�Zd�Zd�ZRS(cC@s7g|_x'|D]}|jjt||��qWdS(N(t_entriesRIR�(R(tpathsR�R�((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyR��s	
cC@s(x!|jD]}|j�r
tSq
WtS(strue if any entry has changed(R�R�R�R�(R(tentry((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyR��scC@s"x|jD]}|j�q
WdS(N(R�R�(R(R�((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyR��s(R0R1R�R�R�R�(((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyR��s	t	filecachecB@sGeZdZd�Zd�Zd�Zdd�Zd�Zd�Z	RS(s�A property like decorator that tracks files under .hg/ for updates.

    On first access, the files defined as arguments are stat()ed and the
    results cached. The decorated function is called. The results are stashed
    away in a ``_filecache`` dict on the object whose method is decorated.

    On subsequent access, the cached result is returned.

    On external property set operations, stat() calls are performed and the new
    value is cached.

    On property delete operations, cached data is removed.

    When using the property API, cached data is always returned, if available:
    no stat() is performed to check if the file has changed and if the function
    needs to be called to reflect file changes.

    Others can muck about with the state of the ``_filecache`` dict. e.g. they
    can populate an entry before the property's getter is called. In this case,
    entries in ``_filecache`` will be used during property operations,
    if available. If the underlying file changes, it is up to external callers
    to reflect this by e.g. calling ``delattr(obj, attr)`` to remove the cached
    method result as well as possibly calling ``del obj._filecache[attr]`` to
    remove the ``filecacheentry``.
    cG@s
||_dS(N(R�(R(R�((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyR��scC@s
t�dS(sUsed to compute the runtime path of a cached file.

        Users should subclass filecache and provide their own version of this
        function to call the appropriate join function on 'obj' (an instance
        of the class that its member function was decorated).
        N(tNotImplementedError(R(tobjR�((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyRb�scC@s.||_|j|_tj|j�|_|S(N(RR0tsnameRRhR�(R(R((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyR�s	cC@s|dkr|S|j|jkrQ|j|jksCt|j��|j|jS|jj|j�}|r�|j�r�|j|�|_	q�nYg|j
D]}|j||�^q�}t|t
�}|j|�|_	||j|j<|j	|j|j<|j	S(N(RzR�t__dict__R�t
_filecacheRwR�R�RR�R�RbR�R�(R(R�RgR�R�R�((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyt__get__
s!(cC@s�|j|jkr\g|jD]}|j||�^q}t|t�}||j|j<n|j|j}||_||j|j<dS(N(	R�R�R�RbR�R�R�R�R�(R(R�R�R�R�tce((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyt__set__%s(	cC@s8y|j|j=Wn tk
r3t|j��nXdS(N(R�R�RRt(R(R�((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyt
__delete__2s
N(
R0R1R2R�RbR�RzR�R�R�(((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyR��s					
c

C@s�|jjd|�}|s7tjtd�|��ni}d}}z,|jd�r�|d}tjt	j
|�dtdddt	jd	tj
d
t	j
|j��}|j}ntj|j|�}x�|D]�}d|kr|j�jdd�\}}	n|j�d
}}	tj|�}y&tj|	�|t||�j�<Wq�tjtjfk
rmq�Xq�WWd|r�|j�n|r�|j�nX|r�|jdkr�tjtd�|t	j|j�f��n|S(skGather a map of rev -> value dict from the specified source

    A source spec is treated as a URL, with a special case shell: type
    for parsing the output from a shell command.

    The data is parsed as a series of newline-separated records where
    each record is a revision specifier optionally followed by a space
    and a freeform string value. If the revision is known locally, it
    is converted to a rev, otherwise the record is skipped.

    Note that both key and value are treated as UTF-8 and converted to
    the local encoding. This allows uniformity between local and
    remote data sources.
    textdatasunknown extdata source '%s'sshell:itshelltbufsizei����t	close_fdststdoutR�t iRQNisextdata command '%s' failed: %s(RKR�R
RoRRzR�t
subprocesstPopenRttonativestrR�tclosefdstPIPER�RRtopenR�RqR	ttolocalRR�RRtcommunicatetcloset
returncodetexplainexit(
RLtsourceR0tdataR�tproctcmdRtkR,((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyt
extdatasource8s@

		
!&
c
O@sr|dkrtjd��n|dkr3i}n|j��-}|||<|jj|d|||�SWdQXdS(Ns%lock can only be inherited while heldtenviron(RzR
t LockInheritanceContractViolationtinheritRKtsystem(RLtlocktenvvarRRR-R.R\((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyt_locksubqs	
cO@st||j�d|||�S(s�run cmd as a subprocess that allows inheriting repo's wlock

    This can only be called while the wlock is held. This takes all the
    arguments that ui.system does, and returns the exit code of the
    subprocess.tHG_WLOCK_LOCKER(Rtcurrentwlock(RLRR-R.((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pytwlocksub{stprogresscB@s\eZdd	d�Zd�Zd�Zdd	d�Zddd	d�Zd�Zd�Z	RS(
RQcC@s1||_d|_||_||_||_dS(Ni(RKtposttopictunitttotal(R(RKR R!R"((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyR��s
				cC@s|S(N((R(((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyt	__enter__�scC@s|j�dS(N(tcomplete(R(texc_typet	exc_valuetexc_tb((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyt__exit__�scC@s>|dk	st�|r$||_n||_|j|�dS(N(RzRwR"Rt_print(R(RtitemR"((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyR8�s
	icC@s|j|j|||�dS(N(R8R(R(tstepR*R"((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyt	increment�scC@s|jj|jd�dS(N(RKRR Rz(R(((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyR$�scC@s,|jj|j|j||j|j�dS(N(RKRR RR!R"(R(R*((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyR)�sN(
R0R1RzR�R#R(R8R,R$R)(((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyR�s			cC@s4|jdd�p3|jdd�p3|jdd�S(sIhelper function to know if a repo should be created as general delta
    tformattgeneraldeltatusegeneraldeltas
sparse-revlog(R�(RK((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pytgdinitconfig�scC@s|jdd�S(sBhelper function to know if incoming delta should be optimised
    R-R.(R�(RK((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyt
gddeltaconfig�stsimplekeyvaluefilecB@s8eZdZdZdd�Zed�Zdd�ZRS(s�A simple file with key=value lines

    Keys must be alphanumerics and start with a letter, values must not
    contain '
' characterst__firstlinecC@s||_||_dS(N(RR�(R(RR�tkeys((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyR��s	cC@s�|jj|j�}i}|rd|sEtd�}tj|��n|dd ||j<|d=ny[td�|D��}|j|kr�td�}tj||j��n|j|�Wn(t	k
r�}tjt
|���nX|S(s�Read the contents of a simple key-value file

        'firstlinenonkeyval' indicates whether the first line of file should
        be treated as a key-value pair or reuturned fully under the
        __firstline key.sempty simplekeyvalue fileii����cs@s1|]'}|j�r|d jdd�VqdS(i����t=iN(R�Rq(R+tline((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pys	<genexpr>�ss%r can't be used as a key(Rt	readlinesR�RR
tCorruptedStatetfirstlinekeyR5R8R�tstr(R(tfirstlinenonkeyvaltlinesR�R�t
updatedict((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pytread�s"
cC@s<g}|dk	r&|jd|�nx�|j�D]�\}}||jkrmd|j}tj|��n|dd!j�s�d}tj|��n|j�s�d}tj|��nd|kr�d}tj|��n|jd	||f�q3W|j|j	d
ddt
��}|jd
j|��WdQXdS(s Write key=>value mapping to a file
        data is a dict. Keys must be alphanumerical and start with a letter.
        Values must not contain newline characters.

        If 'firstline' is not None, it is written to file before
        everything else, as it is, not in a key=value forms%s
skey name '%s' is reservediis1keys must start with a letter in a key-value files+invalid key name in a simple key-value files
s(invalid value in a simple key-value files%s=%s
tmodetwbt
atomictempRQN(
RzRIRiR9R
R
tisalphatisalnumRR�R�R�Rb(R(Rt	firstlineR<RR,R�R�((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyR��s&
!N(	R0R1R2R9RzR�R�R>R�(((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyR2�s
t
debugobsoletetpulltpushtservetunbundlecC@s>|rtj|d��}nt|�}t|||�dS(s�Invokes the registered file prefetch functions, allowing extensions to
    ensure the corresponding files are available locally, before the command
    uses them.cS@sdS(N(Rz(tfnR�((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyRk
RQN(R5R�RLtfileprefetchhooks(RLR�R((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyt
prefetchfilessRQc	@s��fd�}g����fd�}|t�rH|d��}ntj�tj�r��jjdd�r�dddg��fd������|���fd��}n|t�r�|d
��}|d��}ndS(sKregister a callback to issue a summary after the transaction is closed
    c@st�fd�|D��S(Nc3@s|]}�j|�VqdS(N(R�(R+R(ttxnname(s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pys	<genexpr>s(R�(tsources(RM(s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyttxmatchsc@sd�j�tj�j������fd�}dt��}�j||��j|�|S(sdecorator for report callbacks.c@s2��}�r!|j��}n�||�dS(N(tfiltered(R�RL(RRtreporef(s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pytwrapped's	s%02i-txnreport(RtweakreftrefR�RJtaddpostcloseRI(RRRtnewcat(t
categoriestotrRL(RRRQs7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyt
reportsummarys	
cS@s?tj||�}|r;|jjtd�t|��ndS(Nsobsoleted %i changesets
(R
tgetobsoletedRKRRRJ(RLR�t	obsoleted((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pytreportobsoleted2sR�sevolution.report-instabilitiestorphansphase-divergenttphasedivergentscontent-divergenttcontentdivergentc@sS|jj}i}x:�D]2\}}tttj||��|�||<qW|S(N(R�R�RJR9Rtgetrevs(RLRPtcountstinstabilityR�(tinstabilitytypes(s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pytgetinstabilitycountsAsc@sa�|�}xN�D]F\}}||�|}t||�}|r|jj|�qqWdS(N(tgetinstabilitymessageRKR�(RLR�tnewinstabilitycountsRbR�tdeltaR�(RdRctoldinstabilitycounts(s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pytreportnewinstabilitiesJscS@s|jjdt|��}|j�}|t|�kr=dStj|d|�}|r�||j�||j�}}||kr�|}nd||f}t|jd|��}t|jd|��}	|p�|	s�t	d�|}
n�|r|	rt	d�}
|
|||	f;}
n_|r@t	d	�}
|
||f;}
n:|	ret	d
�}
|
||	f;}
nd}t
j|��|jj
|
�n|jjdd�}|jd
||�}
|j}g|
D]}||kr�|^q�}|rd}
|jj
|
t|��ndS(s3Report the range of new revisions pulled/unbundled.torigrepolenNRTs%s:%ss%ld and draft()s%ld and secret()snew changesets %s
s*new changesets %s (%d drafts, %d secrets)
snew changesets %s (%d drafts)
snew changesets %s (%d secrets)
sentered unreachable conditiont
revduplicatess(%d: + %ld) and obsolete()s*(%d other changesets obsolete on arrival)
((tchangesR�RJR�RtspansetR'R�R�RR
R
RKRR�(RLR�RjRjR�tminrevR�RtdraftRGR�terrormsgt
duplicatestobsaddedR�R�textinctadded((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pytreportnewcsUsD!			%cS@s�|jjdt|��}|jjdi�}|s:dSg|j�D]3\}\}}|tjkrG||krG|^qG}|s�dS|jjtd�t|��dS(sfReport statistics of phase changes for changesets pre-existing
            pull/unbundle.
            RjRNs%d local changesets published
(	RlR�RJR<RtpublicRKRR(RLR�Rjt
phasetrackingR�R�R�t	published((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pytreportphasechanges�s'N(R]R](sphase-divergentR^(scontent-divergentR_(t_reportobsoletedsourceRR�R�RKR�t_reportnewcssource(	RLRXRMRORYR\RiRtRx((RWRdRcRhRXRLRMs7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pytregistersummarycallbacks 	
0cC@s$|dkr td�||fSdS(s�function to return the message to show warning about new instabilities

    exists as a separate function so that extension can wrap to show more
    information like how to fix instabilitiesis%i new %s changesets
N(R(RgRb((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyRe�sicC@spt|�|ks|jjr5djd�|D��Sdjd�|| D��}td�|t|�|fS(NRcs@s|]}t|�VqdS(N(R(R+th((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pys	<genexpr>�scs@s|]}t|�VqdS(N(R(R+R|((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pys	<genexpr>�ss%s and %d others(RJRKR�RbR(RLR�tmaxnumnodesR)((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyt
nodesummaries�scC@s�|d	krdS|jd�}x�|j�j�D]w\}}t|�dkr2td�}||;}td�}|t|�t||�f;}tj|d|��q2q2WdS(
s-check that no named branch has multiple headsR�RuNRis'rejecting multiple heads on branch "%s"s%d heads: %sRc(R�Ru(RPt	branchmapR<RJRR~R
Ro(RLR�R]RR�theadsR�Rc((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pytenforcesinglehead�s
cC@s|S(s�Allow extensions to wrap the sink returned by convcmd.convertsink()
    before it is used, whether or not the convert extension was formally loaded.
    ((tsink((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pytwrapconvertsink�sc
C@s+|js |jjdd�r$|S|jdkr7|St�}xQ|D]I}ytj|�}Wntjk
ryqGnX|jtj	|��qGW|s�|St
||�}|s�|S|dkr|j�}djg|D]}t
j||�^q��}	|jjtd�|	�n|jd|�S(	s(parse the user specs and unhide changesets whose hash or revision number
    is passed.

    hiddentype can be: 1) 'warn': warn while unhiding changesets
                       2) 'nowarn': don't warn while unhiding changesets

    returns a repo object with the required changesets unhidden
    R�tdirectaccessRsvisible-hiddenR�s, s=warning: accessing hidden changesets for write operation: %s
(Rsvisible-hidden(RRKR�R9RR#R
RQR8tgethashlikesymbolst_getrevsfromsymbolsR�RbRR[R�RRP(
RLR.t
hiddentypetsymbolsR0R$R�RjRtrevstr((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pytunhidehashlikerevs�s.	
	
/cC@s.t�}|j�}|j}|j}t|�}|jjdd�}x�|D]�}yJt|�}	|	|kr�|s|wOq�|	|kr�|j|	�nwOnWntk
r�nXyt	||�}Wn#t
jt
jfk
r�d}nX|dk	rO|j|�}
|
|kr&|j|
�q&qOqOW|S(skparse the list of symbols and returns a set of revision numbers of hidden
    changesets present in symbolsR�sdirectaccess.revnumsN(R9R�R�RJRKR�R�R:R�R�R
RRnRzR�(RLR�R�RjtunficlR�ttiprevtallowrevnumsR�ROR�((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyR��s4			



cC@s|jd|||�S(s8
    Select revisions reachable by a given bookmark
    smancestors(bookmark(%s)) - ancestors(head() and not bookmark(%s)) - ancestors(bookmark() and not bookmark(%s))(R�(RLtmark((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pytbookmarkrevss	(((ut
__future__RRYR7R�R�R8R~RRSti18nRR�RRRRRRRRQR	R
RR5RR
RRRRRRRRRRtutilsRRR�RtscmplatformRt	importmodRttermsizeRRRERzRPR�R�R�R�R�tobjectR�R�R�R�R�R�R�R�R�R�RR	RRRR%R,RR2R?RJRLRNRRRcRdR�R�R�R�R�R�R�R�R�R�R�R�RRRRR0R1R2RyRzRLthooksRKt_reportstroubledchangesetsR{ReR~R�R�R�R�R�(((s7/usr/lib64/python2.7/site-packages/mercurial/scmutil.pyt<module>s�4
d		6		v				
	,						G		=									$
�>			
	7[	9
				F			�				+	"