HEX
Server: Apache
System: Linux p102.lithium.hosting 4.18.0-553.141.1.el8_10.x86_64 #1 SMP Fri Jul 10 17:48:02 UTC 2026 x86_64
User: bvzmoamr (9955)
PHP: 8.1.34
Disabled: syslog
Upload Files
File: //usr/lib64/python2.7/site-packages/hgext/convert/cvsps.pyc
�
1�3\c@@sddlmZddlZddlZddlZddlmZddlmZm	Z	m
Z
mZmZddl
mZmZmZejZdefd��YZdefd	��YZd
�Zedeed�Zd
efd��YZdeed�Zd�ZdS(i(tabsolute_importN(t_(tencodingterrorthooktpycompattutil(tdateutiltprocutilt
stringutiltlogentrycB@s eZdZd�Zd�ZRS(s�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
    cK@st|_|jj|�dS(N(tFalset	synthetict__dict__tupdate(tselftentries((s9/usr/lib64/python2.7/site-packages/hgext/convert/cvsps.pyt__init__1s	c@s?�fd�t�j�D�}dt��jdj|�fS(Nc3@s&|]}d|�j|fVqdS(s%s=%rN(R
(t.0tk(R(s9/usr/lib64/python2.7/site-packages/hgext/convert/cvsps.pys	<genexpr>6ss%s(%s)s, (tsortedR
ttypet__name__tjoin(Rtitems((Rs9/usr/lib64/python2.7/site-packages/hgext/convert/cvsps.pyt__repr__5s(Rt
__module__t__doc__RR(((s9/usr/lib64/python2.7/site-packages/hgext/convert/cvsps.pyR
s	tlogerrorcB@seZRS((RR(((s9/usr/lib64/python2.7/site-packages/hgext/convert/cvsps.pyR9scC@s_|jd�}|djd�}d}|dkr=|}n|d|djd|�}|S(s^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'
    t:i����t@it/(tsplittfind(tcvspathtpartst
atpositiontstarttrepopath((s9/usr/lib64/python2.7/site-packages/hgext/convert/cvsps.pytgetrepopath<s	tc>@s i��fd�}|jtd��g}tjd�}tjd�}tjd�}	tjd�}
tjd�}tjd�}tjd	�}
tjd
�}tjd�}tjd�}tjd
�}tjd�}tjd�}d}|dhkr�yIttjjdd�d�j	�j
�}|}|dkrKd}nWn#tk
rqttd���nX|r�|j
tj�r�|tj7}ny.ttjjdd�d�j	�j
�}Wq�tk
r�q�Xn|s�tjjdd�}ng}dh}|r�tjjd�}tjj|�sDtj|�n|jd�|dg}g|D]'}|rddjtjd|��^qd}tjj|djg|D]}|r�|^q���}n|dkr�y�|jtd�|�tjt|d��}xa|D]Y}tj|d�oItj|d �oItj|d!�s|jtd"��g}PqqW|jtd#�t|��Wn*tk
r�}|jtd$�|�nX|r�|d%j}t j!|d&�}q�nd'd(g}|r\|j"d)|�tj#t$|��}|j
d*�s7|d*7}n|rS|tj#|�}q\|}n|j"d+d,g|�|r�|j"d-|�n|j"|�i}i}i}d.} t%}!g|D]}"t&j'|"�^q�}|jtd/�d0j|��|j(d1|||f�t&j)d0j|�d�}#tj*|#j+��}$x�
t,r%|$}%|%dkrcPntj*|#j+��}$|%j
d2�r�|%d% }%n| d.kr�|j-|%�}&|&rg|&j.d3�}'i}|r[tj#|'d4 �}(|(j/|�r|(t|�}(n|(j/d*�r!|(d3}(n|(j/d5�r=|(d6}(n|(j0d7d*�}(d8} qGnd3} qGn|j-|%�}&|&r�t|&j.d3���n|	j-|%�}&|&r�t|&j.d8���n|
j-|%�r�
t|%��q�
n�| d3kr6|j-|%�}&|&st1td9���tj#|&j.d3��}(d8} nX| d8krc|j-|%�r�
i}d:} q�
n+| d:kr�|
j-|%�}&|&r`g|&j.d8�jd�D]})t2|)�^q�}*t|*�}+|+d:kr|+d8d.kr|*d4d.kr|*d4 |*d%}*nt3|*�}*|*|kr'g||*<n||*j"|&j.d3��|&j.d8�||&j.d3�<q�
|j-|%�rxd;} q�
|j-|%�r�
d.} q�
n�| d<kr�|j-|%�r�d;} q�
|j-|%�s�
t1td=���n�| d;kr�	|j-|%�}&|&s	t1td>���t4d?||'�d@||(�dAt3g|&j.d3�jd�D]})t2|)�^qI	�dBgdCdhd dhd!dhdt5��}d6} n�| d6kr|j-|%�}&|&s�	t1tdD���|&j.d3�},|,d8d*kr�	dE|,},nt|,j��d:kr
|,dF},nt j6|,dGdHdIg�|_||&j.d8��|_7|&j.d:�j8�dJk|_9|&j.d;�r�
|&j.d6�r�
t2|&j.d;��t2|&j.d6��f|_:qt2|&j.d;��d.f|_:n9|&j.d6�rd.t2|&j.d6��f|_:n	dh|_:|&j.dK�r5|&j.dL�|_;n|&j.dM�r�|&j.dN�jd�}-t|-�d8krzdO|_<q�dj|-d4 dP|-d4g�}-g|D]}.||.|-kr�|.^q�}/t|/�d3ks�t1dQ|j<��|/d.|_<ng|_=dK} n�| dKkr�|j-|%�}0|0r�g|0j.d3�jdR�D]:})t3g|)j
�jd�D]}1t2|1�^qd�^qE|_>dL} q�
|j-|%�r�|j-|$�r�d;} t,}!q�
|j-|%�r�d.} t,}!q�
|j=j"|%�n�| dLkr�
|j-|%�r]
|$}2|2j
d2�r,
|2d% }2n|j-|2�rJ
d;} t,}!q�
|j=j"|%�q�
|j-|%�r{
d.} t,}!q�
|j=j"|%�n|!r|j9r|j?d%d3krt|j=�d3kr|j-|j=d.�r|j(dS|j@|j=d.f�t,|_An|!rGt%}!tBg|j|j?g�D]})||)�^q-�|_C|d2j|j=��|_=t|j?�}+|+d:kr�|+d8d.kr�|j|j?d% dhg�d.|_Dn	dh|_Dt5�}3x�|jE�D]�\}4}5t3g|5jd�D]}6t2|6�^q��}7t|7�d8kr(q�n|7d4d.krr|7d%d8d.krr|7d4 |j?kr�|3jF|4�q�q�|7dikr�|7|j>kr�|3jF|4�q�q�q�W|3|_G|j"|�|j@||j@j0d7d*�<t|�dTd.kr"|jtHjIdUt|�|jJfdV�d2�q"qGqGW|jKdWdX��i}8xqtB|dWdY��D]Z}|j@j0d7d*�}'|'|kr�||'|_@n|j?d% }4|j?|8|j@|4f<qUWxq|D]i}|j?d% }4|8j|j@|4fdh�}|dhkr|j?d4 }n||_L|j?|8|j@|4f<q�W|r�|r�|jKdWdZ��|r{|d%j|d.jkr{ttd[���n||}|jtd\�|�tjM|t|d]��q�|}n|jtd^�t|��|jNd_d`�}9|9rda�}:x�|D]�};|;j=}<x�|9D]�}y[|<jOtjP|��jQdb�|;_=|jRr{|j(dc||:|;j?�|;jJf�nPWqtSk
r�qtTk
r�}=tUjV|=ddtde���qXqWtUjVtdf�|:|;j?�|;jJfddtde���qWntWjW|dhdgt,d+|�|S(jsCollect the CVS rlogc@s�j||�S(s#return a shared version of a string(t
setdefault(ts(t_scache(s9/usr/lib64/python2.7/site-packages/hgext/convert/cvsps.pytscacheisscollecting 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(tCVSt
Repositorytrbt.snot a CVS sandboxtRoottCVSROOTs~/.hg.cvspsRtcachet-s\w+Rsreading cvs log cache %s
tbranchpointstcommitidt
mergepointsignoring old cache
scache has %d log entries
serror reading cache: %r
i����s%Y/%m/%d %H:%M:%S %1%2tcvss-qs-d%sRtlogtrlogs-d>%sisrunning %s
t sprefix=%r directory=%r root=%r
s
ii����sAttic/is/Attic/is)RCS file must be followed by working fileiiis!must have at least some revisionssexpected revision numbertrcstfiletrevisiontbranchestparents&revision must be followed by date linet19s UTCs%y/%m/%d %H:%M:%Ss%Y/%m/%d %H:%M:%Ss%Y-%m-%d %H:%M:%Stdeadiii	i
tHEADt0sunknown branch: %st;s#found synthetic revision in %s: %r
ids%d %siPtkeycS@s|j|jfS(N(R<R>(tx((s9/usr/lib64/python2.7/site-packages/hgext/convert/cvsps.pyt<lambda>�R(cS@s|j|jfS(N(R<R>(RG((s9/usr/lib64/python2.7/site-packages/hgext/convert/cvsps.pyRH�R(cS@s|jS(N(tdate(RG((s9/usr/lib64/python2.7/site-packages/hgext/convert/cvsps.pyRH�R(s>log cache overlaps with new log entries, re-run without cache.swriting cvs log cache %s
twbs%d log entries
tconvertscvsps.logencodingcS@sdjtjtj|��S(NR0(RRtmaplisttbytestr(tr((s9/usr/lib64/python2.7/site-packages/hgext/convert/cvsps.pytrevstr�ssutf-8stranscoding by %s: %s of %s
thints-check convert.cvsps.logencoding configurations6no encoding can transcode CVS log message for %s of %stcvslogN(iii(XtstatusRtretcompiletNonetopentostpathRtreadtstriptIOErrorRtendswithRtossepRtenvirontgett
expandusertexiststmkdirR tfindalltnotetpickletloadRtsafehasattrtlent	ExceptionRIRtdatestrtappendtnormpathR'RRt
shellquotetdebugtpopent
fromnativeeoltreadlinetTruetmatchtgroupt
startswithtreplacetAssertionErrortintttupleR
tsett	parsedatetauthortlowerRBtlinesR6R7tcommentR?R>R<RRttagstbrancht	iteritemstaddR5R	tellipsisR=tsortR@tdumpt
configlisttdecodetsysstrtencodet	debugflagtUnicodeDecodeErrortLookupErrorRtAbortR(>tuit	directorytrootR:R3R,R9tre_00tre_01tre_02tre_03tre_10tre_20tre_30tre_31tre_32tre_50tre_60tre_70t
file_added_retprefixtoldlogRItcachedirt	cachefileR*tetcmdtpR�t	branchmaptrcsmaptstatetstoretargtpfptpeektlineRsR<tfilenameRGtrevtrevntdtmyrevtbR?tmtytcpeekR5R�R>titrevpartstversionst	encodingsROtentryRtinst((R+s9/usr/lib64/python2.7/site-packages/hgext/convert/cvsps.pyt	createlogcsV*

.
4.
!

	
" 	


	1,
		%1	

0!!	!)
		Y			
					7&		.$	
(


	 
		
	
		 
t	changesetcB@s eZdZd�Zd�ZRS(s�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
    cK@s&d|_t|_|jj|�dS(N(RUtidRRR
R(RR((s9/usr/lib64/python2.7/site-packages/hgext/convert/cvsps.pyR(s		c@s?�fd�t�j�D�}dt��jdj|�fS(Nc3@s&|]}d|�j|fVqdS(s%s=%rN(R
(RR(R(s9/usr/lib64/python2.7/site-packages/hgext/convert/cvsps.pys	<genexpr>.ss%s(%s)s, (RR
RRR(RR((Rs9/usr/lib64/python2.7/site-packages/hgext/convert/cvsps.pyR-s(RRRRR(((s9/usr/lib64/python2.7/site-packages/hgext/convert/cvsps.pyR�s	i<c@s�|jtd��i�x\|D]T}|jr |j�krQ|j�|j<qtt|j�|j��|j<q q W|jd�fd��g}t�}d#�x�t|�D]�\}}�o�|j	�j	ko�|jd#k	r�|j�jkp�|jd#ks�jd#ko�|j
�j
ko�|j�jko�|j�jko��jd�jd|jd|jdko��jd�jd|kno�|j
|ksttd|j
d|jd|jd	|jd
gd|jd|j	d
|j��|j��t�}t|�ddkrtdt|�t|j
�dd!f}	|jtj|	d�d�qtn�jj|�|j|j
�|j�_q�Wx6|D].�t�j�dko��jdj�_q�Wd�}
x*|D]"��jjdtj|
��q�Wt���fd�}|jdtj|��i�x@|D]8�x/�jD]$}x|jD]}��|<qqWqaWqQWx]|D]U�t�}
x!�jD]}|
j|j�q�Wt��fd�|
D���_q�W|d#krd}n|rtj|�}n|d#kr/d}n|rGtj|�}ni}i}t|�}d}xw||kr�||�x'�jD]}|||j|j f<q�Wd#}�j|kr�|�j}nLxIt!j"|�D]8}�j||j	kr|d#k	r�Pq�q�n|}q�Wg�_#|d#k	r�||}xT|jr�t|j#�dkskt$td���|j#r�|j#d}q;d#}Pq;W|d#k	r��j#j|�q�n�jr��jdkr�d#�_n�j#j||�j�n|r�|j%�j
�}|r�|j&d�}|dkr5d#}ny|||}Wn:t'k
r�|j(td�t!j)|��j
f�nX||kr��j|kr�|jr��j#j|�q�q�n|r�|j%�j
�}|r�|j*�r|j&d�}|dkrd#}qnd#}||kr��j|kr�td�jd|d	�jdd�jd
gdgd|||�g�}|j+|d|�|d||<|d7}|d7}qhq�q�n||�j<|d7}qhWd}x7|t|�kr||jr||=q�|d7}q�Wx't|�D]\}�|d�_,q,W�r�x[�D]P\}}|j,d#k	rV|j,d#k	rV|j(td�|j,|j,f�qVqVWn|jtd �t|��t-j-|d#d!t.d"|�|S($sConvert log into changesets.screating changesets
RFc@sF�j|jd�|jpd|j|j|jp6d|j|jfS(Ni����iR((i����i(R_R6RR|R�RIR5(RG(tmindate(s9/usr/lib64/python2.7/site-packages/hgext/convert/cvsps.pyRH@siiRR|R�RIRR7R5R6ids%d %si����iPs
cS@s�|jjd�}|jjd�}t|�}t|�}t||�}x�t|�D]x}|d|kr~||kr~dS|d|kr�||kr�d
S||||kr�dS||||krXd
SqXWdS(sMimic cvsps sorting orderRii����i(R=R Rhtmintrange(tlRNtnltnrtnR�((s9/usr/lib64/python2.7/site-packages/hgext/convert/cvsps.pyt
entitycompare�s	c@s�t|j�t|j�}|r&|Si}x!|jD]}|j||j<q6Wi}x!|jD]}|j||j<q`Wd}xF|jD];}|j|jd�|jkr�|s�t�d}Pq�q�WxU|jD]J}|j|jd�|jkr�|r�j	||f�nd}Pq�q�Wd�}|sT|t
|j�t
|j��}n|s�|g|jD]}|j^qgg|jD]}|j^q��}n|s�|t
|j�t
|j��}n|S(Niii����cS@s||k||kS(N((RGR�((s9/usr/lib64/python2.7/site-packages/hgext/convert/cvsps.pyRH�R((
tsumRIRR>R<R_RUR@RwR�RhR=R5(R�RNR�tleR�RStc(todd(s9/usr/lib64/python2.7/site-packages/hgext/convert/cvsps.pytcscmp�s:

	$D$c3@s%|]}�|�kr|VqdS(N((Rttag(R�t
globaltags(s9/usr/lib64/python2.7/site-packages/hgext/convert/cvsps.pys	<genexpr>�ss{{mergetobranch ([-\w]+)}}s{{mergefrombranch ([-\w]+)}}s0synthetic changeset cannot have multiple parentsRCsBwarning: CVS commit message references non-existent branch %r:
%s
s&convert-repo: CVS merge from branch %sR�tparentsis)changeset %d is both before and after %d
s%d changeset entries
t
cvschangesetst
changesetsN(/RRRR6RIR�R�RzRUt	enumerateR5RR|R�R=R�R7RkRhtreprR	R�RR�Rt	functoolst
cmp_to_keyR�RRRSRTR<R>RtxrangeR�RwtsearchRttKeyErrortwarnRMtgroupstinsertR�RRr(R�R9tfuzzt	mergefromtmergetoR�R�tfilesR�ttR�R�R�R�R�R?R�tfR�t	candidateR�tccR�RN((R�R�R�R�s9/usr/lib64/python2.7/site-packages/hgext/convert/cvsps.pytcreatechangeset1s
	'	!$
	&#
	,	
 	0

	&		

	
			
%





cO@s&tj|�}|dr"d}n|dr5d}nd	}|d}yc|r�g}xP|D])}|t||d|dd|�7}q[Wnt|d|dd|�}Wn%tk
r�}|jd|�d	SXt|||d
�}~t|�}	i}
i}x|D]}|dr�|j|
kru|j	ru|j	dj
ru||j	dj
d
j|j	dj
f||j<n|j
|
|j<n|dr�|jp�d|dkr�qn|	s�|jd�|jd|j
�|jdtj|j
d��|jd|j�|jd|jp!d�|jdddgt|j�d
kdj|j�p`df�|jr�|jddjt|j���n|dr|j	rt|j	�d
kr�|jddjg|j	D]}
d|
j
^q���q|jd |j	dj
�n|dr�|j}g}x>|rp||\}}|jd!|p[d||
|f�q3W|r�|jd"dj|��q�n|jd#�|jd$|j�|jd%�x�|jD]�}|j}|j|d&�r|t|d&�}n|jd'|d(jg|jD]}d|^q$�p@d)d(jg|jD]}d|^qP�dd*g|jf�q�W|jd+�n|r�|	r�|dd|j
ks�|d|jkr�t}	q�nt|�d
kr|	r|d
d|j
ks|d
|jkrPqqqWd	S(,s�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.
    t	new_cachetwritetupdate_cacheRt	revisionsR�R3s%r
NR�t	ancestorsiiR?RCs---------------------
s
PatchSet %d 
s	Date: %s
s%Y/%m/%d %H:%M:%S %1%2sAuthor: %s
sBranch: %s
sTag%s: %s 
R(R*t,s(none)sBranchpoints: %s 
s, R�sParents: %s
s%dsParent: %d
s%s:%d:%dsAncestors: %s
sLog:
s%s

s
Members: 
R�s	%s:%s->%s%s 
R0tINITIALs(DEAD)s
(RtbyteskwargsRUR�RR�R�RhR�R�R�RRjRIR|R�RR5RRkRRR=RuR@R>RBR(R�targstoptsR3R�R9R�R�R�toffR?R�tcsR�R�RNR�R�tfnRG((s9/usr/lib64/python2.7/site-packages/hgext/convert/cvsps.pyt
debugcvspsas�
	
	

* 

(#
%			1
		( 

		,&(t
__future__RR�RWRStmercurial.i18nRt	mercurialRRRRRtmercurial.utilsRRR	RetobjectR
RiRR'RURrR�R�R�R�(((s9/usr/lib64/python2.7/site-packages/hgext/convert/cvsps.pyt<module>s (		'���1