\x89\x50\x4E\x47\x0D\x0A\x1A\x0A PNG  \x89\x50\x4E\x47\x0D\x0A\x1A\x0A  13\c@@sddlmZddlZddlmZddlmZmZddlm Z dZ dZ d Z d Z d Zd Zd ZdZdZdS(i(tabsolute_importNi(t_(thextshort(terrorc@sjj}tg|dD]}j|^q }fd}t}||d|d\}}|st}||d|d\}}nj|} |s4t|ddkr t|ddkr |d|dkr tj t dntj t d|t | fni} t j |g} g} x| r| j} || gkrU| j| x`|| D]O}|dkr|| kr| |j| q| g| |<| j|qqWqUqUW| jt| }g| D]$}||kr||kr|^q}|dksE| rng| D]}j|^qLd |fS|d }d }d}t}xB| D]:} | |kr|j| j| gqn|| p| g}d || | |kr>|}| }||kr>Pq>n||kru| |kru|j| j| gqnxV| j| gD]B}||rtt|||||)ss!descendants(%ln) - ancestors(%ln)(tmintrevt collectionst defaultdicttrevsR(tbadtgoodtntbadrevt ancestorsR (t changelogtrepo(s7/usr/lib64/python2.7/site-packages/mercurial/hbisect.pytbuildancestors's( R Ris+starting revisions are not directly relateds)inconsistent state, %d:%s is good and badiiiN(Rt parentrevstsetR tFalsetTruetnodetlenRtAbortRRR tdequetpoplefttappendtsortRtupdatetgetRtlisttAssertionError(Rtstatet clparentsRRRRRRR tchildrentvisitt 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|Dt|@}|dkr|dj|dSndS(NiiR Rcs@s|]}|jVqdS(N(R(t.0ti((s7/usr/lib64/python2.7/site-packages/mercurial/hbisect.pys s(tparentsRRtancestorR(RR$tnodesRR9tsidetnum((s7/usr/lib64/python2.7/site-packages/mercurial/hbisect.pyt extendrange|s  & cC@sigd6gd6gd6gd6}xx|jjdD]d}|d j\}}|j|}||krtjtd|n||j|q5W|S(NtcurrentRR Rs bisect.stateisunknown bisect kind %s(tvfst tryreadlinestsplittlookupRRRR(RR$tltkindR((s7/usr/lib64/python2.7/site-packages/mercurial/hbisect.pyt load_states" c C@s|jdddt}|jXxFt|D]8}x/||D]#}|jd|t|fqCWq2W|jWdQXdS(Ns bisect.statetwt atomictemps%s %s (R@RtwlocktsortedtwriteRtclose(RR$tfRER((s7/usr/lib64/python2.7/site-packages/mercurial/hbisect.pyt save_states  %cC@s)|jjdr%|jjdndS(s+remove any bisect state from the repositorys bisect.stateN(R@texiststunlink(R((s7/usr/lib64/python2.7/site-packages/mercurial/hbisect.pyt resetstatescC@sS|dr|drtS|ds:tjtdntjtddS(s[check we have both 'good' and 'bad' to define a range Raise Abort exception otherwise.RR s'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 checkstates  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|StjtddS(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 RR RR?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(RR RR?( RFtmapRR R RRt ParseErrorR( RtstatusR$RSt_tRWRXtskipsRTRUtibatigaRV((s7/usr/lib64/python2.7/site-packages/mercurial/hbisect.pyR!s:                cC@s|jj|}|t|dkr1tdS|t|dkrPtdS|t|dkrotdS|t|dks|t|dkrtdS|t|dkrtdS|t|dkrtd S|t|d krtd SdS( NRR RtskippedRUR?RVRWsgood (implicit)RXsbad (implicit)(RR R!RR(RRR ((s7/usr/lib64/python2.7/site-packages/mercurial/hbisect.pytlabels    *    cC@st|dkr|r.|jtdn|jtd|j||dt||||}|dk r|jtd|qnQ|r|jtdn|jtdx|D]}|j||qW|jdS(NisThe first good revision is: sThe first bad revision is: isNot 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: (RRKRtshowR>RRL(tuiRR$t displayerR;Rt extendnodeR((s7/usr/lib64/python2.7/site-packages/mercurial/hbisect.pyt printresults  (t __future__RR ti18nRRRRtRR6R>RFRNRQRRR!RaRf(((s7/usr/lib64/python2.7/site-packages/mercurial/hbisect.pyt s  d    C