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/proc/thread-self/root/lib64/python2.7/site-packages/hgext/convert/subversion.pyo
�
1�3\c@@s�ddlmZddlZddlZddlZddlmZddlm	Z	m
Z
mZmZm
ZddlmZmZmZddlmZejZejZejZejZejZejZejZejZejZejZejZej Z ej!Z!ej"Z"ej#Z#yddl$Z$ddl%Z$ddl&Z$ddl'Z$ddl(Z$ddlm)Z)ddl*Z*e*j+d	d
dde,�e$j-j.Wne/k
r�e0Z$nXd
e1fd��YZ2d�Z3d�Z4d�Z5d�Z6de7fd��YZ8de9e:d�Z;d�Z<de7fd��YZ=de>fd��YZ?d�Z@d�ZAieAd6eAd6e@d6ZBd �ZCd!efd"��YZDd#ZEd$eefd%��YZFdS(&i(tabsolute_importN(t_(tencodingterrortpycompattutiltvfs(tdateutiltprocutilt
stringutili(tcommon(t	transporttignoretmodulessvn.coretcategorytSvnPathNotFoundcB@seZRS((t__name__t
__module__(((s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pyR?scC@s�|jdd�}d}t|�dkr=t|d�}n|djdd�}d}d}t|�dkr�|djd�r�|dd}d|d}n|||fS(s�Parse a revision string and return (uuid, path, revnum).
    >>> revsplit(b'svn:a2147622-4a9f-4db4-a8d3-13562ff547b2'
    ...          b'/proj%20B/mytrunk/mytrunk@1')
    ('a2147622-4a9f-4db4-a8d3-13562ff547b2', '/proj%20B/mytrunk/mytrunk', 1)
    >>> revsplit(b'svn:8af66a51-67f5-4354-b62c-98d67cc7be1d@1')
    ('', '', 1)
    >>> revsplit(b'@7')
    ('', '', 7)
    >>> revsplit(b'7')
    ('', '', 0)
    >>> revsplit(b'bad')
    ('', '', 0)
    t@iit/tssvn:i(trsplittlentinttsplitt
startswith(trevtpartstrevnumtuuidtmod((s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pytrevsplitBs%cC@stj|d�S(Ns!$&'()*+,-./:=@_~(turlreqtquote(ts((s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pyR!\scC@s�y tjjtjj|��SWntjjk
r9nXtjj|�r�tjj	tjj
|��}tjr�dt
j	|�}ntj|�}dt|�}ntjj|�S(NRs	file://%s(tsvntclientt
url_from_pathtcoretsvn_path_canonicalizetSubversionExceptiontostpathtisdirtnormpathtabspathRt	iswindowsRRttolocalR!(R*((s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pytgeturlfs 	cC@s.tjj�}tjj|_||j_|S(N(R#R&tsvn_opt_revision_ttsvn_opt_revision_numbertkindtvaluetnumber(R5toptrev((s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pyR6vstchangedpathcB@seZd�ZRS(cC@s(|j|_|j|_|j|_dS(N(t
copyfrom_pathtcopyfrom_revtaction(tselftp((s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pyt__init__}s(RRR=(((s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pyR7|sc	@s�d���fd�}y>tjd|�}	tjj|	j|||||||�WnRtk
r|tjd���nBt	k
r�}
tjt
j|
����nXtjd����j�t
jd�dS(Ni����c	@shi}|dk	rBx-|j�D]\}}t|�||<qWntj|||||f���dS(N(tNonet	iteritemsR7tpickletdump(	t
orig_pathsRtauthortdatetmessagetpooltpathstktv(tfptprotocol(s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pytreceiver�sturli(RtSvnRaTransportR#tratget_logtIOErrorR@RAR>t	ExceptionR	tforcebytestrtflushR)t_exit(RJRMRGtstarttendtlimittdiscover_changed_pathststrict_node_historyRLtttinst((RJRKs>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pyt
get_log_child�s
 
cK@sMtdkr$tjtd���nt|jj��}t|j	|�dS(siFetch SVN log in a subprocess and channel them back to parent to
    avoid memory collection issues.
    s5debugsvnlog could not load Subversion python bindingsN(
R#R>RtAbortRt
decodeargstfintreadR]tfout(tuitoptstargs((s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pytdebugsvnlog�st	logstreamcB@s)eZdZd�Zd�Zd�ZRS(s$Interruptible revision log iterator.cC@s
||_dS(N(t_stdout(R;tstdout((s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pyR=�scc@s�x�tr�ytj|j�}Wn&tk
rGtjtd���nXy|\}}}}}Wn@tt	fk
r�|dkr�Pntjtd�|��nX|VqWdS(Ns>Mercurial failed to run itself, check hg executable is in PATHslog stream exception '%s'(tTrueR@tloadRhtEOFErrorRR^Rt	TypeErrort
ValueErrorR>(R;tentryRBRRCRDRE((s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pyt__iter__�s	
cC@s&|jr"|jj�d|_ndS(N(RhtcloseR>(R;((s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pyRq�s	
(RRt__doc__R=RpRq(((s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pyRg�s		tdirectlogstreamcB@s)eZdZdeed�Zd�ZRS(s�Direct revision log iterator.
    This can be used for debugging and development but it will probably leak
    memory and is not suitable for real conversions.ic
	@sM�fd�}tjd|�}	tjj|	j|||||||�dS(Nc	@sbi}|dk	rBx-|j�D]\}}t|�||<qWn�j|||||f�dS(N(R>R?R7tappend(	RBRRCRDRERFRGRHRI(R;(s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pyRL�s
RM(RRNR#RORP(
R;RMRGRVRWRXRYRZRLR[((R;s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pyR=�s	cC@sdS(N((R;((s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pyRq�s(RRRrRjtFalseR=Rq(((s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pyRs�scC@s:x3dD]+}tjjtjj||��stSqWtS(Ntlocksthookstformattdb(RvRwRxRy(R)R*texiststjoinRuRj(RcR*tprototx((s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pyt	filecheck�s
!cC@s�y8tj�}|jd||fd�}|j�}Wn\tjk
r�}|jdkrs|jtd��t	S|j
j�}ntk
r�tSXd|kS(Ns%s://%s/!svn/ver/0/.svntrbi�swsvn: cannot probe remote repository, assume it could be a subversion repository. Use --source-type if you know better.
s#<m:human-readable errcode="160013">(
R tbuildopenertopenRaturlerrt	httperrortcodetwarnRRjRJRRRu(RcR*R|topenertrsptdataR\((s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pyt	httpcheck�s
thttpthttpstfilecC@s:y�|jdd�\}}|dkr�tjr�|d dkr�|dd!j�r�|dd!j�dkr�|d d|d}ntj|�}nWn)tk
r�d}tj	j
|�}nX|dkr�tj|�}nt
j|d	��}x<d|kr5||||�rtS|jdd�d
}q�WtS(Ns://iR�Riis%3a/s:/cW@stS(N(Ru(Re((s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pyt<lambda>Ri(RRR.tisalphatlowerR turl2pathnameRnR)R*R-RtpconverttprotomaptgetRjRRu(RcRMR|R*tcheck((s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pytissvnurls$,
t
svn_sourcecB@s�eZdd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
dd	�Zd
�Zd�Z
d�Zdd
�Zd�Zdd�Zd�Zd�Zd�Zd�Zd�Zdd�Zdd�Zdeed�ZRS(c
C@s�tt|�j|||d|�|jd�p|jd�ptjj|�rstjjtjj|d��pt||�s�t	t
d�|��ntdkr�t
t
d���nyAtjjtjjf}|dkr�t
t
d	�|��nWn#tk
r"t
t
d
���nXi|_d}y@|jd�}|dkrqt||d�}|| }nWntk
r�nXt|�|_d
|_y�tjd|j�|_|jj|_|jj|_tjj|j�|_t j!|jt"|j��|_#d|_$|j#|_%i|_&i|_'tjj(|j�|_)Wnetjj*k
r�|j+�dtjjtjjtjj,f}t	t
d�|j|f��nX|r1t"|�dkr�t-j.t
d���nyt|d�}Wq1tk
r-t-j.t
d�|d��q1Xn|j/j0dd�}	|	dkr[d}	n|	j1d�|_2|j/j0dd�|_3y1t|j3�|_3|j3dkr�d|_3nWn-tk
r�t-j.t
d�|j3��nXy|j4|j#|�|_5Wnt6k
rd|_5nX|j5sGt-j.t
d�|j#��n|j7|j5�|_8d|_9tjjtjj|d��r�||_:n	d|_:d|_;dS(Ntrevsssvn://s
svn+ssh://s.svns-%s does not look like a Subversion repositorys)could not load Subversion python bindingsiis=Subversion python bindings %d.%d found, 1.4 or later requireds=Subversion python bindings are too old, 1.4 or later requiredRisUTF-8RMs%d.%d.%dsB%s does not look like a Subversion repository to libsvn version %ss@subversion source does not support specifying multiple revisionss"svn: revision %s is not an integertconverts	svn.trunkttrunkRssvn.startrevs(svn: start revision %s is not an integersno revision found in module %ss.svn/entries(ii(NN(<tsuperR�R=RR)R*RzR{R�tNoRepoRR#R>tMissingToolR&t
SVN_VER_MAJORt
SVN_VER_MINORtAttributeErrortlastrevstrfindRRnR0RMRRRNROR$tctxtget_repos_roottbaseurlR tunquoteRR
t
prevmodulet
rootmoduletcommitsRGtget_uuidRR(t	tracebackt
SVN_VER_MICRORR^Rctconfigtstript	trunknametstartrevtlatesttheadRRtlast_changedt
_changescachetwct	convertfp(
R;RctrepotypeRMR�tversionR�tatt
svnversionttrunkcfg((s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pyR=$s�"!

	
	"			
	
	


		!	cC@sdi}xN|D]F}t|�\}}}|j||�}||kr
|||<q
q
W||_dS(N(Rt
setdefaultR�(R;trevmapR�trevidRR
Rt
lastrevnum((s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pyt	setrevmap�s
cC@s]y>tjj|jjd�dt|�|t|j�tSWntj	j
k
rXtSXdS(NR(R#R$tlsRMtrstripR!RuR�RjR&R((R;R*R6((s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pyRz�s&c
@s��fd�}�fd�}t�j�}d}|d|�}|d|��_|d|�}|r��jpud}�jd|7_�j�j�j��_�js�tjtd��j��q�n�jg�_	�jdk	rd	|�jpdf�_n|r�jjd�}t
jj|dt|�|t�j�}x�t|�D]�}	d
|||	f}
||
�j�s�q_n�j|
�j�}|s��jjtd�|	�q_n�jjtd�|	�j|�f��j	j|�q_Wn�jr��j	r�t�j	�d
krJtjtd���n�j�j	d�}|�jkr�tjtd��j��q�n�j	S(Nc@s"�j||�}|tjjkS(N(t
_checkpathR#R&tsvn_node_dir(R*RR3(R;(s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pyR+�sc@s��jjdd|�}|dk	r;|j�dkr;dS|pD|jd�}�j||�s��jj|�r�|dkr�dS|r�tjt	d�||f��ndS�jj
t	d�||f�|S(NR�ssvn.RRR�s&expected %s to be at %r, but not foundsfound %s at %r
(RcR�R>R�RzR
tendswithRR^Rtnote(tnameRtcfgpathR*(R;(s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pyt
getcfgpath�s RR�ttagstbranchesRsno revision found in module %ss%s/%ss%s/%s/%ssignoring empty branch %s
sfound branch %s at %d
is>svn: start revision is not supported with more than one branchis.svn: no revision found after start revision %d(R6R�R�R
R�R�RR^RtheadsR>RMR�R#R$R�R!RuR�tsortedRcR�RRtR�R(
R;R+R�Rt	oldmoduleR�R�trpathtbranchnamestbranchR
tbrevidR((R;s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pytgetheads�sR		c
C@s|j|\}}i}|rC|j|||�\}|_}n|sP|r�t|�\}}}	tjj|jt|�t	|	�t
|j�}
g|
j�D]'\}}|j
tjjkr�|^q�}t�|_n|j�t||gt|��}||fS(N(RGtexpandpathstremovedRR#R$R�R�R!R6RjR�R?R3R&t
svn_node_filetsettsorttzipR(
R;RtfullRGtparentstcopiestfilesRR
Rtentriestnte((s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pyt_getchanges�s$
!
cC@sb|jd|kr0|r0|jd\}}n"|j||�\}}|j|=||t�fS(Nii(R�R�RGR�(R;RR�R�R�((s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pyt
getchanges�s

cC@sH|j|t�\}}|||ff|_g|D]}|d^q4S(Ni(R�RuR�(R;RtiR�R�tf((s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pytgetchangedfiles�scC@s�||jkr�t|�\}}}||_|j|�|jj|d�}||krh|d}n|j||�||jkr�tjt	d�|��q�n|j|}|j|=|S(Niissvn: revision %s not found(
R�RR
treparentR�R�t_fetch_revisionsRR^R(R;RRR
Rtstopt	revcommit((s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pyt	getcommits	



t	splicemapcC@s8tjd|�s4tjtd�||f��ndS(s; fails if revision format does not match the correct formatsXsvn:[0-9a-f]{8,8}-[0-9a-f]{4,4}-[0-9a-f]{4,4}-[0-9a-f]{4,4}-[0-9a-f]{12,12}(.*)\@[0-9]+$s.%s entry %s is not a valid revision identifierN(tretmatchRR^R(R;trevstrtmapname((s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pytcheckrevformats		cC@s$t|jjdd�d�|jS(NRi(RR�RR�(R;((s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pyt
numcommitsscC@sei}|jdkr|Sg}|j}tjj|j�}|j|jg||j�}z�x�|D]�}|\}}}	}
}|s�g}ng|j�D]*\}}
|
jr�|
j|
j	|f^q�}|j
dt�|}|r|dd|kr|j�d}nx�|D]�\}}}|j
|d�s>qnxc|D]E}|dj
|�rE||dt|�}||g|d*PqEqEW|j|||g�qWtd�|j�D��}t�}xg|D]_}xV|D]N\}}}|j
|d�s�|j
||d�r!q�n|j|�Pq�Wq�WxO|D]G}g|D]4}|d|krK|dj
|d�rK|^qK}q>Wg}x�|D]�\}}}|jd�d}|j
|�r�|j|||g�q�n||kr�q�ny5|j||�}|r)||kr)|||<nWq�tk
r=q�Xq�W|}|}qeWWd|j�X|S(Ntreversei����iiRcs@s<|]2\}}|jdkr|jr||jfVqdS(tAN(R:R8(t.0R<R�((s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pys	<genexpr>Vs	(R�R>R#ROtget_latest_revnumt_getlogR�R?R8R9R�RjtpopRRRttdictR�taddRR�RRq(R;R�tpendingsttagspathRVtstreamRot	origpathsRRCRDRER<R�R�tsrctagspathtsourcet	sourcerevtdestttagttagpathtaddedstbadrootstdestroottbadroott	renamingsttagnamettagid((s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pytgettags!st
	
	:
			

	
(
cC@s�|js
dS|jdkrFttjj|jdd�d�|_n|jjtj	d||j
|�f��|jj�dS(Ns.svns	hg-shamaptabs%s %d
(R�R�R>R�R)R*R{twriteRttonativeeolRRT(R;Rtdestrev((s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pyt	converted�s	cC@sd|j|p|j|fS(Nssvn:%s%s@%s(RR
(R;RR
((s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pyR��scC@st|jd�d�S(NRi����(RR(R;R((s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pyR�sc@s�d�fd�}|j�j�s<�jjd|�dS|dkr`tjj�j�}nyD�jd�}tjj	�j|j
d�|�}�j|�Wntjjk
r�d}nX|s�t
td�||f��n||||j�\}}|dkrL|||�\}}|dkrL�jjd|�dSn|j�j�sv�jjd|�dS�j||�S(s]Find the latest revid affecting path, up to stop revision
        number. If stop is None, default to repository latest
        revision. It may return a revision in a different module,
        since a branch may be moved without a change being
        reported. Return None if computed module does not belong to
        rootmodule subtree.
        c@s
�j|g||pd�}z�x�|D]�}|\}}}}}	|dkrY|rYPn||kriPnxq|D]i}
|j|
�sp||
jr�qpn||
j|t|
�}�jjd|||f�|}PqpWq(W|s�d}n||fSWd|j�XdS(Nis#branch renamed from %s to %s at %d
(R�R>RR8RRctdebugRq(R*RVR�R�RoRGRRCRDRER<tnewpath(R;(s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pytfindchanges�s*

		signoring foreign branch %r
RRs%s not found up to revision %dsignoring empty branch %r
N(R>RR�RcRR#ROR�R�tstatR�R&R(RRtcreated_revR�(R;R*R�RR�tdirentRtrealpath((R;s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pyR��s2$
cC@s{|j|kr|S|jt|�}|j}|dkrDd}n|jjd|�tjj|j|�||_|S(s:Reparent the svn transport and return the previous parent.Rsreparent to %s
N(	R�R�R!R>RcRR#ROR�(R;R
tsvnurlR�((s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pyR��s			cC@s~t�t�}}i}t|�d\}}||jkrZ||_|j|j�n|jjtd�dtd�dt|��}	x�t|�D]�\}
\}}|	j	|
d|�|j
|�}
|j|
|�}|tj
jkr�|j|j|
��|js�|rq�nt|d�d\}}|j|krKq�n|j
|j|�}|slq�n|jjd|
||jf�|j|�||j|
�<q�|dkr�|jjd	|j�t|d�d\}}|d
|
}|j|
||�}|tj
jkr6|j|j|
��qP|tj
jkr�|jd
�}|jd
�}|j||�}xr|D]M}|j||�}|j
d
||�}|r|j|j|��qqWqP|jjd||f�q�|tj
jkr�|jdkrq�n|jd
kr�|r�t|d�d\}}|j|
||�}|tj
jkr�|j|j|
��q�|tj
jkr�xO|j||�D]8}|j
d
|�}|r�|j|j|��q�q�Wq�nxL|j||�D]8}|j
d
|�}|r|j|j|��qqW|js�|rSq�nt|d�d\}}|j|kr�q�n|j
|j|�}|s�q�n|jjd|||jf�|j|j|j�}xr|D]g}|j
d
||�}|s
q�n||t|�}|j
|�}|j|�||j|�<q�Wq�q�W|	j�|j	|�t|�||fS(Nisscanning pathstunitRGttotaltitemiscopied to %s from %s@%s
s
gone from %s
Rs unknown path in revision %d: %s
tMtRsmark %s came from %s:%d
(R�RR
R�RctmakeprogressRRt	enumeratetupdatet
getrelpathR�R#R&R�R�trecodeR8R9RR�R�t
_iterfilestreplaceR:tcompletetlist(R;RRGR�tchangedR�R�t
new_moduleRtprogressR�R*tentt	entrypathR3tpmoduletprevnumR8t
parentpathtfromkindtoroottnroottchildrent	childpathtpkindtcopyfrompatht
copytopath((s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pyR��s�	!
 #
'

c@s'|�kr�|}�nd�_��fd�}�jjtd��j|�f�yjd}t}�j�jg|��}z�x�|D]�}|\}}	}
}}|	�jkr�t	}Pn|s��jj
d|	�|p�|	dk}q�n|||	|
||�\}
}|
r$|
}n|r�Pq�q�WWd|j�X|r�|r�|jr�yW�j
|j�}|dkr��j�j|d�}|r�|jj|�q�nWq�tk
r�q�XnWnYtjjk
r"}|j\}}|tjjkrtjtd����n�nXdS(Nc
@s)�jjd|t|�f�t}�j|�}|�jksP|�krZd|fSg}t|j��}g|D]*\}}	�j	j
|�ry||	f^qy}
|
ry|
d\}}|jrft}|j�j	t|�}
�j
|
|j�}|dk	rvt|�d\}}|�jkrc|g}�jjtd��j	||f�qcqvqy�jjd�ng}xB|D]:\}}�j|�dkr�q�n|j||f�q�Wtj|d ddg�}�jjd	d
�r	t|d�}n|r!�j|�}nd}|r?�j|�}nd}y2�j	jd
�d}|�jkrvd}nWntk
r�d}nXtd|dtj|d�d|d|d|d|�}|�j|<||jf�j |<�j!r�j!jr|g�j!j(n|�_!||fS(slReturn the parsed commit object or None, and True if
            the revision is a branch root.
            s!parsing revision %d (%d changes)
i����is$found parent of branch %s at %d: %s
s)no copyfrom path, don't know what to do.
is UTCs%Y-%m-%dT%H:%M:%SR�t
localtimezoneiRRRCRDs%Y-%m-%d %H:%M:%S %1%2tdescR�R�RN("RcRRRuR�R�R>R�R?R
RR8RjR�R9RR�R�RR RtRt	parsedatet
configbooltmakedatetimestampR!RR�t
IndexErrortcommittdatestrR�RGt
child_cset(RBRRCRDREtbranchedRR�R<R�t
root_pathsR*R)RtprevidR�R,RGtlogR�tcset(R;t	to_revnum(s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pyt
parselogentryTsp
$				


	
	s-fetching revision log for "%s" from %d to %d
srevision %d has no entries
iissvn: branch has no revision %s(R>R>RcR�RR
RuR�R�RjRRqR�RRR�RtRR#R&R(RetSVN_ERR_FS_NO_SUCH_REVISIONRR^(R;tfrom_revnumRDREt	firstcsettlastonbranchR�RoRGRRCRDRERCtfirstrevnumR�txxx_todo_changemeR\tnum((R;RDs>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pyR�NsT	T
	

cC@sr||jkrd	Sd}y�t|�d\}}|j|kr]||_|j|j�nt�}tjj|j|||�}|j	�}|j
�t|t�r�|d}nd|kr�dp�d}d|kr�dp�|}WnGtj
jk
r0}	tj
jtj
jf}
|	j|
kr*d
S�nX|dkrhd}|j|�rh|t|�}qhn||fS(NRii����ssvn:executableR}ssvn:specialtlslink (NN(NN(R�R>RR
R�tstringioR#ROtget_filetgetvalueRqt
isinstanceR%R&R(tSVN_ERR_FS_NOT_FOUNDtSVN_ERR_RA_DAV_PATH_NOT_FOUNDtapr_errRR(R;R�RtmodeR'RtiotinfoR�R�tnotfoundtlink_prefix((s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pytgetfile�s6		

	c@s��jd��tjj�}dj|jt��g�jd�}tjj|t	|�t
|j|�}�r�d7�n�fd�|j�D�S(s3Enumerate all files in path at revnum, recursively.Rc3@s4|]*\}}|jtjjkr�|VqdS(N(R3R#R&R�(R�R<R�(R*(s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pys	<genexpr>�s	(
R�R#R&tPoolR{R�R!R$R�R6RjR�R?(R;R*RRFR�R�((R*s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pyR"�s''
cC@s�|dkr|j}n|j|�rj|jd�t|�}|jd�rW|dS|dkrj|Sn|jjd||f�dS(NRiRs%r is not under %r, ignoring
(R>R
RR�RRcR(R;R*R
trelative((s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pyR scC@sv|dk	r,|jd�}|d|}nz&tjj|j|jd�|�SWd|dk	rq|j|�nXdS(NRR(R>R�R#ROt
check_pathR�(R;R*RR
R�((s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pyR�s&icC@s$g}xG|D]?}|jd�s6|jd|}n|j|jd��q
W|j||||||g}	|jjdd�s�t|	�St|	�}
t	j
�}dt	j|�}t	jt	j
|��\}
}|
j|
�y|
j�Wn&tk
rtjtd���nXt|�S(NRR�ssvn.debugsvnlogs%s debugsvnlogs>Mercurial failed to run itself, check hg executable is in PATH(RR
RtR�R�RcR9Rst
encodeargsRthgexecutablet
shellquotetpopen2tquotecommandRRqRQRR^RRg(R;RGRVRWRXRYRZtrelpathsR<RetargthgexetcmdtstdinRi((s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pyR�"s&



N(RRR>R=R�RzR�R�R�R�R�R�R�R
RR�RR�R�R�R�RZR"R R�RjRuR�(((s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pyR�#s0a				H		
				`	
	J	
	f	�	 	sW#!/bin/sh

REPOS="$1"
REV="$2"
USER="$3"
PROPNAME="$4"
ACTION="$5"

if [ "$ACTION" = "M" -a "$PROPNAME" = "svn:log" ]; then exit 0; fi
if [ "$ACTION" = "A" -a "$PROPNAME" = "hg:convert-branch" ]; then exit 0; fi
if [ "$ACTION" = "A" -a "$PROPNAME" = "hg:convert-rev" ]; then exit 0; fi

echo "Changing prohibited revision property" >&2
exit 1
tsvn_sinkcB@s�eZejdej�Zejdej�Zd�Zd�Zd�Z	d�Z
d�Zd�Zd�Z
ed	��Zd
�Zd�Zd�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�ZRS(sCommitted revision (\d+).sRepository UUID:\s*(\S+)cC@s |jrtj|j�ndS(N(R�R)tchdir(R;((s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pytprerunPs	cC@s |jrtj|j�ndS(N(R�R)Ritcwd(R;((s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pytpostrunTs	cC@stjj|jd|�S(Ns.svn(R)R*R{R�(R;R�((s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pyR{XscC@s
|jd�S(Ns	hg-shamap(R{(R;((s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pyt
revmapfile[scC@s
|jd�S(Nshg-authormap(R{(R;((s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pyt
authorfile^sc	C@stj||||�tj||d�g|_g|_g|_g|_d|_t	j
�|_t}t
jjt
jj|dd��r�t
jj|�|_|jd�nPtjd|�s�t
jj|�}t
jjt
jj|��r�t
jjt
jj|dd��s_|jtd�t
jj|��t|d	�jd
|�|}ntj|�}|jd�s�d|}nd|}q�nt
jjt	j
�t
jj|�d
�}|jtd�t
jj|��|jd||�||_tj|j�|_ tj|j�|_!t"||jd��|_#tj$|j�rjtj%|_&n	d|_&|r�t
jj|dd�}t'|d�}|j(t)�|j*�tj+|tt,�n|jd�}|j-j|�j.d�j/�|_0dS(NR#s.svnR�Rs#^(file|http|https|svn|svn\+ssh)\://Rysfs-types!initializing svn repository '%s'
tsvnadmintcreateRsfile://s-wcs#initializing svn working copy '%s'
tcheckoutshg-childmapRwspre-revprop-changetwbRWi(1tconverter_sinkR=tcommandlinetdeletetsetexectdelexecR�R>R�RtgetcwdRkRuR)R*tisfileR{Rtrun0R�tsearchR+tdirnameRztstatusRtbasenameRR,RtvfsmodRR�twopenertmapfiletchildmapt	checkexectisexectis_execR�Rtpre_revprop_changeRqtsetflagsRjtuuid_retgroupR�R(	R;RcR�R*tcreatedtwcpaththookRJtoutput((s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pyR=asX					$$	
!
		

cG@stjj|j|�S(N(R)R*R{R�(R;tnames((s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pytwjoin�scC@s�t�}|jddtdt�}tjjj|�}x�|jd�D]t}xk|jD]`}|j	|j
ksY|jdkr�qYndjd�|jD��}|j
tj|��PqYWqIW|S(NR�t	recursivetxmlRoR�Rcs@s*|] }|j|jkr|jVqdS(N(tnodeTypet	TEXT_NODER�(R�tc((s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pys	<genexpr>�s(R�RzRjR�tdomtminidomtparseStringtgetElementsByTagNamet
childNodesR�tELEMENT_NODEttagNameR{R�Rt
unitolocal(R;tmR�tdocR�R�R�((s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pytmanifest�s	!	cC@sd|kr"|jj||�n�y/tjj|j|��rPtj|�nWntk
rdnX|jj||�|j	r�|j	|j|��r�d|kr�|j
j|�q�nd|kr�|jj|�nt
j|j|�td|k�ndS(NRMR}(R�tsymlinkR)R*tislinkR�tunlinktOSErrorRR�RwRtRvRR�Ru(R;tfilenametflagsR�((s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pytputfile�s
	cC@s�|j|�}tjj|�}|r~tjdddtjj|��\}}tj|�tj|�tj	||�nz|j
d||�Wd|jj|�|r�ytj|�Wnt
k
r�nXtj	||�nXdS(Ntprefixshg-copy-tdirtcopy(R�R)R*tlexistsRtmkstempR|RqR�trenameRzR�R�R�(R;R�RtwdestRztfdttempname((s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pyt	_copyfile�s"	!


c@s�t�}x||D]t�tjj|j���rA|j��nt���x4t��fd�d�D]�|j�� �qiWqW|S(Nc@s�jdd��S(NRi(R�((R�R�(s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pyR��Ri����(R�R)R*R+R�R�Rtiter(R;R�tdirs((R�R�s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pytdirs_of�s	
"cC@spgt|j|��D]}||jkr|^q}|rl|jj|�|j|ddtdt�n|S(NR�t
non_recursivetquiet(R�R�R�RtxargsRj(R;R�tdtadd_dirs((s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pyR��scC@s[g|D]}||jkr|^q}|rW|jj|�|j|ddt�n|S(NR�R�(R�RR�Rj(R;R�R�((s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pyt	add_files�s
(cC@s||j|<dS(N(R�(R;tparenttchild((s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pytaddchild�scC@sd|j|fS(Ns	svn:%s@%s(R(R;R((s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pyR��sc	C@s�x:|D]2}	y|j|j|	�SWqtk
r8qXqWx�|D]\}
}|j|
|�\}}
|dkr�|jj|
�qD|j|
|
|�|
|krD|jj||
|
g�qDqDW|r�|jj	t
|jj|���ng|D]}
|
d^q�}t
|j�}t|�}|j|j|j|���|jr�x'|jD]\}}|j||�q\Wg|_n|jr�|j|jd�x!|jD]}
|jj|
�q�Wg|_n|j|j|j|���|jr|j|jdd�g|_n|jrL|j|jddd�g|_ntjdd�\}}tj|d	�}|jtj|j��|j�zM|j d
dt!j"|j#�d|d
d�}y|j$j%|�j&d�}Wnat'k
rK|r
|r
|dS|j(j)t*d��|j(j)|�t+j,t*d���nX|j-rz|j.dd|j-dt/d|�n|j0r�|j0dkr�|j.dd|j0dt/d|�nx|D]}	|j1|	|�q�W|j|�SWdtj2|�XdS(NiRutpropdelssvn:executabletpropsett*R�shg-convert-RrR<tusernameR�Rsutf-8isunexpected svn output:
sunable to cope with svn outputshg:convert-revtrevproptrevisiontdefaultshg:convert-branch(3R�R�tKeyErrorRZR>RuRtR�R�textendR�R�t
differenceR�t	frozensetRR�R�R�tremoveR�RwRvRR�R)tfdopenRRR
R7RqRzR	t	shortuserRCt	commit_reR{R�R�RcR�RRR^RtrunRjR�R�R�(R;R�R�R�R<R�R�R�tcleanp2R�R�RIR�RUR�R"R�R�tmessagefileRJR�R((s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pyt	putcommit�sz

!%				
	

	
cC@s|jjtd��dS(Ns/writing Subversion tags is not yet implemented
(NN(RcR�RR>(R;R�((s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pytputtagsAscC@stS(N(Rj(R;R((s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pythascommitfrommapEscC@s0||jkrtStjtd�|��dS(Ns_splice map revision %s not found in subversion child map (revision lookups are not implemented)(R�RjRR^R(R;R((s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pythascommitforsplicemapJs(RRR�tcompileRR�R�RjRlR{RmRnR=R�t
propertycacheR�R�R�R�R�R�R�R�R�R�R�R�(((s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pyRhLs*						6				
					F		(Gt
__future__RR)R�txml.dom.minidomR�tmercurial.i18nRt	mercurialRRRRRRtmercurial.utilsRRR	RR
R@RNR�R�R RtR<Rstconverter_sourceR_R^R:R�R�R�R#t
svn.clienttsvn.coretsvn.rat	svn.deltaRtwarningstfilterwarningstDeprecationWarningR&R(tImportErrorR>RRRRR!R0R6tobjectR7RjRuR]RfRgR%RsR~R�R�R�R�R�Rh(((s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pyt<module>sv(															

		
						

	"���*