ó a˜Qc@s„ddlZddlZddlmZddlmZmZddlZd„Zd„Z d„Z d„Z d„Z d „Z dS( iÿÿÿÿN(t_(tshortthexc sæˆj‰tg|dD]}ˆj|ƒ^qƒ}‡‡fd†}t}||d|dƒ\}}|s–t}||d|dƒ\}}nˆj|ƒ}|st|dƒdkrït|dƒdkrïtjt dƒƒ‚ntjt dƒ|t |ƒfƒ‚ni} tj |gƒ} g} x–| rÍ| j ƒ} || gkr8| j | ƒx`ˆ| ƒD]O} | dkrt| | kr¦| | j | ƒqÃ| g| | <| j | ƒqtqtWq8q8W| jƒt| ƒ}g| D]$}||krë||krë|^që}|dks(| rQg| D]} ˆj| ƒ^q/d |fS|d }d }d}tƒ}xB| D]:} | |kr¨|j| j| gƒƒqwn|| p¸| g}d || R((s5/sys/lib/python2.7/site-packages/mercurial/hbisect.pyt save_state’s %c Csht|ƒ}|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 R R RR4s9( 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(sgoodsbadsskipscurrent( R?tmapRRRRterrort ParseErrorR( R<tstatusR#RIt_tRMRNtskipsRJRKtibatigaRL((s5/sys/lib/python2.7/site-packages/mercurial/hbisect.pyR s:                cCs|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( NR R RtskippedRKR4RLRMsgood (implicit)RNsbad (implicit)(RRR RR(R<RR((s5/sys/lib/python2.7/site-packages/mercurial/hbisect.pytlabelàs    *    cCs|r|djƒSdS(Ni(tupperR(RX((s5/sys/lib/python2.7/site-packages/mercurial/hbisect.pyt shortlabelþs(R5RPti18nRRRRRR3R?RHR RXRZ(((s5/sys/lib/python2.7/site-packages/mercurial/hbisect.pyt s  v C