https://t.me/RX1948
Server : Apache
System : Linux iad1-shared-b8-43 6.6.49-grsec-jammy+ #10 SMP Thu Sep 12 23:23:08 UTC 2024 x86_64
User : dh_edsupp ( 6597262)
PHP Version : 8.2.26
Disable Function : NONE
Directory :  /lib/python3/dist-packages/hgext/convert/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //lib/python3/dist-packages/hgext/convert/__pycache__/cvsps.cpython-310.pyc
o

�]LbЍ�@s�ddlmZddlZddlZddlZddlmZddlmZddl	m
Z
mZmZm
Z
mZddlmZmZmZejZGdd�de�ZGd	d
�d
e�Zdd�Zddd�ZGdd�de�Zddd�Zdd�ZdS)�)�absolute_importN)�_)�open)�encoding�error�hook�pycompat�util)�dateutil�procutil�
stringutilc@� eZdZdZdd�Zdd�ZdS)�logentrya�Class logentry has the following attributes:
    .author    - author name as CVS knows it
    .branch    - name of branch this revision is on
    .branches  - revision tuple of branches starting at this revision
    .comment   - commit message
    .commitid  - CVS commitid or None
    .date      - the commit date as a (time, tz) tuple
    .dead      - true if file revision is dead
    .file      - Name of file
    .lines     - a tuple (+lines, -lines) or None
    .parent    - Previous revision of this entry
    .rcs       - name of file as returned from CVS
    .revision  - revision number as tuple
    .tags      - list of tags on the file
    .synthetic - is this a synthetic "file ... added on ..." revision?
    .mergepoint - the branch that has been merged from (if present in
                  rlog output) or None
    .branchpoints - the branches that start at the current entry or empty
    cKsd|_|j�|�dS�NF)�	synthetic�__dict__�update��self�entries�r�5/usr/lib/python3/dist-packages/hgext/convert/cvsps.py�__init__4szlogentry.__init__c�0�fdd�t�j�D�}dt��jd�|�fS)Nc3�"�|]}d|�j|fVqdS)z%s=%rN�r��.0�k�rrr�	<genexpr>9s� z$logentry.__repr__.<locals>.<genexpr>z%s(%s)z, ��sortedr�type�__name__�join�r�itemsrrr�__repr__8szlogentry.__repr__N�r$�
__module__�__qualname__�__doc__rr(rrrrrsrc@seZdZdS)�logerrorN)r$r*r+rrrrr-=sr-cCsH|�d�}|d�d�}d}|dkr|}|d|d�d|�d�}|S)a^Return the repository path from a CVS path.

    >>> getrepopath(b'/foo/bar')
    '/foo/bar'
    >>> getrepopath(b'c:/foo/bar')
    '/foo/bar'
    >>> getrepopath(b':pserver:10/foo/bar')
    '/foo/bar'
    >>> getrepopath(b':pserver:10c:/foo/bar')
    '/foo/bar'
    >>> getrepopath(b':pserver:/foo/bar')
    '/foo/bar'
    >>> getrepopath(b':pserver:c:/foo/bar')
    '/foo/bar'
    >>> getrepopath(b':pserver:truc@foo.bar:/foo/bar')
    '/foo/bar'
    >>> getrepopath(b':pserver:truc@foo.bar:c:/foo/bar')
    '/foo/bar'
    >>> getrepopath(b'user@server/path/to/repository')
    '/path/to/repository'
    �:����@r�/N)�split�find)�cvspath�parts�
