File: //usr/lib/python3/dist-packages/hgext/__pycache__/censor.cpython-310.pyc
o
�]Lb� � @ s� d Z ddlmZ ddlmZ ddlmZ ddlmZm Z m
Z
mZ i Ze
�
e�Z
dZe
ddd d
ed�ed�fd
dd
ed�ed�fged�e
jd�ddd��Zddd�ZdS )an erase file content at a given revision
The censor command instructs Mercurial to erase all content of a file at a given
revision *without updating the changeset hash.* This allows existing history to
remain valid while preventing future clones/pulls from receiving the erased
data.
Typical uses for censor are due to security or legal requirements, including::
* Passwords, private keys, cryptographic material
* Licensed data/code/libraries for which the license has expired
* Personally Identifiable Information or other private data
Censored nodes can interrupt mercurial's typical operation whenever the excised
data needs to be materialized. Some commands, like ``hg cat``/``hg revert``,
simply fail when asked to produce censored data. Others, like ``hg verify`` and
``hg update``, must be capable of tolerating censored data to continue to
function in a meaningful way. Such commands only tolerate censored file
revisions if they are allowed by the "censor.policy=ignore" config option.
A few informative commands such as ``hg grep`` will unconditionally
ignore censored data and merely report that it was encountered.
� )�absolute_import)�_)�short)�error�
logcmdutil� registrar�scmutils ships-with-hg-core� censor� rs rev� s# censor file from specified revisions REV� ts tombstones replacement tombstone datas TEXTs -r REV [-t TEXT] [FILE])�helpcategoryc K s| |� � �0 |�� � t| ||||fi |��W d � W d � S 1 s'w Y W d � d S 1 s7w Y d S )N)�wlock�lock� _docensor)�ui�repo�path�rev� tombstone�opts� r �./usr/lib/python3/dist-packages/hgext/censor.py�censor4 s R�r c K s� |s t �td���|st �td���|d }t�||f�}|�� s)t|�� �dkr0t �td���|�� d }|�|�}t|�sFt �td���t �
|||��� }z|| } W n tye t �td�| ��w z| �
|�}
W n t jy~ t �td�| ��w |
�� }g }|�� D ]}
||
}||v r�|�|�|kr�|�|� q�|r�d �d
d� |D ��}t jtd�| td
�d��|�� }| �� dd� |D �v r�t jtd�td�d��|�d��}|j|||d� W d � d S 1 s�w Y d S )Ns must specify file path to censors must specify revision to censor� s% can only specify an explicit filenamer s"