\x89\x50\x4E\x47\x0D\x0A\x1A\x0A PNG  \x89\x50\x4E\x47\x0D\x0A\x1A\x0A  13\c@@sddlmZddlZddlZddlZddlmZddlm Z m Z m Z m 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 d d e,e$j-j.Wne/k re0Z$nXd e1fdYZ2dZ3dZ4dZ5dZ6de7fdYZ8de9e:dZ;dZ<de7fdYZ=de>fdYZ?dZ@dZAieAd6eAd6e@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|djdr|dd}d|d}n|||fS(sParse 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|dS(Ns!$&'()*+,-./:=@_~(turlreqtquote(ts((s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pyR!\scC@sy tjjtjj|SWntjjk r9nXtjj|rtjj tjj |}t j rdt 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 t changedpathcB@seZdZRS(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 @sdfd}y>tjd|} tjj| j|||||||WnRtk r|tjdnBt k r} tjt j | nXtjdj t jddS(Nic @shi}|dk rBx-|jD]\}}t|||/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pytreceivers  turli(R tSvnRaTransportR#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_childs    cK@sMtdkr$tjtdnt|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.pyt debugsvnlogs t logstreamcB@s)eZdZdZdZdZRS(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@sxtrytj|j}Wn&tk rGtjtdnXy|\}}}}}Wn@tt fk r|dkrPntjtd|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"|jjd|_ndS(N(RhtcloseR>(R;((s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pyRqs  (RRt__doc__R=RpRq(((s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pyRgs  tdirectlogstreamcB@s)eZdZdeedZdZRS(sDirect 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 @sMfd}tjd|} tjj| j|||||||dS(Nc @sbi}|dk rBx-|jD]\}}t|||R?R7tappend( RBRRCRDRERFRGRHRI(R;(s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pyRLs  RM(R RNR#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.pyRqs(RRRrRjtFalseR=Rq(((s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pyRsscC@s:x3dD]+}tjjtjj||stSqWtS(Ntlocksthookstformattdb(RvRwRxRy(R)R*texiststjoinRuRj(RcR*tprototx((s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pyt filechecks !cC@sy8tj}|jd||fd}|j}Wn\tjk r}|jdkrs|jtdt S|j j}nt k rt SXd|kS(Ns%s://%s/!svn/ver/0/.svntrbiswsvn: cannot probe remote repository, assume it could be a subversion repository. Use --source-type if you know better. s#( R t buildopenertopenRaturlerrt httperrortcodetwarnRRjRJRRRu(RcR*R|topenertrsptdataR\((s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pyt httpchecks  thttpthttpstfilecC@s:y|jdd\}}|dkrtjr|d dkr|dd!jr|dd!jdkr|d d|d}ntj|}nWn)tk rd}tj j |}nX|dkrt j |}nt j|d }x<d|kr5||||rtS|jddd }qWtS( Ns://iRRiis%3a/s:/cW@stS(N(Ru(Re((s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pytsi(RRR.tisalphatlowerR t url2pathnameRnR)R*R-RtpconverttprotomaptgetRjRRu(RcRMR|R*tcheck((s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pytissvnurls$ ,  t svn_sourcecB@seZddZdZdZdZdZdZdZ dZ dd Z d Z d Z d Zdd ZdZddZdZdZdZdZdZddZddZdeedZRS(c C@stt|j|||d||jdp|jdptjj|rstjjtjj|dpt||st t d|nt dkrt t dnyAt jjt jjf}|dkrt t d |nWn#tk r"t t d nXi|_d}y@|jd }|d krqt||d}|| }nWntk rnXt||_d |_ytjd|j|_|jj|_|jj|_t jj|j|_t j!|jt"|j|_#d|_$|j#|_%i|_&i|_'t jj(|j|_)Wnet jj*k r|j+dt jjt jjt jj,f}t t d|j|fnX|r1t"|dkrt-j.t dnyt|d }Wq1tk r-t-j.t d|d q1Xn|j/j0dd} | dkr[d} n| j1d|_2|j/j0dd|_3y1t|j3|_3|j3d krd |_3nWn-tk rt-j.t d|j3nXy|j4|j#||_5Wnt6k rd|_5nX|j5sGt-j.t d|j#n|j7|j5|_8d|_9tjjtjj|dr||_: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(<tsuperRR=RR)R*RzR{RtNoRepoRR#R>t MissingToolR&t SVN_VER_MAJORt SVN_VER_MINORtAttributeErrortlastrevstrfindRRnR0RMRR RNROR$tctxtget_repos_roottbaseurlR tunquoteRR t prevmodulet rootmoduletcommitsRGtget_uuidRR(t tracebackt SVN_VER_MICRORR^Rctconfigtstript trunknametstartrevtlatesttheadRRt last_changedt _changescachetwct convertfp( R;RctrepotypeRMRtversionRtatt svnversionttrunkcfg((s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pyR=$s"!          "                !  cC@sdi}xN|D]F}t|\}}}|j||}||kr |||/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pyt setrevmaps  cC@s]y>tjj|jjddt||t|jtSWntj j k rXtSXdS(NR( R#R$tlsRMtrstripR!RuRRjR&R((R;R*R6((s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pyRzs &c @sfd}fd}tj}d}|d|}|d|_|d|}|rjpud}jd|7_jjj_jstjtdjqnjg_ jdk rd |jpdf_n|r j j d}t jj|dt||tj}xt|D]} d ||| f} || jsq_nj| j} | sjjtd | q_njjtd | j| fj j| q_Wnjrj rtj d krJtjtdnjj d} | jkrtjtdjqnj 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@sjjdd|}|dk r;|jdkr;dS|pD|jd}j||sjj|r|dkrdS|rtjt d||fndSjj t d||f|S(NRssvn.RRRs&expected %s to be at %r, but not foundsfound %s at %r ( RcRR>RRzR tendswithRR^Rtnote(tnameRtcfgpathR*(R;(s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pyt getcfgpaths RRttagstbranchesRsno 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(R6RRR RRRR^RtheadsR>RMRR#R$RR!RuRtsortedRcRRRtRR( R;R+RRt oldmoduleRRtrpatht branchnamestbranchR tbrevidR((R;s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pytgetheadssR  c C@s|j|\}}i}|rC|j|||\}|_}n|sP| rt|\}}} tjj|jt|t | t |j } g| j D]'\} } | j tjjkr| ^q}t|_n|jt||gt|}||fS(N(RGt expandpathstremovedRR#R$RRR!R6RjRR?R3R&t svn_node_filetsettsorttzipR( R;RtfullRGtparentstcopiestfilesRR Rtentriestnte((s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pyt _getchangess$ ! cC@sb|jd|kr0| r0|jd\}}n"|j||\}}|j|=||tfS(Nii(RRRGR(R;RRRR((s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pyt getchangess  cC@sH|j|t\}}|||ff|_g|D]}|d^q4S(Ni(RRuR(R;RtiRRtf((s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pytgetchangedfilesscC@s||jkrt|\}}}||_|j||jj|d}||krh|d}n|j||||jkrtjt d|qn|j|}|j|=|S(Niissvn: revision %s not found( RRR treparentRRt_fetch_revisionsRR^R(R;RRR Rtstopt revcommit((s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pyt getcommits      t splicemapcC@s8tjd|s4tjtd||fndS(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|jjddd|jS(NRi(RRRR(R;((s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pyt numcommitsscC@sei}|jdkr|Sg}|j}tjj|j}|j|jg||j}zx|D]}|\}}} } } |sg}ng|jD]*\} } | jr| j| j | f^q}|j dt |}|r|dd|kr|j d}nx|D]\}}}|j |ds>qnxc|D]E}|dj |rE||dt|}||g|d*PqEqEW|j|||gqWtd|jD}t}xg|D]_}xV|D]N\}}}|j |d s|j ||dr!qn|j|PqWqWxO|D]G}g|D]4} | d|krK| dj |d rK| ^qK}q>Wg}x|D]\}}}|jdd}|j |r|j|||gqn||krqny5|j||}|r)||kr)|||/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pys Vs (RR>R#ROtget_latest_revnumt_getlogRR?R8R9RRjtpopRRRttdictRtaddRRRRq(R;RtpendingsttagspathRVtstreamRot origpathsRRCRDRER<RRt srctagspathtsourcet sourcerevtdestttagttagpathtaddedstbadrootstdestroottbadroott renamingsttagnamettagid((s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pytgettags!st    :       (   cC@s|js dS|jdkrFttjj|jddd|_n|jjtj d||j |f|jj dS(Ns.svns hg-shamaptabs%s %d ( RRR>RR)R*R{twriteRt tonativeeolRRT(R;Rtdestrev((s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pyt converteds cC@sd|j|p|j|fS(Ns svn:%s%s@%s(RR (R;RR ((s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pyRscC@st|jddS(NRi(RR(R;R((s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pyRsc@sdfd}|jjs<jjd|dS|dkr`tjjj}nyDjd}tjj j|j d|}j|Wntj j k rd}nX|st td||fn||||j\}}|dkrL|||\}}|dkrLjjd|dSn|jjsvjjd|dSj||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}zx|D]}|\}}}}} |dkrY|rYPn||kriPnxq|D]i} |j|  sp|| j rqpn|| j|t| } jjd|| |f| }PqpWq(W|sd}n||fSWd|jXdS(Nis#branch renamed from %s to %s at %d (RR>RR8RRctdebugRq( R*RVRRRoRGRRCRDRER<tnewpath(R;(s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pyt findchangess*      signoring foreign branch %r RRs%s not found up to revision %dsignoring empty branch %r N(R>RRRcRR#RORRtstatRR&R(RRt created_revR(R;R*RRRtdirentRtrealpath((R;s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pyRs2 $    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( RRR!R>RcRR#ROR(R;R tsvnurlR((s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pyRs    cC@s~tt}}i}t|d\}}||jkrZ||_|j|jn|jjtddtddt|} xt|D]\} \} } | j | d| |j | } |j | |}|t j jkr|j|j| | j s| rqnt|dd\}}| j|krKqn|j | j|}|slqn|jjd| || jf|j|||j| /usr/lib64/python2.7/site-packages/hgext/convert/subversion.pyRs !     #  '  c@s'|kr|}nd_fd}jjtdj|fyjd}t}jjg|}zx|D]}|\}} } } } | jkrt }Pn|sjj d| |p| dk}qn||| | | | \} }| r$| }n|rPqqWWd|j X| r|r|j ryWj |j}|dkrjj|d}|r|j j|qnWqtk rqXnWnYtjjk r"}|j\}}|tjjkrtjtdnnXdS(Nc @s)jjd|t|ft}j|}|jksP|krZd|fSg}t|j}g|D]*\}} j j |ry|| f^qy} | ry| d\} } | j rft }| j j t| } j | | j}|dk rvt|d\}}|jkrc|g}jjtdj ||fqcqvqyjjdng}xB|D]:\} } j| dkrqn|j| | fqWtj|d ddg}jjd d r t|d }n|r!j|}nd }|r?j|}nd }y2j jd d}|jkrvd}nWntk rd}nXtd|dtj|dd|d|d|d|}|j|<||jfj |<j!rj!j r|gj!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) iis$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:%SRt localtimezoneiRRRCRDs%Y-%m-%d %H:%M:%S %1%2tdescRRRN("RcRRRuRRR>RR?R RR8RjRR9RRRRR RtRt parsedatet configbooltmakedatetimestampR!RRt IndexErrortcommittdatestrRRGt child_cset(RBRRCRDREtbranchedRRR<Rt root_pathsR*R)RtprevidRR,RGtlogRtcset(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>RcRRR RuRRRjRRqRRRRRtRR#R&R(RetSVN_ERR_FS_NO_SUCH_REVISIONRR^(R;t from_revnumRDREt firstcsett lastonbranchRRoRGRRCRDRERCt firstrevnumRtxxx_todo_changemeR\tnum((R;RDs>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pyRNsT  T         c C@sr||jkrd Sd}yt|d\}}|j|kr]||_|j|jnt}tjj|j|||}|j }|j t |t r|d}nd|krdpd}d|krdp|}WnGtj jk r0} tj jtj jf} | j| kr*d SnX|dkrhd} |j| rh|t| }qhn||fS( NRiissvn:executableR}s svn:specialtlslink (NN(NN(RR>RR RtstringioR#ROtget_filetgetvalueRqt isinstanceR%R&R(tSVN_ERR_FS_NOT_FOUNDtSVN_ERR_RA_DAV_PATH_NOT_FOUNDtapr_errRR( R;RRtmodeR'RtiotinfoRRtnotfoundt link_prefix((s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pytgetfiles6       c@sjdtjj}dj|jtgjd}tjj|t |t |j |}rd7nfd|j DS(s3Enumerate all files in path at revnum, recursively.Rc3@s4|]*\}}|jtjjkr|VqdS(N(R3R#R&R(RR<R(R*(s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pys s ( RR#R&tPoolR{RR!R$RR6RjRR?(R;R*RRFRR((R*s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pyR"s'' cC@s|dkr|j}n|j|rj|jdt|}|jdrW|dS|dkrj|Sn|jjd||fdS(NRiRs%r is not under %r, ignoring (R>R RRRRcR(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>RR#ROt check_pathR(R;R*RR R((s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pyRs & icC@s$g}xG|D]?}|jds6|jd|}n|j|jdq W|j||||||g} |jjddst| St| } t j } dt j | } t j t j | \} }| j| y| jWn&tk rtjtdnXt|S(NRRssvn.debugsvnlogs%s debugsvnlogs>Mercurial failed to run itself, check hg executable is in PATH(RR RtRRRcR9Rst encodeargsRt hgexecutablet shellquotetpopen2t quotecommandR RqRQRR^RRg(R;RGRVRWRXRYRZtrelpathsR<RetargthgexetcmdtstdinRi((s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pyR"s&       N(RRR>R=RRzRRRRRRRR RRRRRRRRZR"R RRjRuR(((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@seZejdejZejdejZdZdZdZ dZ dZ dZ dZ ed Zd Zd Zd Zd ZdZdZdZdZdZdZdZRS(sCommitted revision (\d+).sRepository UUID:\s*(\S+)cC@s |jrtj|jndS(N(RR)tchdir(R;((s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pytprerunPs cC@s |jrtj|jndS(N(RR)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 |jdS(Ns hg-shamap(R{(R;((s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pyt revmapfile[scC@s |jdS(Ns hg-authormap(R{(R;((s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pyt authorfile^sc C@stj||||tj||dg|_g|_g|_g|_d|_t j |_ t }t jjt jj|ddrt jj||_|jdnPtjd|st jj|}t jjt jj|rt jjt jj|dds_|jtdt jj|t|d jd ||}ntj|}|jd sd |}nd |}qnt jjt j t jj|d }|jtdt jj||jd||||_tj|j|_ tj|j|_!t"||jd|_#tj$|jrjtj%|_&n d|_&|rt jj|dd}t'|d}|j(t)|j*tj+|t t,n|jd}|j-j|j.dj/|_0dS(NR#s.svnRRs#^(file|http|https|svn|svn\+ssh)\://Rysfs-types!initializing svn repository '%s' tsvnadmintcreateRsfile://s-wcs#initializing svn working copy '%s' tcheckouts hg-childmapRwspre-revprop-changetwbRWi(1tconverter_sinkR=t commandlinetdeletetsetexectdelexecRR>RRtgetcwdRkRuR)R*tisfileR{Rtrun0RtsearchR+tdirnameRztstatusRtbasenameRR,RtvfsmodRRtwopenertmapfiletchildmapt checkexectisexectis_execRR tpre_revprop_changeRqtsetflagsRjtuuid_retgroupRR( R;RcRR*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.pytwjoinscC@st}|jddtdt}tjjj|}x|jdD]t}xk|jD]`}|j |j ksY|j dkrqYndj d|jD}|j tj|PqYWqIW|S(NRt recursivetxmlRoRRcs@s*|] }|j|jkr|jVqdS(N(tnodeTypet TEXT_NODER(Rtc((s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pys s(RRzRjRtdomtminidomt parseStringtgetElementsByTagNamet childNodesRt ELEMENT_NODEttagNameR{RRt unitolocal(R;tmRtdocRRR((s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pytmanifests ! cC@sd|kr"|jj||ny/tjj|j|rPtj|nWntk rdnX|jj|||j r|j |j|rd|kr|j j |qnd|kr|j j |nt j|j|td|kndS(NRMR}(RtsymlinkR)R*tislinkRtunlinktOSErrorR RRwRtRvRRRu(R;tfilenametflagsR((s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pytputfiles     cC@s|j|}tjj|}|r~tjdddtjj|\}}tj|tj|tj ||nz|j d||Wd|j j ||rytj|Wnt k rnXtj ||nXdS(Ntprefixshg-copy-tdirtcopy(RR)R*tlexistsRtmkstempR|RqRtrenameRzRRR(R;RRtwdestRztfdttempname((s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pyt _copyfiles" !   c@st}x||D]ttjj|jrA|jntx4tfddD]|j qiWqW|S(Nc@sjddS(NRi(R((RR(s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pyRsi(RR)R*R+RRRtiter(R;Rtdirs((RRs>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pytdirs_ofs   "cC@spgt|j|D]}||jkr|^q}|rl|jj||j|ddtdtn|S(NRt non_recursivetquiet(RRRRtxargsRj(R;Rtdtadd_dirs((s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pyRs cC@s[g|D]}||jkr|^q}|rW|jj||j|ddtn|S(NRR(RRRRj(R;RR((s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pyt add_filess (cC@s||j|/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pytaddchildscC@sd|j|fS(Ns svn:%s@%s(R(R;R((s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pyRsc C@sx:|D]2} y|j|j| SWqtk r8qXqWx|D]\} } |j| | \} } | dkr|jj| qD|j| | | | |krD|jj|| | gqDqDW|r|jj t |j j |ng|D]} | d^q}t |j}t|}|j|j|j ||jrx'|jD]\}}|j||q\Wg|_n|jr|j|jdx!|jD]} |j j| qWg|_n|j|j|j ||jr|j|jddg|_n|jrL|j|jdddg|_ntjdd\}}tj|d }|jtj|j|jzM|j d d t!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*dnX|j-rz|j.dd|j-dt/d|n|j0r|j0dkr|j.dd|j0dt/d|nx|D]} |j1| |qW|j|SWdtj2|XdS(NiRutpropdelssvn:executabletpropsett*Rs hg-convert-RrR<tusernameRRsutf-8isunexpected svn output: sunable to cope with svn outputshg:convert-revtrevproptrevisiontdefaultshg:convert-branch(3RRtKeyErrorRZR>RuRtRRtextendRRt differenceRt frozensetRRRRtremoveRRwRvRRR)tfdopenR RR R7RqRzR t shortuserRCt commit_reR{RRRcRRRR^RtrunRjRRR(R;RRRR<RRRtcleanp2RRRIRRURR"RRt messagefileRJRR((s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pyt putcommitsz    !%                cC@s|jjtddS(Ns/writing Subversion tags is not yet implemented (NN(RcRRR>(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)(RRjRR^R(R;R((s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pythascommitforsplicemapJs(RRRtcompileRRRRjRlR{RmRnR=Rt propertycacheRRRRRRRRRRRR(((s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pyRhLs*      6        F  (Gt __future__RR)Rtxml.dom.minidomRtmercurial.i18nRt mercurialRRRRRRtmercurial.utilsRRR RR R@RNRRR RtR<Rstconverter_sourceR_R^R:RRRR#t svn.clienttsvn.coretsvn.rat svn.deltaR twarningstfilterwarningstDeprecationWarningR&R(t ImportErrorR>RRRRR!R0R6tobjectR7RjRuR]RfRgR%RsR~RRRRRRh(((s>/usr/lib64/python2.7/site-packages/hgext/convert/subversion.pytsv   (                                "*