atposition�start�repopathrrr�getrepopathAs
r9�Tc6s�
i��fdd��|�td��g}t�d�}t�d�}t�d�}t�d�}	t�d�}
t�d	�}t�d
�}t�d�}
t�d�}t�d
�}t�d�}t�d�}t�d�}d}|dur�z*ttj�dd�d��}|���	�}Wd�n1stwY|}|dkr�d}Wn
t
y�ttd���w|r�|�t
j�s�|t
j7}zttj�dd�d����	�}Wn	t
y�Ynw|s�tj�dd�}g}d}|r�tj�d�}tj�|�s�t�|�|�d�|dg}dd�|D�}tj�|d�dd�|D���}|d k�rjzD|�td!�|�t�t|d��}|D]#}t�|d"��r&t�|d#��r&t�|d$��s1|�td%��g}n�q|�td&�t|��Wnt�y[}z|�td'�|�WYd}~nd}~ww|�rj|d(j}t�|d)�}d*d+g}|�r�|� d,|�t�!t"|��}|�d-��s�|d-7}|�r�|t�!|�}n|}|� d.d/g|�|�r�|� d0|�|� |�i}i�i}d1}d2}d3d�|D�}|�td4�d5�|��|�#d6|||f�t$�%d5�|�d�} t�&| �'��}!	|!}"|"dk�r�n�t�&| �'��}!|"�d8��r|"dd(�}"|d1k�r�|�(|"�}#|#�rW|#�)d9�}$i}|�rSt�!|$dd:��}%|%�*|��r0|%t|�d�}%|%�*d-��r<|%d9d�}%|%�*d;��rI|%d<d�}%n|%�+d=d-�}%d>}�q�d9}�q�|�(|"�}#|#�rft|#�)d9���|�(|"�}#|#�rut|#�)d>���|	�(|"��rt|"���nP|d9k�r�|
�(|"�}#|#�s�Jtd?���t�!|#�)d9��}%d>}�n1|d>k�r�|�(|"��r�i�d@}�n |d@k�r%|�(|"�}#|#�rdAd�|#�)d>��d�D�}&t|&�}'|'d@k�r�|'d>d1k�r�|&d:d1k�r�|&dd:�|&d(d�}&t,|&�}&|&|v�r�g||&<||&� |#�)d9��|#�)d>��|#�)d9�<�n�|
�(|"��rdB}�n�|�(|"��r#d1}�n�|dCk�rB|
�(|"��r4dB}�n�|�(|"��r@JtdD����n�|dBk�rw|�(|"�}#|#�sUJtdE���t-�|$��|%�t,dFd�|#�)d9��d�D��gdddt.�dG�}d<}�nZ|d<k�rT|�(|"�}#|#�s�JtdH���|#�)d9�}(|(d>d-k�r�dI|(}(t|(���d@k�r�|(dJ}(t�/|(gdK��|_�|#�)d>��|_0|#�)d@��1�dLk|_2|#�)dB��r�|#�)d<��r�t3|#�)dB��t3|#�)d<��f|_4nt3|#�)dB��d1f|_4n|#�)d<��r�d1t3|#�)d<��f|_4nd|_4|#�)dM��r	|#�)dN�|_5|#�)dO��rN|#�)dP��d��t��d>k�r"dQ|_6n,d��dd:�dR�d:g����fdSd��D�})t|)�d9k�sIJdT|j6��|)d1|_6g|_7dM}n}|dMk�r�|�(|"�}*|*�rrdUd�|*�)d9��dV�D�|_8dN}n_|
�(|"��r�|�(|!��r�dB}d7}nN|�(|"��r�d1}d7}nC|j7� |"�n<|dNk�r�|
�(|"��r�|!}+|+�d8��r�|+dd(�}+|�(|+��r�dB}d7}n|j7� |"�n|�(|"��r�d1}d7}n|j7� |"�|�r|j2�r|j9d(d9k�rt|j7�d9k�r|�(|j7d1��r|�#dW|j:|j7d1f�d7|_;|�r�d2}t<�fdXd�|�|j9g�D��|_=�d8�|j7��|_7t|j9�}'|'d@k�rA|'d>d1k�rA|�|j9dd(�dg�d1|_>nd|_>t.�},t
�?��D]K\}-}.t,dYd�|.�d�D��}/t|/�d>k�re�qL|/d:d1k�r�|/d(d>d1k�r�|/dd:�|j9k�r�|,�@|-��qL|/dZk�r�|/|j8v�r�|,�@|-��qL|,|_A|� |�|j:||j:�+d=d-�<t|�d[d1k�r�|�tB�Cd\t|�|jDfd]�d8��q�|jEd^d_�d`�i}0t<|dad_�d`�D]#}|j:�+d=d-�}$|$|v�r�||$|_:|j9dd(�}-|j9|0|j:|-f<�q�|D]*}|j9dd(�}-|0�|j:|-fd�}|du�r|j9dd:�}||_F|j9|0|j:|-f<�q�|�re|�rc|jEdbd_�d`�|�rL|d(j|d1jk�rLttdc���||}|�tdd�|�t�G|t|de��n|}|�tdf�t|��|�Hdgdh�}1|1�r�didj�}2|D]b}3|3j7}4|1D]F}z!|4�It
�J|���Kdk�|3_7|jL�r�|�#dl||2|3j9�|3jDf�Wn6tM�y�Y�q�tN�y�}5ztOjPt
�Q|5�tdm�dn��d}5~5wwtOjPtdo�|2|3j9�|3jDftdm�dn���qtRjR|ddpd7|dq�|S)rzCollect the CVS rlogcs��||�S)z#return a shared version of a string)�
setdefault)�s)�_scacherr�scachepszcreatelog.<locals>.scachescollecting CVS rlog
sRCS file: (.+)$scvs \[r?log aborted\]: (.+)$scvs (r?log|server): (.+)
$s>(Cannot access.+CVSROOT)|(can't create temporary directory.+)$sWorking file: (.+)$ssymbolic names:s	(.+): ([\d.]+)$s----------------------------$sN=============================================================================$s(revision ([\d.]+)(\s+locked by:\s+.+;)?$s�date:\s+(.+);\s+author:\s+(.+);\s+state:\s+(.+?);(\s+lines:\s+(\+\d+)?\s+(-\d+)?;)?(\s+commitid:\s+([^;]+);)?(.*mergepoint:\s+([^;]+);)?sbranches: (.+);$s+file [^/]+ was (initially )?added on branchr:NsCVSs
Repositorysrb�.snot a CVS sandboxsRootsCVSROOTs~/.hg.cvspsr.scachecSs"g|]
}|rd�t�d|���qS)�-s\w+)r%�re�findall�rr<rrr�
<listcomp>�s"zcreatelog.<locals>.<listcomp>cSsg|]}|r|�qSrrrCrrrrD���updatesreading cvs log cache %s
sbranchpointsscommitids
mergepointsignoring old cache
scache has %d log entries
serror reading cache: %r
r/�%Y/%m/%d %H:%M:%S %1%2scvss-qs-d%sr1slogsrlogs-d>%srFcSsg|]}t�|��qSr)r�
shellquote)r�argrrrrD��srunning %s
� sprefix=%r directory=%r root=%r
T�
����sAttic/�s/Attic/�s)RCS file must be followed by working file�cS�g|]}t|��qSr��int�r�xrrrrD1rE��s!must have at least some revisionssexpected revision numbercSrRrrSrUrrrrDUrE)�rcs�file�revision�branches�parent�commitid�
mergepoint�branchpointss&revision must be followed by date lines19s UTC)s%y/%m/%d %H:%M:%Ss%Y/%m/%d %H:%M:%Ss%Y-%m-%d %H:%M:%Ssdead���	�
�HEAD�0csg|]
}�|�kr|�qSrr)r�b)�	branchmap�myrevrrrD�ssunknown branch: %scSs(g|]}tdd�|���d�D���qS)cSrRrrS)r�yrrrrD�rEz(createlog.<locals>.<listcomp>.<listcomp>r?)�tuple�stripr2rUrrrrD�s���;s#found synthetic revision in %s: %r
csg|]}�|��qSrrrU)r>rrrD�rEcSrRrrS)r�irrrrD�rE)rMrMrM�d�%d %s�PcS�|j|jfS�N�rYr[�rVrrr�<lambda>��zcreatelog.<locals>.<lambda>��keycSrrrsrtrurrrrv�rwcSs|jSrs)�daterurrrrvss>log cache overlaps with new log entries, re-run without cache.swriting cvs log cache %s
swbs%d log entries
sconvertscvsps.logencodingcSsd�t�tj|��S)Nr?)r%r�maplist�bytestr)�rrrr�revstrszcreatelog.<locals>.revstrzutf-8stranscoding by %s: %s of %s
s-check convert.cvsps.logencoding configuration)�hints6no encoding can transcode CVS log message for %s of %sscvslog)�log)S�statusrrA�compiler�os�pathr%�readrl�IOErrorr-�endswithr�ossepr�environ�get�
expanduser�exists�mkdirr2�note�pickle�loadr	�safehasattr�len�	Exceptionrzr
�datestr�append�normpathr9�debugr�popen�
fromnativeeol�readline�match�group�
startswith�replacerkr�set�	parsedate�author�lower�deadrT�linesr^r_�commentr\r[rYrr"�tags�branch�	iteritems�addr`r�ellipsisrZ�sortr]�dump�
configlist�decode�sysstr�encode�	debugflag�UnicodeDecodeError�LookupErrorr�Abortr|r)6�ui�	directory�root�rlog�cacher��re_00�re_01�re_02�re_03�re_10�re_20�re_30�re_31�re_32�re_50�re_60�re_70�
file_added_re�prefix�f�oldlogrz�cachedir�	cachefile�e�cmd�pr��rcsmap�state�store�pfp�peek�liner�rY�filename�rev�revn�dr\�m�cpeekr`r�r[�revparts�versions�	encodingsr~�entryr��instr)r=rhrir>r�	createlogis�


�



�
�

���
 �
�

�
�
��	��







�


�

&
�

�

�


� �


�

����"
  
�

�
����u


�������������r�c@r
)�	changeseta�Class changeset has the following attributes:
    .id        - integer identifying this changeset (list index)
    .author    - author name as CVS knows it
    .branch    - name of branch this changeset is on, or None
    .comment   - commit message
    .commitid  - CVS commitid or None
    .date      - the commit date as a (time,tz) tuple
    .entries   - list of logentry objects in this changeset
    .parents   - list of one or two parent changesets
    .tags      - list of tags on this changeset
    .synthetic - from synthetic revision "file ... added on branch ..."
    .mergepoint- the branch that has been merged from or None
    .branchpoints- the branches that start at the current entry or empty
    cKsd|_d|_|j�|�dSr)�idrrrrrrrrVszchangeset.__init__cr)Nc3r)s%s=%rNrrrrrr \s�
�z%changeset.__repr__.<locals>.<genexpr>s%s(%s)�, r!r&rrrr([s
�zchangeset.__repr__Nr)rrrrr�Fsr��<csv|�td��i�|D]}|jr(|j�vr|j�|j<qt|j�|j��|j<q|j�fdd�d�g}t�}d�t|�D]�\}}�r�|j�jkr�|jdurU|j�jks�|jdus_�jdur�|j	�j	kr�|j
�j
kr�|j�jkr��jd�jd|jd|jdkr��jd�jd|kr�nn|j|vs�t
|j	|j
|j|jg|j|j|jd��|���t�}t|�d	dkr�d
t|�t|j	�dd�f}	|�t�|	d�d
��j�|�|�|j�|j�_q>|D]�t�j�dko��jdj�_q�dd�}
|D]
��jjt�|
�d��qt���fdd�}|jt�|�d�i�|D]��jD]}|jD]}��|<�q1�q,�q'|D] �t�}
�jD]	}|
�|j��qGt��fdd�|
D���_�q?|du�rgd}|�rot�|�}|du�rvd}|�r~t�|�}i}i}t|�}d}||k�r�||��jD]}|||j|jf<�q�d}�j|v�r�|�j}nt �!|�D]}�j||jv�r�|du�r�n�q�|}�q�g�_"|du�r||}|j�r�t|j"�dk�s�Jtd���|j"�r�|j"d}nd}n|j�s�|du�r�j"�|��j�r�jdk�rd�_�j"�||�j�|�rl|�#�j	�}|�rl|�$d�}|dk�r5d}z|||}Wnt%�yV|�&td�t �'|��j	f�Ynw||v�rl�j|k�rl|j�sl�j"�|�|�r�|�#�j	�}|�r�|�(��r�|�$d�}|dk�r�d}nd}||v�rňj|k�r�t
�j
|�jd�jgg|||�gd�}|�)|d|�|d||<|d7}|d7}�q�||�j<|d7}||k�s�d}|t|�k�r�||j�r�||=n|d7}|t|�k�s�t|�D]
\}�|d�_*�q���r$�D]\}}|j*du�r"|j*du�r"|�&td�|j*|j*f��q|�td�t|��t+j+|ddd|d �|S)!zConvert log into changesets.screating changesets
cs0��|jd�|jp
d|j|j|jpd|j|jfS)N)r/rr:)r�r^r�r�r�rzr`ru)�mindaterrrvrs�z!createchangeset.<locals>.<lambda>rxNrrM)r�r�r�rzrr_r`r^rorpr/rqrLcSs�|j�d�}|j�d�}t|�}t|�}t||�}t|�D]2}|d|kr,||kr,dS|d|kr9||kr9dS||||krDdS||||krOdSqdS)zMimic cvsps sorting orderr1rMr/r)rZr2r��min�range)�lr}�nl�nr�nrnrrr�
entitycompare�s 
�z&createchangeset.<locals>.entitycomparecs(t|j�t|j�}|r|Si}|jD]}|j||j<qi}|jD]}|j||j<q!d}|jD]}|�|jd�|jkrC|r?J�d}nq/|jD]}|�|jd�|jkr`|r\��||f�d}nqGdd�}|sr|t|j�t|j��}|s�|dd�|jD�dd�|jD��}|s�|t|j	�t|j	��}|S)NrrMr/cSs||k||kSrsr)rVrjrrrrvsz0createchangeset.<locals>.cscmp.<locals>.<lambda>cSsg|]}|j�qSr)rZ)rr�rrrrDsz2createchangeset.<locals>.cscmp.<locals>.<listcomp>)
�sumrzrr[rYr�r]r�r�r`)r�r}r��ler�rA�c)�oddrr�cscmp�s>


�
�"zcreatechangeset.<locals>.cscmpc3s �|]}�|�ur|VqdSrsr)r�tag)r��
globaltagsrrr "s�z"createchangeset.<locals>.<genexpr>s{{mergetobranch ([-\w]+)}}s{{mergefrombranch ([-\w]+)}}s0synthetic changeset cannot have multiple parentsresBwarning: CVS commit message references non-existent branch %r:
%s
s&convert-repo: CVS merge from branch %s)r�r�rzr�rr��parentsrPs)changeset %d is both before and after %d
s%d changeset entries
s
cvschangesetsT)�
changesets),r�rr^rzr�r�r��	enumerater`r�r�r�rZr�r_r�r��reprrr�rr�r�	functools�
cmp_to_keyr�rr"rAr�rYr[r�xranger��searchr��KeyError�warnr|�groups�insertr�r)r�r��fuzz�	mergefrom�mergetor�r��filesrn�tr�r�r�r�r�r\r�r�r��	candidater��ccr�r}r)r�r�r�r�r�createchangesetbsd
�
���
�
�


	0

