File: //lib/python3/dist-packages/hgext/remotefilelog/__pycache__/metadatastore.cpython-310.pyc
o
�]Lb� � @ sd d dl mZ d dlmZmZ ddlmZmZ G dd� dej�Z G dd� dej�Z
G d d
� d
e�ZdS )� )�absolute_import)�hex�sha1nodeconstants� )� basestore�shallowutilc sj e Zd Z� fdd�Zddd�Zejjddd��Zejjdd � �Z d
d� Z
dd
� Zddd�Zdd� Z
� ZS )�unionmetadatastorec s: t t| �j|i |�� || _|�d�| _|�dd�| _d S )N�
writestore�allowincompleteF)�superr �__init__�stores�getr r
)�self�args�kwargs�� __class__� �C/usr/lib/python3/dist-packages/hgext/remotefilelog/metadatastore.pyr s zunionmetadatastore.__init__Nc s� �du rt � �|�v r
g S i � � �fdd�}||fg}|rS|�� \}}z� �| j||�d�� |||�}|�|� W n tyP | jsE� ||f||fkrN� Y nw |s� S )��Returns as many ancestors as we're aware of.
return value: {
node: (p1, p2, linknode, copyfrom),
...
}
Nc s� | |fg}g }t � }|rY|�� \}}||f|v rq
|�||f� � �|�}|s/|�||f� q
|\}} }
}|tjkrG|�vrG|�|pC| |f� | tjkrW| �vrW|�| | f� |s|S �N)�set�pop�addr �appendr �nullid)�curname�curnode�queue�missing�seen�name�node�value�p1�p2�linknode�copyfrom�� ancestors�knownr r �traverse( s&