File: //usr/lib/python3/dist-packages/mercurial/__pycache__/dagop.cpython-310.pyc
o
�]LbF� � @ sx d dl mZ d dlZddlmZ ddlmZ ddlmZm Z m
Z
mZmZm
Z
e
jZe
jZdZdd � Zd@dd�Zd@d
d�Zdd� Z dAdd�Zdd� Zdd� Zdd� ZdBdd�Zdd� ZG dd� de�Zdd � Zd@d!d"�Zd#d$� Zd@d%d&�Z d'd(� Z!ej"d)d)d*�G d+d,� d,e��Z#ej"d)d)d*�G d-d.� d.e��Z$d/d0� Z%d1d2� Z&d3d4� Z'dBd5d6�Z(dCd8d9�Z)d:d;� Z*dBd<d=�Z+d>d?� Z,dS )D� )�absolute_importN� )�attr��nullrev)�error�mdiff�patch�pycompat�scmutil�smartsetl c c s6 � |du rd}|du r
t }|dkrdS |dk rt�d��|r!d}nd}|�|� t|�}g }t|d�}|durAt�||| df� d} |r�t�|�\}
}||
}
|
|krgt|d�}|durgt�||| df� |
| k}|rv||krv|
} |
V |d }
|r�|
|k r�| |
�D ]}|t kr�t�||| |
f� q�|sEdS dS )a( Walk DAG using 'pfunc' from the given 'revs' nodes
'pfunc(rev)' should return the parent/child revisions of the given 'rev'
if 'reverse' is True/False respectively.
Scan ends at the stopdepth (exlusive) if specified. Revisions found
earlier than the startdepth are omitted.
Nr s negative stopdepth���r )
�maxlogdepthr �ProgrammingError�sort�iter�next�heapq�heappush�heappopr )�pfunc�revs�
startdepth� stopdepth�reverse�heapsign�irevs�pendingheap�inputrev�lastrev�currev�curdepth�foundnew�pdepth�prev� r% �1/usr/lib/python3/dist-packages/mercurial/dagop.py�_walkrevtree sJ �
��r'