File: //lib64/python2.7/site-packages/mercurial/ancestor.pyo
�
Hq�Qc @ s] d d l Z d d l Z d d l m Z d � Z d � Z d � Z d e f d � � YZ d S( i����N( t nullrevc s� t | t � s t | � } n t | k r1 t � St | � d k rG | S� f d � } � f d � } | | � } t | � d k r� | S| | � S( s�
Returns the common ancestors of a and b that are furthest from a
root (as measured by longest path).
pfunc must return a list of parent vertices for a given vertex.
i c s% d t | � >d } d g t | � d } x( t | � D] \ } } d | >| | <q8 Wd | d >} t � } t | � } } t | � d } x�| d k r | r | }
| d 8} | |
s� q� n | |
} | | k r=| d 8} | | k r=| j |
� | | O} |
| k r:| d 8} | d k r7t |
g � Sq:q=n | | k r�x� � |
� D]d } | | }
| t k rxqVn |
d k r�| | | <| d 7} qV|
| k rV| | c | O<qVqVWq� xY � |
� D]K } | t k r�q�n | | }
|
r|
| k r| d 8} n | | | <q�Wq� W| S( Ni i ( t lent maxt enumeratet sett addR ( t nodest allseent seent it nt poisont gcat interestingt leftt nvt vt svt pt sp( t pfunc( s8 /usr/lib64/python2.7/site-packages/mercurial/ancestor.pyt
candidates sR
c s� i } t | � d } d g | } d g | } g } x[ t t | � � D]G \ } } d | | <d | >} | | | <d | | <| j | | f � qI W| d } x�| d k rct | � d k rc| }
| d 8} | |
} | d k r� q� n | |
} x>� |
� D]0}
|
t k rqn | |
} | |
} } | | k r�| d | |
<| | k r2| | c d 7<| } | |
<| r�| | c d 8<| | d k r�| | =q�q�q2q| | d k r| | B} | | k r�qn | | |
<| j | d � | | c d 7<| | c d 8<| | d k r2| | =q2qqW| | c d 8<| | d k r� | | =q� q� Wt | � d k rzg Sd � x | D] } � | O� q�Wt � f d � | D� � S( Ni i c 3 s% | ] \ } } � | @r | Vq d S( N( ( t .0R R
( t k( s8 /usr/lib64/python2.7/site-packages/mercurial/ancestor.pys <genexpr>} s ( R R t sortedt appendR R t
setdefaultR ( R R
t countt depthR t mappingR R
t bR R t dvR R t dpt nspR ( R ( R s8 /usr/lib64/python2.7/site-packages/mercurial/ancestor.pyt deepestG sh
!
( t
isinstanceR R R ( R t orignodesR R"