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: //proc/self/root/lib64/python2.7/site-packages/hgext/convert/cvsps.pyo
�
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}|dckr�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}dc}|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+��}$xP
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| d3kr|j-|%�}&tj#|&j.d3��}(d8} n�| d8krK|j-|%�r�i}d9} q�n�| d9kr{|
j-|%�}&|&rHg|&j.d8�jd�D]})t1|)�^q�}*t|*�}+|+d9kr�|+d8d.kr�|*d4d.kr�|*d4 |*d%}*nt2|*�}*|*|krg||*<n||*j"|&j.d3��|&j.d8�||&j.d3�<q�|j-|%�r`d:} q�|j-|%�r�d.} q�n�| d;kr�|j-|%�r�d:} q�n]| d:kr?	|j-|%�}&t3d<||'�d=||(�d>t2g|&j.d3�jd�D]})t1|)�^q��d?gd@dcd dcd!dcdt4��}d6} n�| d6kr||j-|%�}&|&j.d3�},|,d8d*kr�	dA|,},nt|,j��d9kr�	|,dB},nt j5|,dCdDdEg�|_||&j.d8��|_6|&j.d9�j7�dFk|_8|&j.d:�rn
|&j.d6�rM
t1|&j.d:��t1|&j.d6��f|_9q�
t1|&j.d:��d.f|_9n9|&j.d6�r�
d.t1|&j.d6��f|_9n	dc|_9|&j.dG�r�
|&j.dH�|_:n|&j.dI�rj|&j.dJ�jd�}-t|-�d8krdK|_;qjdj|-d4 dL|-d4g�}-g|D]}.||.|-kr8|.^q8}/|/d.|_;ng|_<dG} n�| dGkr`|j-|%�}0|0rg|0j.d3�jdM�D]:})t2g|)j
�jd�D]}1t1|1�^q��^q�|_=dH} q�|j-|%�r/|j-|$�r/d:} t,}!q�|j-|%�rMd.} t,}!q�|j<j"|%�n�| dHkr�|j-|%�r�|$}2|2j
d2�r�|2d% }2n|j-|2�r�d:} t,}!q�|j<j"|%�q�|j-|%�r�d.} t,}!q�|j<j"|%�n|!ry
|j8ry
|j>d%d3kry
t|j<�d3kry
|j-|j<d.�ry
|j(dN|j?|j<d.f�t,|_@n|!rGt%}!tAg|j|j>g�D]})||)�^q�
�|_B|d2j|j<��|_<t|j>�}+|+d9kr(|+d8d.kr(|j|j>d% dcg�d.|_Cn	dc|_Ct4�}3x�|jD�D]�\}4}5t2g|5jd�D]}6t1|6�^qf�}7t|7�d8kr�qGn|7d4d.kr�|7d%d8d.kr�|7d4 |j>kr|3jE|4�qqG|7ddkrG|7|j=kr|3jE|4�qqGqGW|3|_F|j"|�|j?||j?j0d7d*�<t|�dOd.kr�|jtGjHdPt|�|jIfdQ�d2�q�qGqGW|jJdRdS��i}8xqtA|dRdT��D]Z}|j?j0d7d*�}'|'|kr�||'|_?n|j>d% }4|j>|8|j?|4f<q�Wxq|D]i}|j>d% }4|8j|j?|4fdc�}|dckru|j>d4 }n||_K|j>|8|j?|4f<q+W|r2|r)|jJdRdU��|r�|d%j|d.jkr�ttdV���n||}|jtdW�|�tjL|t|dX��q2|}n|jtdY�t|��|jMdZd[�}9|9rqd\�}:x�|D]�};|;j<}<x�|9D]�}y[|<jNtjO|��jPd]�|;_<|jQr�|j(d^||:|;j>�|;jIf�nPWq�tRk
rq�tSk
r.}=tTjU|=d_td`���q�Xq�WtTjUtda�|:|;j>�|;jIfd_td`���qwWntVjV|dcdbt,d+|�|S(esCollect 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/iiiitrcstfiletrevisiontbranchestparentt19s UTCs%y/%m/%d %H:%M:%Ss%Y/%m/%d %H:%M:%Ss%Y-%m-%d %H:%M:%Stdeadiii	i
tHEADt0t;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(WtstatusRtretcompiletNonetopentostpathRtreadtstriptIOErrorRtendswithRtossepRtenvirontgett
expandusertexiststmkdirR tfindalltnotetpickletloadRtsafehasattrtlent	ExceptionRIRtdatestrtappendtnormpathR'RRt
shellquotetdebugtpopent
fromnativeeoltreadlinetTruetmatchtgroupt
startswithtreplacetintttupleR
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*tetcmdtpRt	branchmaptrcsmaptstatetstoretargtpfptpeektlineRsR<tfilenameRGtrevtrevntdtmyrevtbR?tmtytcpeekR5R�R>titrevpartstversionst	encodingsROtentryR~tinst((R+s9/usr/lib64/python2.7/site-packages/hgext/convert/cvsps.pyt	createlogcsL*

.
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}xP||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�||}x-|jrg|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�}|dkrd"}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�}|dkr�d"}q�nd"}||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�_+qW�r�x[�D]P\}}|j+d"k	r/|j+d"k	r/|j'td�|j+|j+f�q/q/Wn|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_R6R~R{R�RIR5(RG(tmindate(s9/usr/lib64/python2.7/site-packages/hgext/convert/cvsps.pyRH@siiR~R{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}x9|jD].}|j|jd�|jkr�d}Pq�q�WxU|jD]J}|j|jd�|jkr�|r�j||f�nd}Pq�q�Wd�}|sG|t	|j�t	|j��}n|s�|g|jD]}|j
^qZg|jD]}|j
^qv�}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@R�RhR=R5(R�RNR�tleR�RStc(todd(s9/usr/lib64/python2.7/site-packages/hgext/convert/cvsps.pytcscmp�s8
	$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]+)}}RCsBwarning: CVS commit message references non-existent branch %r:
%s
s&convert-repo: CVS merge from branch %sRtparentsis)changeset %d is both before and after %d
s%d changeset entries
t
cvschangesetst
changesetsN(.RRRR6RIR�R�RyRUt	enumerateR5R~R{R�R=R�R7RkRhtreprR	R�RR�Rt	functoolst
cmp_to_keyRRRRSRTR<R>RtxrangeR�tsearchRttKeyErrortwarnRMtgroupstinsertR�RRr(R�R9tfuzzt	mergefromtmergetoR�R�tfilesR�ttR�R�R�RR�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{RRR5RRkR~RR=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