��








��



����


���


�b�
���rcOs�t�|�}|drd}n	|drd}nd}|d}z!|r0g}|D]}|t|||d|d�7}q n	t||d|d�}WntyT}z|�d	|�WYd}~dSd}~wwt|||d
�}~t|�}	i}
i}|D�]�}|dr�|j|
vr�|jr�|jdj	r�||jdj	d
j|jdj	f||j<|j	|
|j<|dr�|jp�d|dvr�qh|	�s�|�d�|�d|j	�|�dt
�|jd��|�d|j
�|�d|jp�d�|�dddgt|j�d
kd�|j�p�df�|jr�|�dd�t|j���|d�r(|j�r(t|j�d
k�r|�dd�dd �|jD���n|�d!|jdj	�|d�rZ|j}
g}|
�rM||
\}
}|�d"|
�pBd||
|
f�|
�s5|�rZ|�d#d�|��|�d$�|�d%|j�|�d&�|jD]=}|j}|�|d'��r�|t|d'�d�}|�d(|d)�d*d �|jD���p�d+d)�d,d �|jD��dd-g|jf��qo|�d.�|�r�|	�r�|dd/|j	k�s�|d|jv�r�d0}	t|�d
k�r�|	�s�|d
d/|j	k�s�|d
|jv�r�dSqhdS)1z�Read CVS rlog for current directory or named path in
    repository, and convert the log to changesets based on matching
    commit log entries and dates.
    s	new_cacheswritesupdate_cacherFNs	revisionssroot)r�r�s%r
