File: //usr/lib/python3/dist-packages/hgext/__pycache__/mq.cpython-310.pyc
o
    �]Lb> �                   @   s�
  d Z ddlmZmZ ddlZddlZddlZddlZddlZddl	m
Z
 ddlmZm
Z
mZmZ ddlmZmZmZ ddlmZmZmZmZmZmZmZmZmZmZm Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z, ddl-m.Z.m/Z/m0Z0 ej1Z1d	d
de
d�fgZ2i Z3e$�4e3�Z4dZ5i Z6e$�7e6�Z7e7d
ddd� e7d
ddd� e7d
ddd� e7d
ddd� ze�8d� W n e9y�   G dd� de:�Z;e�<e;� dd� Y nw e(j(Z(�d8dd�Z=e*j>Z?G dd� de:�Z@g d�ZAdddd �ZBd!d"� ZCd#d$� ZDG d%d&� d&e:�ZEd'd(� ZFG d)d*� d*ejG�ZHG d+d,� d,e:�ZId-d.� ZJe4d/d0d1de
d2�fd3d4g e
d5�e
d6�fge
d7�e4jKd8�d9d:� �ZLe4d;d<d=de
d>�fge2 e
d?�e4jKd8��d8d@dA��ZMe4dBd<dCde
dD�fge2 e
dE�e4jKd8��d8dFdG��ZNe4dHdIdJde
dK�fdLdMde
dN�e
dO�fdPdQde
dR�fd3d4g e
dS�e
d6�fdTdde
dU�fdVdWde
dX�fge
dY�e4jOd8�dZd[� �ZPd\d]� ZQe4d^d_d`de
da�fge
db�e4jRdcdd�dedf� �ZSe4dgddhde
di�fdjdkde
dl�fddmde
dn�fdodpde
dq�e
dr�fgejT e
ds�e4jRdcdt��d8dudv��ZUe4dwejVdx d e
dy�e4jWdcdz�d{d|� �ZXe4d}d~dde
d��fge2 e
d��e4jKd8�d�d�� �ZYe4d�e2e
d��e4jKd8�d�d�� �ZZe4d�e2e
d��e4jKd8�d�d�� �Z[e4d�e2e
d��e4jKd8�d�d�� �Z\d�d�� Z]e4d�dId�de
d��fdPdQde
d��fdTdde
dU�fdjd�de
d��fd�d�de
d��e
d��fd�d�de
d��fd�d�de
d��e
d��fgej^ ej_ e
d��e4jWdcdcd��d�d�� �Z`e4d�dId�de
d��fdTdde
dU�fd	d�de
d��fdjd�de
d��fd�d�de
d��e
d��fd�d�de
d��fd�d�de
d��e
d��fgej^ ej_ e
d��e4jWdcdcd��d�d�� �Zae4d�ejbejc ej^ e
d��e4jddcdcd��d�d�� �Zee4d�dId�de
d��fd0d1de
d��fgej_ e
d��e4jfd8�d�d�� �Zge4d�dd�de
d��fdPdQde
d��fdd�de
d��fge
d��e4jKd8�d�d �Zhe4d�d�d�de
dƃfdLd�de
dȃfge
dɃe4jKd8�d�d˄ �Zie4d�g e
d̓e4jKd8��d8d�dτ�Zjd�dф Zkd�dӄ Zle4d�dd�de
d��fdPdQde
dՃfdId�de
d׃fd�d�de
dfd�d�de
dۃfd~d�de
d݃fdLdMde
dރe
dO�fdd�de
d�fdd�de
d��fg	e
d�e4jKdcdd��d8d�d��Zme4d�d�d�de
d�fdLdMde
d�e
dO�fdd�de
d��fdPdQde
d�fdd�de
d��fge
d�e4jKdcdd��d8d�d��Zne4d�g e
d�e4jKd8��d8d�d��Zoe4d�d�d�de
d�fd�d�de
d�fge
d�e4jKd8�d�d�� �Zpe4d�d_d�de
d��fdLdMde
d��e
dO�fdId�de
d��fdPdQde
d��fgej_ e
d��e4jKd8�d��d � �Zqe4�ddLd�de
�d�fd	�dde
�d�fd�dde
�d�fd�dde
�d�fge
�d	�e4jKd8��d
�d� �Zre4�ddِd
de
�d�fge
�d�e4jKd8��d�d� �Zse4�dd�d�de
�d�fd�dde
�d�fd_�dde
�d�fd�dde
�d�fdd�de
�d�fd�dde
�d�fge
�d�e4jKd8��d8�d�d��Zt�d �d!� Zu�d"�d#� Zv�d$�d%� Zw�d&�d'� Zx�d(�d)� Zy�d*�d+� Zze$�{� Z{e{�d,��d-�d.� �Z|e|gZ}�d/�d0� Z~�d1�d2�d3�d4�d5�d6�d5�d7�ZdS (9  a  manage a stack of patches
This extension lets you work with a stack of patches in a Mercurial
repository. It manages two stacks of patches - all known patches, and
applied patches (subset of known patches).
Known patches are represented as patch files in the .hg/patches
directory. Applied patches are both patch files and changesets.
Common tasks (use :hg:`help COMMAND` for more details)::
  create new patch                          qnew
  import existing patch                     qimport
  print patch series                        qseries
  print applied patches                     qapplied
  add known patch to applied stack          qpush
  remove patch from applied stack           qpop
  refresh contents of top applied patch     qrefresh
By default, mq will automatically use git patches when required to
avoid losing file mode changes, copy records, binary files or empty
files creations or deletions. This behavior can be configured with::
  [mq]
  git = auto/keep/yes/no
If set to 'keep', mq will obey the [diff] section configuration while
preserving existing git patches upon qrefresh. If set to 'yes' or
'no', mq will override the [diff] section and always generate git or
regular patches, possibly losing data in the second case.
It may be desirable for mq changesets to be kept in the secret phase (see
:hg:`help phases`), which can be enabled with the following setting::
  [mq]
  secret = True
You will by default be managing a patch queue named "patches". You can
create other, independent patch queues with the :hg:`qqueue` command.
If the working directory contains uncommitted files, qpush, qpop and
qgoto abort immediately. If -f/--force is used, the changes are
discarded. Setting::
  [mq]
  keepchanges = True
make them behave as if --keep-changes were passed, and non-conflicting
local changes will be tolerated and preserved. If incompatible options
such as -f/--force or --exact are passed, this setting is ignored.
This extension used to provide a strip command. This command now lives
in the strip extension.
�    )�absolute_import�print_functionN��_)�bin�hex�nullrev�short)�delattr�getattr�open)�cmdutil�commands�
dirstateguard�encoding�error�
extensions�hg�	localrepo�lock�
logcmdutil�patch�phases�pycompat�	registrar�
revsetlang�scmutil�smartset�strip�subrepoutil�util�vfs)�dateutil�
stringutil�urlutil�   s�   summarys    print first line of patch headers   ships-with-hg-core�   mq�   git�   auto)�default�   keepchangesF�   plain�   secrets   stripc                   @   s   e Zd Zdd� Zdd� ZdS )�dummyuic                 C   �   d S �N� )�self�msgr1   r1   �*/usr/lib/python3/dist-packages/hgext/mq.py�debug�   �   z
dummyui.debugc                 O   r/   r0   r1   )r2   �event�msgfmt�msgargs�optsr1   r1   r4   �log�   r6   zdummyui.logN)�__name__�
__module__�__qualname__r5   r;   r1   r1   r1   r4   r.   �   s    r.   �    c                 C   sh   g }| d }|r
| | }n|� � }t|j�D ]}|�|��d� ||jvs,|�|��� r1|�|� q|S )zrreturn list of subrepos at a different revision than substate.
    Abort if any subrepos have uncommitted changes.NT)�p1�sorted�substate�sub�
bailifchanged�dirty�append)�repo�baserev�inclsubs�wctx�bctx�sr1   r1   r4   �
checksubstate�   s   
�rM   c                   @   s0   e Zd Zdd� Zdd� Ze�e�Ze�e�ZdS )�statusentryc                 C   s   ||| _ | _d S r0   ��node�name)r2   rP   rQ   r1   r1   r4   �__init__�   s   zstatusentry.__init__c                 C   s   t | j�d | j S )N�   :)r   rP   rQ   �r2   r1   r1   r4   �	__bytes__�   s   zstatusentry.__bytes__N)	r<