File: //usr/lib/python3/dist-packages/mercurial/__pycache__/merge.cpython-310.pyc
o
�]Lb\h � @ s d dl mZ d dlZd dlZd dlZddlmZ ddlmZ ddl m
Z
ddlmZ ddl
mZ dd lmZmZmZmZmZmZmZmZmZmZmZmZmZmZ ej Z!ej"Z#d
d� Z$dIdd
�Z%G dd� de&�Z'dd� Z(dd� Z)dd� Z*dd� Z+dd� Z,dd� Z-G dd� de&�Z. dJdd �Z/d!d"� Z0 dKd#d$�Z1d%d&� Z2d'd(� Z3d)d*� Z4d+d,� Z5e
j6d-d.�G d/d0� d0e&��Z7 dId1d2�Z8d3d4� Z9d5Z:d6Z;d7Z<d8Z= - dLd9d:�Z>dMd;d<�Z?dNd=d>�Z@dId?d@�ZAdNdAdB�ZB dOdCdD�ZCdNdEdF�ZD - - - dPdGdH�ZEdS )Q� )�absolute_importN� )�_)�nullrev)�attr)�
stringutil)� timestamp)�copies�encoding�error� filemerge�match�
mergestate�obsutil�pathutil�policy�pycompat�scmutil�subrepoutil�util�workerc C sX | j �||�}g d�}||vr*d�dd� |D ��}td�}|||||f; }t�|��|S )N)� aborts ignore� warns , c S s g | ]}d | d �qS )� '� )�.0�vr r �1/usr/lib/python3/dist-packages/mercurial/merge.py�
<listcomp>, s z*_getcheckunknownconfig.<locals>.<listcomp>s$ %s.%s not valid ('%s' is none of %s))�ui�config�joinr r �ConfigError)�repo�section�namer �valid�validstr�msgr r r �_getcheckunknownconfig( s
r) c C sV |� � rdS |d u r|}| jj�|�o*| j�|�o*| j�|�| jvo*|| �|| �S �NF)�
isinmemory�wvfs�audit�check�isfileorlink�dirstate� normalize�cmp)r# �wctx�mctx�f�f2r r r �_checkunknownfile3 s
���r7 c @ s e Zd ZdZdd� Zdd� ZdS )�_unknowndirscheckeray
Look for any unknown files or directories that may have a path conflict
with a file. If any path prefix of the file exists as a file or link,
then it conflicts. If the file itself is a directory that contains any
file that is not tracked, then it conflicts.
Returns the shortest path at which a conflict occurs, or None if there is
no conflict.
c C s t � | _t � | _d S �N)�set�_unknowndircache�_missingdircache��selfr r r �__init__Q s z_unknowndirschecker.__init__c C s |� � rdS ttt�|���D ]?}|| jv r d S || jv rq|jj� |�rN|j�
|�r9|j�|�|jvr9| S |j�
|�sH| j�|� d S | j�|� q|jj� |�r�|j�|�r�|j�|�D ]'\}}}|D ]}t�|j�||��}|jj|dd�}||jvr�| S qiqbd S )NFT)�isknown)r+ �reversed�listr �finddirsr<