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: //usr/lib64/python2.7/site-packages/mercurial/hbisect.pyc
�
1�3\c@@s�ddlmZddlZddlmZddlmZmZddlm	Z	d�Z
d�Zd	�Zd
�Z
d�Zd�Zd
�Zd�Zd�ZdS(i(tabsolute_importNi(t_(thextshort(terrorc@s�j��j}tg|dD]}�j|�^q �}��fd�}t}||d|d�\}}|s�t}||d|d�\}}n�j|�}	|s4t|d�dkrt|d�dkr|d|dkrtj	t
d���ntj	t
d�|t|	�f��ni}
tj
|g�}g}x�|r�|j�}
||
gkrU|j|
�x`||
�D]O}|dkr�||
kr�|
|j|
�q�|
g|
|<|j|�q�q�WqUqUW|j�t|�}g|D]$}||kr||kr|^q}|dksE|rng|D]}�j|�^qLd	|fS|d
}d}d}t�}xB|D]:}
|
|kr�|j|
j|
g��q�n||
p�|
g}d||
<t|�}||}t||�}||kr>|
|kr>|}|
}||kr>Pq>n||kru|
|kru|j|
j|
g��q�nxV|
j|
g�D]B}||r�tt|||��||<q�||g||<q�Wq�W|dk	s�t��j|�}|g||fS(s�find the next node (if any) for testing during a bisect search.
    returns a (nodes, number, good) tuple.

    'nodes' is the final result of the bisect if 'number' is 0.
    Otherwise 'number' indicates the remaining possible candidates for
    the search and 'nodes' contains the next bisect target.
    'good' is True if bisect is searching for a first good changeset, False
    if searching for a first bad one.
    tskipc@s�tg|D]}�j|�^q
�}tjd��}x'�jd||�D]}g||<qPW||dkr~|dfS||fS(NcS@sdS(N(tNone(((s7/usr/lib64/python2.7/site-packages/mercurial/hbisect.pyt<lambda>)ts!descendants(%ln) - ancestors(%ln)(tmintrevtcollectionstdefaultdicttrevsR(tbadtgoodtntbadrevt	ancestorsR
(t	changelogtrepo(s7/usr/lib64/python2.7/site-packages/mercurial/hbisect.pytbuildancestors's(
RRis+starting revisions are not directly relateds)inconsistent state, %d:%s is good and badi����iiN(Rt
parentrevstsetR
tFalsetTruetnodetlenRtAbortRRRtdequetpoplefttappendtsortRtupdatetgetR	tlisttAssertionError(Rtstatet	clparentsRRRRRRRtchildrentvisitt
candidatesR
tprevttottct	unskippedtperfecttbest_revtbest_lentpoisontatxtytvaluet	best_node((RRs7/usr/lib64/python2.7/site-packages/mercurial/hbisect.pytbisects|		,	 ,	


1)
	



!cC@s�||dj�}t|�dkr�|r9|d}n
|d}ttd�|D��t|�@�}|dkr�|dj|d�SndS(NiiRRcs@s|]}|j�VqdS(N(R(t.0ti((s7/usr/lib64/python2.7/site-packages/mercurial/hbisect.pys	<genexpr>�s(tparentsRRtancestorR(RR%tnodesRR:tsidetnum((s7/usr/lib64/python2.7/site-packages/mercurial/hbisect.pytextendrange|s

&cC@s�igd6gd6gd6gd6}xx|jjd�D]d}|d j�\}}|j|�}||kr�tjtd�|��n||j|�q5W|S(NtcurrentRRRsbisect.statei����sunknown bisect kind %s(tvfsttryreadlinestsplittlookupRRRR(RR%tltkindR((s7/usr/lib64/python2.7/site-packages/mercurial/hbisect.pyt
load_state�s"cC@s�|jdddt�}|j��XxFt|�D]8}x/||D]#}|jd|t|�f�qCWq2W|j�WdQXdS(Nsbisect.statetwt
atomictemps%s %s
(RARtwlocktsortedtwriteRtclose(RR%tfRFR((s7/usr/lib64/python2.7/site-packages/mercurial/hbisect.pyt
save_state�s
%cC@s)|jjd�r%|jjd�ndS(s+remove any bisect state from the repositorysbisect.stateN(RAtexiststunlink(R((s7/usr/lib64/python2.7/site-packages/mercurial/hbisect.pyt
resetstate�scC@sS|dr|drtS|ds:tjtd���ntjtd���dS(s[check we have both 'good' and 'bad' to define a range

    Raise Abort exception otherwise.RRs'cannot bisect (no known good revisions)s&cannot bisect (no known bad revisions)N(RRRR(R%((s7/usr/lib64/python2.7/site-packages/mercurial/hbisect.pyt
checkstate�s

c
C@sht|�}|dkr/t|jj||�Sd}|jd�}t|�dkred}d	}nd
}d}d}d
|||f}d||f}	d}
d}d|
||f}|dkr�|j|�S|dkr�|j|�S|dkr|j|	�S|dkr|j|�S|dkr6|j|�S|dkrO|j|�Stjtd���dS(s
    Return a list of revision(s) that match the given 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
    RRRR@s9( bisect(bad)::bisect(good) | bisect(good)::bisect(bad) )sbisect(good)::bisect(bad)isbisect(good)::s
::bisect(bad)s::bisect(good)s
bisect(bad)::sbisect(skip)s( (%s) | (%s) | (%s) )s( (%s) - (%s) )s::bisect(bad) - ::bisect(good)s::bisect(good) - ::bisect(bad)s( ( (%s) | (%s) ) - (%s) )trangetprunedtuntestedtignoredtgoodstbadssinvalid bisect stateN(RRRR@(	RGtmapRR
R
RRt
ParseErrorR(
RtstatusR%RTt_tRXRYtskipsRURVtibatigaRW((s7/usr/lib64/python2.7/site-packages/mercurial/hbisect.pyR"�s:
	





cC@s|jj|�}|t|d�kr1td�S|t|d�krPtd�S|t|d�krotd�S|t|d�ks�|t|d�kr�td�S|t|d�kr�td�S|t|d�kr�td	�S|t|d
�krtd�SdS(NRRRtskippedRVR@RWRXsgood (implicit)RYsbad (implicit)(RR
R"RR(RRR
((s7/usr/lib64/python2.7/site-packages/mercurial/hbisect.pytlabel�s 


*



cC@s�t|�dkr�|r.|jtd��n|jtd��|j||d�t||||�}|dk	r�|jtd�|�q�nQ|r�|jtd��n|jtd��x|D]}|j||�q�W|j�dS(NisThe first good revision is:
sThe first bad revision is:
is�Not all ancestors of this changeset have been checked.
Use bisect --extend to continue the bisection from
the common ancestor, %s.
sCDue to skipped revisions, the first good revision could be any of:
sBDue to skipped revisions, the first bad revision could be any of:
(RRLRtshowR?RRM(tuiRR%t	displayerR<Rt
extendnodeR((s7/usr/lib64/python2.7/site-packages/mercurial/hbisect.pytprintresults
(t
__future__RRti18nRRRRRRR7R?RGRORRRSR"RbRg(((s7/usr/lib64/python2.7/site-packages/mercurial/hbisect.pyt<module>s	d						C