sfuzzs	ancestorsrrMsbranchesres---------------------
s
PatchSet %d 
s	Date: %s
rGsAuthor: %s
sBranch: %s
sTag%s: %s 
r:�s�,s(none)sBranchpoints: %s 
r�sparentssParents: %s
cSsg|]}d|j�qS��%d)r�)rr�rrrrDrJzdebugcvsps.<locals>.<listcomp>sParent: %d
s%s:%d:%dsAncestors: %s
sLog:
s%s

s
Members: 
sprefixs	%s:%s->%s%s 
r?cS�g|]}d|�qSr
rrUrrrrDrEsINITIALcSrr
rrUrrrrD rEs(DEAD)rLrF)r�byteskwargsr�r-�writerr�r�r�r�r
r�rzr�r�r%r`�writenoi18nr"r�r�rrZr�r]r[r�)r��args�optsr��	revisionsr�r�r�r��offr\�	ancestors�csrgr}r�r��fnrrr�
debugcvsps�s�
����


��
�����	���
�


���
	$$��r)Nr:TN)r�NN)�
__future__rr�r�rA�mercurial.i18nr�mercurial.pycompatr�	mercurialrrrrr	�mercurial.utilsr
rrr��objectrr�r-r9r�r�rrrrrr�<module>s*
(`
S

https://t.me/RX1948 - 2025