\x89\x50\x4E\x47\x0D\x0A\x1A\x0A PNG  \x89\x50\x4E\x47\x0D\x0A\x1A\x0A  13\c@@sJddlmZddlZddlZddlZddlZddlZddlZddlZddl Z ddl Z ddl Z ddl Z ddlmZddlmZmZmZmZmZmZmZmZmZmZmZmZmZmZ ddl!m"Z"m#Z#m$Z$e%a&ej'Z'ej(Z(ej)Z)ej*Z*dZ+dZ,d ej-fd YZ.d Z/d Z0d Z1dZ2ie3d6e4d6e4d6Z5dZ6e4e3dZ7dZ8de9fdYZ:de:fdYZ;de:fdYZ<de:fdYZ=ie;d6e<d6e=d6Z>dS(i(tabsolute_importNi(t_(tcmdutiltencodingterrortexchanget logcmdutiltmatchtnodetpathutiltphasestpycompattscmutilt subrepoutiltutiltvfs(tdateutiltprocutilt stringutilcC@sUtjtj|}tj|}|jsQtjtjj|j}n|S(sU get a path or url and if it is a path expand it and return an absolute path ( Rt urllocalpatht expandpathturltschemetnormpathtostpathtabspath(Rt expandedpathtu((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyt_expandedabspath3s  !cC@s)tjtjt|jdd!S(sEget a unique filename for the store hash cache of a remote repositoryii (Rthexthashlibtsha1Rtdigest(t remotepath((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyt_getstorehashcachename=st SubrepoAbortcB@seZdZdZRS(sEException class used to avoid handling a subrepo error more than oncecO@sD|jdd|_|jdd|_tjj|||dS(Ntsubrepotcause(tpoptNoneR%R&RtAbortt__init__(tselftargstkw((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyR*Cs(t__name__t __module__t__doc__R*(((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyR$Asc@sfd}|S(Nc@sy|||}Wntk r1}|njtjk r}t|}tj|dtd|}t|d|jd|dtj nX|S(Nt s(in subrepository "%s")thintR%R&( R$RR)t subrelpathRt forcebytestrRR2tsystexc_info(R+R,tkargstrestexR%terrormsg(tfunc(s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pytdecoratedmethodIs  !((R;R<((R;s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pytannotatesubrepoerrorHscC@sW|r(tdt|||f}ntdt|||f}|j|dS(Nsi subrepository sources for %s differ use (l)ocal source (%s) or (r)emote source (%s)?$$ &Local $$ &Remotes subrepository sources for %s differ (in checked out version) use (l)ocal source (%s) or (r)emote source (%s)?$$ &Local $$ &Remotei(RR3t promptchoice(tuitsubtdirtytlocaltremotetmsg((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyt _updatepromptYs   c C@sx|jD]\}}}x7t|D])\}}|j|kr)||=Pq)q)W|j|jdkrwq nx\|D]T}|jdkr~|jtd|j||j|j||q~q~Wq WdS(Ns.hgthgrcs5warning: removing potentially hostile 'hgrc' in '%s' ( twalkt enumeratetlowertbasenametwarnRtjointunlinktreljoin( R?Rtignoretdirnametdirstnamestitdtf((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyt _sanitizegs cC@sHtj|j||jj|rDtjtd|ndS(Ns$subrepo '%s' traverses symbolic link(R t pathauditortroottwvfstislinkRR)R(trepoR((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyt_auditsubrepopathusthgtgittsvncC@s|jddts9tjtddtdntj|t}|jdd||stjtd|dtdn|tkrtjtd|ndS( Ntsubrepostallowedssubrepos not enabledR2s)see 'hg help config.subrepos' for detailss %s:alloweds%s subrepos not allowedsunknown subrepo type %s( t configbooltTrueRR)RtSUBREPO_ALLOWED_DEFAULTStgettFalsettypes(R?tkindtdefault((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyt _checktypes cC@sddlm}|a|j}t|||j|}t|j|d|ry|d|j||df}nt|d|||d |S(s>return instance of the right subrepo class for subrepo in pathi(R]ii( tR]R[R\tsubstateRjR?tsubrevRg(tctxRt allowwdirt allowcreatethR[tstate((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyR%s   #cC@sddlm}|a|j}t|||j|}t|j|dd}|ddkrsdd}nt|d|||d|ftS( s=return an empty subrepo in pctx for the extant subrepo in ctxi(R]iRkR]t0i(i( RkR]R[R\RlRjR?RgRc(RnRtpctxRqR[RrRm((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyt nullsubrepos    tabstractsubrepocB@sveZdZdZdZeedZeedZed$dZ dZ dZ dZ d Z d Zed Zd Zd ZdZdZdZdZdZdZdZdZdZdZd$dZdZd$edZdZ dZ!dZ"dZ#dZ$d Z%d!Z&e'd"Z(e'd#Z)RS(%cC@s(|jj|_||_||_dS(sInitialize abstractsubrepo part ``ctx`` is the context referring this subrepository in the parent repository. ``path`` is the path to this subrepository as seen from innermost repository. N(R[R?t_ctxt_path(R+RnR((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyR*s  cC@sdS(sAdd the hgwebdir entries for this subrepo, and any of its subrepos. ``serverpath`` is the path component of the URL for this repo. ``webconf`` is the dictionary of hgwebdir entries. N((R+t serverpathtwebconf((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyt addwebdirpathscC@stS(s returns true if the repository has not changed since it was last cloned from or pushed to a given repository. (Rf(R+R((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyt storecleanscC@s tdS(s returns true if the dirstate of the subrepo is dirty or does not match current stored state. If ignoreupdate is true, only check whether the subrepo has uncommitted changes in its dirstate. If missing is true, check for deleted files. N(tNotImplementedError(R+t ignoreupdatetmissing((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyRAscC@s0|jd|d|r,tdt|SdS(sreturn reason string if it is ``dirty()`` Returned string should have enough information for the message of exception. This returns None, otherwise. R~Rs)uncommitted changes in subrepository "%s"N(RARR3(R+R~R((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyt dirtyreasons cC@s:|jd|dt}|r6tj|d|ndS(s4raise Abort if subrepository is ``dirty()`` R~RR2N(RRcRR)(R+R~R2R((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyt bailifchangeds cC@s tdS(spcurrent working directory base state, disregarding .hgsubstate state and working directory modificationsN(R}(R+((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyt basestatescC@stS(s7check if path is a subrepository within this repository(Rf(R+R((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyt checknestedscC@s tdS(scommit the current changes to the subrepo with the given log message. Use given user and date if possible. Return the new state of the subrepo. N(R}(R+ttexttusertdate((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pytcommitscC@stjS(s?returns phase of specified state in the subrepository. (R tpublic(R+Rr((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pytphasescC@s tdS(sTremove the subrepo (should verify the dirstate is not dirty first) N(R}(R+((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pytremovescC@s tdS(sTrun whatever commands are needed to put the subrepo into this state N(R}(R+Rrt overwrite((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyRescC@s tdS(s/merge currently-saved state with the new state.N(R}(R+Rr((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pytmergescC@s tdS(shperform whatever action is analogous to 'hg push' This may be a no-op on some systems. N(R}(R+topts((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pytpushscK@sgS(N((R+R?Rtprefixt explicitonlyR((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pytaddscC@s$|jjd|tdfdS(Ns%s: %ssaddremove is not supportedi(R?RKR(R+tmatcherRR((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyt addremove"s cK@sdS(Ni((R+Rtfmt fntemplateRR((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pytcat&scK@stjgggggggS(N(R tstatus(R+trev2R((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyR)scK@sdS(N((R+R?tdiffoptstnode2RRR((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pytdiff,scC@sdS(Ni((R+R?tdestR((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pytoutgoing/scC@sdS(Ni((R+R?tsourceR((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pytincoming2scC@s tdS(sreturn filename iteratorN(R}(R+((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pytfiles5scC@s tdS(s9return file data, optionally passed through repo decodersN(R}(R+tnametdecode((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pytfiledata9scC@sdS(sreturn file flagsRk((R+R((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyt fileflags=scC@stj|jjdd|S(s,Resolve the fileset expression for this repoRktbadfn(tmatchmodt nevermatcherRYtbase(R+texprR((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyt matchfilesetAscC@sdS(s)handle the files command for this subrepoi((R+R?tmRtfmtR`((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyt printfilesEscC@s&|dk r:g|jD]}||r|^q}n |j}t|}t|}|jjtd|dtdd|} | jdx||D]t} |j| } d| krdpd} d | k} |j ||j d | | | |j | || j qW| j |S( Nsarchiving (%s)tunitRttotalitxiitlt/(R(RtlenR3R?t makeprogressRtupdateRtaddfileRxRt incrementtcomplete(R+tarchiverRRRRURRtrelpathtprogressRtflagstmodetsymlink((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pytarchiveIs" .       cC@sdS(sv walk recursively through the directory tree, finding all files matched by the match function N((R+R((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyRG]scC@s ggfS(N((R+RRtdryrunt interactive((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pytforgetcscC@s|jtd|jdS(sremove the matched files from the subrepository and the filesystem, possibly by force and/or after the file has been removed from the filesystem. Return 0 on success, 1 on any warning. s)warning: removefiles not implemented (%s)i(tappendRRx(R+RRtaftertforceR`Rtwarnings((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyt removefilesfs cO@s,|jjtd|d|dfgS(Ns)%s: reverting %s subrepos is unsupported ii(R?RKR(R+RltpatsR((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pytrevertpscC@s|S(N((R+trevid((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pytshortiduscC@sdS(sH convert this repository from shared to normal storage. N((R+((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pytunsharexscC@sdS(siverify the integrity of the repository. Return 0 on success or warning, 1 on any error. i((R+((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pytverify}scC@s%tj|jjjj|jS(sIreturn vfs to access the working directory of this subrepository (tvfsmodRRwR[RYRLRx(R+((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyRYscC@s%|jjt|jj|jS(sLreturn path to this subrepository as seen from outermost repository (RYRNt reporelpathRwR[Rx(R+((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyt_relpathsN(*R.R/R*R{R|RfRARR(RRRRRRReRRRRRRRRRRRRRRRcRRGRRRRRRt propertycacheRYR(((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyRvsH                            t hgsubrepocB@s?eZdZedZdZdZdZedZ dZ dZ dZ ed Z ed Zed Zed Zed ZedZed+edZeeedZdZdZedZedZedZdZeedZedZedZ edZ!edZ"edZ#dZ$dZ%edZ&ed+d Z'd!Z(ed"Z)ed#Z*ed$Z+d%Z,d&Z-ed'Z.d(Z/ed)Z0ed*Z1RS(,c C@s3tt|j||||_|j}|j|}|oW|jjd| }tj |j |d||_ ||j kr|j j |_ n|j j |_ xNd gD]C\}} |j j|| } | r|j j|| | dqqW|j jdddd|j||d|dS( Ns%s/.hgtcreateR?tcommitsubreposR%t_usedassubrepoRci(R?R(tsuperRR*t_stateR[twjoinRYtexistsR]t repositorytbaseuit_repot unfilteredR?tconfigt setconfigt _initrepo( R+RnRRrRptrRXRtstktv((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyR*s   cC@s tj|jt||dS(N(RR{RR3(R+RyRz((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyR{scC@s'|jj|j|SWdQXdS(N(Rtlockt _storeclean(R+R((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyR|scC@spt}|j|}x6|j|D]%}|t|dkr%t}Pq%q%W|rlt|ddk}n|S(N(Rct_calcstorehasht_readstorehashcachetnextR(Rf(R+Rtcleant itercachetfilehash((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyRscc@sld}dt|V|jj}xD|D]<}tjtj|j|j}d||fVq(WdS(scalculate a unique "store hash" This method is used to to detect when there are changes that may require a push to a given remote path.t bookmarkssstore/phaserootssstore/00changelog.is# %s s%s = %s N(Rsstore/phaserootssstore/00changelog.i( RRRRRRR ttryreadR!(R+R"tfilelistRtrelnameR((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyRs   'cC@stj|jjjdS(Nscache/storehash(RRRRL(R+((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyt_cachestorehashvfsscC@st|}|jj|dS(s7read the store hash cache for a given remote repositoryR(R#Rt tryreadlines(R+R"t cachefile((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyRs c C@s`t|}|jj?t|j|}|j}|j||dddtWdQXdS(scache the current store hash Each remote repo requires its own store hash cache, because a subrepo store may be "clean" versus a given remote repo, but not versus another Rtwbt notindexedN(R#RRtlistRRt writelinesRc(R+R"Rt storehashR((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyt_cachestorehashs   cC@s<|jjdkr |jdS|jd}|j|SdS(sKfetch the context for this subrepo revision, possibly a workingctx iN(RwtrevR(RR(R+R((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyt_getctxs  c@s|j_|j_|rdgfd}tjdt}tjtdt}|d|||kr|d|njjjdtj dj ndS(Ns[paths] c@s=|r9jd||fjjd||dndS(Ns%s = %s tpathsR%(RR?R(tkeytvalue(tlinesR+(s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyt addpathconfigstabortRis default-pushRFRk( Rt _subparentt _subsourcet _abssourceRfRcRtwriteRt tonativeeolRL(R+t parentrepoRRRtdefpatht defpushpath((RR+s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyRs     cK@s1tj||j||jj||j||S(N(RRRRYRNRx(R+R?RRRR((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyRscC@sDtj|}t|dtsssharing subrepo %s from %s RRtsharetpoolt poolnamingRscloning subrepo %s from %s t shareoptsRspulling subrepo %s from %s (RRRRtsharedRcRRRtrmtreeR]tislocalR?RRR3R&RRXRfRBRRRt hidepasswordtcloneRRR|Rtpull( R+RrRtrevisionRhRtgetpeerR*R'R)tothertclonedtcleansub((R+R$s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyRgsP "  c C@s|j|}|\}}}|j}|jjd|j|r|j}||} | jr|jjtd|dd!|jf|}qnt j |||dS(Nsgetting subrepo %s s,revision %s in subrepository "%s" is hidden ii ( RRR?RRxRthiddenRKRR]t updaterepo( R+RrRtinrepoRR0RhR[turepoRn((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyRes       c@sjjdjdjfd}jd}jrkrtj|jr|qq|n|dS(NRic@skrXjjkrXjjdttjjdn`krjjdtn7jjdttjjddtdS(Nsupdating subrepository "%s" isskipping subrepository "%s" smerging subrepository "%s" tremind( tbranchR?RR3R]RRRRf((tanctcurtdstR+Rr(s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyt mergefuncs$   (RRtancestorR(RARER?(R+RrR>twctx((R;R<R=R+Rrs7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyRs     !  c C@sY|jd}|jd}|jd}|jd}|j}x6t|D](}|j|j|dkrPtSqPWt|jt}|s|j |r|j j t dt |tj|fdSn|j j t dt |tj|ftj|ji|d6|} tj|j| |d|} |j|| jS( NRt new_branchtsshRis4no changes made to subrepo %s since last push to %s spushing subrepo %s to %s t newbranch(ReRRltsortedR@RRfRRcR|R?RRR3RR-R(R]R#RRtcgresult( R+RRRCRBtctsubsRtdsturlR2R8((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyRs*     cC@sod|ksd|krJtj|}|jdd|jddntj||jt|jt|S(NRR:(R R'R(R]RRRRc(R+R?RR((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyRs cC@sod|ksd|krJtj|}|jdd|jddntj||jt|jt|S(NRR:(R R'R(R]RRRRf(R+R?RR((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyRs cC@s*|jd}|j|}|jjS(Ni(RRtmanifesttkeys(R+RRn((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyRs  cC@sF|jd}|j||j}|rB|jj||}n|S(Ni(RRtdatat wwritedata(R+RRRRK((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyRs  cC@s'|jd}|j|}|j|S(Ni(RRR(R+RRRn((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyRs  cC@s[|jjdkr%|jd}n|jd}|j|}tj||||||S(Ni(RwRR(RRRR(R+R?RRRR`RnR((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyRs   c C@s7|j}|jjdkr+|d}n|jd}||}|j|d|g}x|jD]}|j|}yM|j|d|} tj |j |j || d|} |j | Wqdt jk r |jjtd|jjt||qdXqdWt|dkr*|dStj|S(NiRs#skipping missing subrepository: %s i(RRwRR(RRRlR@RtprefixdirmatcherRXtgetcwdRRt LookupErrorR?RRRYRNRRt unionmatcher( R+RRR[RnRtmatchersRR@tsmtpm((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyRs&    %cC@s|jd}|j|S(N(RR(RG(R+RRn((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyRG8s c C@s=tj|j|j||jj||jtd|d|S(NRR(RRR?RRYRNRxRc(R+RRRR((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyR<sc C@s:tj|j|j||jj||j||||S(N(RRR?RRYRNRx(R+RRRRR`RR((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyRBscO@s|jjtd|d|jdsd|j}d|d<|d|d<|j||n|jds|j|dtndS( Nsreverting subrepo %s it no_backupRiRtdry_runR(R?RRReR R(t filerevertRc(R+RlRR((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyRIs  cO@sj|j|d}|jjj}|jdr>dg}ng}tj|j|j||||dS(NRtallsset:modified()(RtdirstatetparentsReRRR?(R+RRRnRY((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyRV_s  cC@s|d S(Ni ((R+R((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyRhscC@s_ddlm}|a|jjrE|jjtd|jntj|j|jdS(Ni(R]sunsharing subrepo '%s' ( RkR]RR*R?RRRR(R+Rq((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyRks  cC@syu|jd}|jj|}|jrp|jj}|jtd|jtj |j jfndSWnMt j k r|jjjtd|jtj |j jfdSXdS(Nis&subrepo '%s' is hidden in revision %s is&subrepo '%s' not found in revision %s ( RRRR5R?RKRRRtshortRwRR (R+RRnR?((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyR}s   &#cC@s |jjS(s7return own wvfs for efficiency and consistency (RRY(R+((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyRYscC@s t|jS(sLreturn path to this subrepository as seen from outermost repository (RR(R+((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyRsN(2R.R/R*R=R{R|RRRRRRRRRRRRRR(RcRRfRARRRRRRReRRRRRRRRRRGRRRRVRRRRYR(((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyRs^           @      t svnsubrepocB@seZdZdedZedZdZdZdZ dZ e eedZ d Z e d Ze d Ze ed Ze d ZdZe dZdZRS(cC@s`tt|j||||_tjd|_|js\tjt d|j ndS(NR_s+'svn' executable not found for subrepo '%s'( RR[R*RRtfindexet_exeRR)RRx(R+RnRRrRp((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyR*s   Rkc C@s|jg}i}|jjsQtj|d<|ddkrQ|jdqQn|j||dk r|jj |j j j |j |}|j|nttj}|jd}|r||d<|d=nd |d          cC@sy|jddgdd\}}tjd|}|sQtjtdnt|jdt|jdfS(Ns --versions--quietRys ^(\d+)\.(\d+)s cannot retrieve svn tool versionii( RR(tretsearchRR)Rtinttgroup(R+toutputterrR((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyt _svnversions !cC@s|jjd S(Ns.svn(RYR(R+((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyt _svnmissingscC@s|jddg\}}tjjj|}|jd}d\}}|rt|djdpmd}|djd}|rt|djdpd}qn||fS( Ntinfos--xmltentryRsiR0R(RsRs(Rtxmltdomtminidomt parseStringtgetElementsByTagNametstrt getAttribute(R+RRtdoctentriestlastrevRtcommits((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyt_wcrevss %cC@s|jdS(Ni(R(R+((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyt_wcrevsc C@s~|jddg\}}ggg}}}tjjj|}x|jdD]}|jd}|suqTn|djd} |djd} |jd} | d kr|j| n| d kr|j| n| dks| dkrT|j| qTqTWxT|D]L} xC|D];} | | ksJ| j| t j r"t t t |fSq"WqWt |t t |fS(sReturn (changes, extchanges, missing) where changes is True if the working directory was changed, extchanges is True if any of these changes concern an external entry and missing is True if any change is a missing entry. Rs--xmlRs wc-statusititemtpropsRtexternalRRktnormalt unversionedtnone(RkRRR(RkRR(RRRRRRRRt startswithR tossepRctboolRf( R+RRt externalstchangesRRteRRRRtext((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyt _wcchangeds,      "cC@ss|jr|jddkS|j}|dp@|o@|d}|so|jd|jksh|rotSntS(NiRkii(RRRRRfRc(R+R~Rt wcchangedtchanged((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyRAs  cC@sh|j\}}||krdy,|jdd|jd|fg|SWqdtjk r`qdXn|S(NRs%s@%si(RRRRR)(R+RR((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyRs $c C@s!|j\}}}|s%|jS|rCtjtdn|ratjtdn|jdd|g\}}|jj|tj d|} | s|j stjtdntj|j dn| j d} |jj|jd d | gd| S( Nscannot commit svn externalss!cannot commit missing svn entriesRs-msCommitted revision ([0-9]+).sfailed to commit svn changesiiRs-r( RRRR)RRR?RRRRvt splitlinestgroups( R+RRRRt extchangedRt commitinfoRtnewrev((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyR s"  &cC@s|jr-|jjtd|jdS|jjtd|j|jjdty/|j j j}|j |j |jWnt k rnXdS(Ns-not removing repo %s because it has changes. sremoving subrepo %s tforcibly(RAR?RKRRxR!RYR+RcRwR[t removedirsRPtOSError(R+tpwvfs((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyR<s   cC@s6|r|jddgndg}|jdkrD|jdn|jd|d|dftj|d|j|d t\}}t|j|jd t j d |s"d |kr|j d t t fkr|j |j|dt dStj|p|jdn|jj|dS(NRs --recursiveR_iis--forces%s@%siRzs.svnsChecked out revision [0-9]+.s-is already a working copy for a different URLiRi(ii(RRRRt checksafesshRcRVR?RYRRRRfRReRR)RR(R+RrRR,RR((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyReKs"   "cC@s|jd}|d}|j}||kr|||kpH|jd}t|j||||r||j|tq|ndS(Nii(RRRRER?ReRf(R+RrtoldtnewtwcrevRA((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyRes    cC@stS(N(Rc(R+R((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyRoscC@s|jdddgd}tjjj|}g}x|jdD]o}tj|jd}|dkrwqGndj d |jd dj D}|j |j d qGW|S( NRs --recursives--xmliRRhtfileRkcs@s*|] }|j|jkr|jVqdS(N(tnodeTypet TEXT_NODERK(t.0RF((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pys |sRsutf-8( RRRRRRR tbytestrRRLt childNodesRtencode(R+RRRRRhR((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyRss  cC@s|jdg|dS(NRi(R(R+RR((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyRs(R.R/R*RfRRRRRRRR=RARRRReRRRR(((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyR[s$ (      t gitsubrepocB@seZdZdZedZedZd!edZ d!edZ d!ed!dZ dZ dZ d Zd Zd Zd Zd ZdZdZdZdZdZeeedZdZeedZedZedZedZedZedZ d!e!dZ"edZ#edZ$edZ%edZ&d Z'RS("cC@sWtt|j||||_|jj||_|j|_|jdS(N( RRR*RR[Rt_abspathRt _ensuregit(R+RnRRrRp((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyR*s  cC@sy%d|_|jdg\}}Wn0tk rW}td}td}|jtjkrtj||jt j |j fqXt j r2y%d|_|jdg\}}WqTtk r.}|jtjkrtjtd|jd|q/tj||jt j |j fqTXqXtjtd|jd|nX|j|}|d kr|jjtd nI|d krtjtd n%|d kr|jjtdndS(NR^s --versions(error executing git for subrepo '%s': %ss'check git is installed and in your PATHsgit.cmds1couldn't find 'git' or 'git.cmd' for subrepo '%s'R2s"couldn't find git for subrepo '%s'tunknownscannot retrieve git version Rs,git subrepo requires at least 1.6.0 or latertwarnings-git subrepo requires at least 1.6.0 or later (t_gitexecutablet _gitnodirRRterrnotENOENTRR)RxRt strtolocaltstrerrorR t iswindowst _checkversionR?RK(R+toutRRt genericerrort notfoundhintte2t versionstatus((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyRs:    "        cC@stjd|}|rRt|jdt|jdt|jdfStjd|}|rt|jdt|jddfSdS(Ns ^git version (\d+)\.(\d+)\.(\d+)iiis^git version (\d+)\.(\d+)ii(RRRR(RR((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyt _gitversions:+cC@sCtj|}|dkrdS|d kr/dS|d kr?dSd S( sensure git version is new enough >>> _checkversion = gitsubrepo._checkversion >>> _checkversion(b'git version 1.6.0') 'ok' >>> _checkversion(b'git version 1.8.5') 'ok' >>> _checkversion(b'git version 1.4.0') 'abort' >>> _checkversion(b'git version 1.5.0') 'warning' >>> _checkversion(b'git version 1.9-rc0') 'ok' >>> _checkversion(b'git version 1.9.0.265.g81cdec2') 'ok' >>> _checkversion(b'git version 1.9.0.GIT') 'ok' >>> _checkversion(b'git version 12345') 'unknown' >>> _checkversion(b'no') 'unknown' iRiiiRiRtok(iii(iii(RR(Rtversion((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyRs   cC@s|j|d|d|dS(NRitstreami(t_gitdir(R+RxRiR((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyt _gitcommandscC@s"|j|d|d|d|jS(NRiRtcwd(RR(R+RxRiR((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyRsc C@s|jjd|jdj|f|dkrDtjj}nd|d|jd}|dkr>d|| kr>|Sn||_t|S(Ns://t:iR(tfindRR(R+Rtcolon((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyR\s   cC@s|jrgtj||j|}|jjtd|j|f|jd||j gn|j |rzdS|jjtd|j|j df|j dg|j |st jtd||jfndS(Nscloning subrepo %s from %s R.spulling subrepo %s from %s torigintfetchs1revision %s does not exist in subrepository "%s" (RRRRR?RRRRRRRRRR)(R+RR0((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyt_fetches  cC@s|jr|jddkS|jr-tS| rQ|jd|jkrQtS|j|jdddg\}}|dkS(NiRks diff-indexs--quietR(RRRRcRRR(R+R~RRR((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyRAxs    cC@s |jS(N(R(R+((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyRsc@s|\}}s#jdSj|jrjdddgjkrjdddgdSnHjkrrjddgjdddgndSj\}}fdfd}|kr|dS|}d} xK|D]C} | d krVd gdS| r3| jd  r3| } q3q3W| r| gdSj|j } |d } | | krx'|D]} | | kr| } PqqWn| | kr| j d d d } d| | gnzj || | | r| | j krb| | gnjdd| gt jjdn|dS(NRs core.baretfalsetresets--hardRc@s]dg}r2jddg|jdnj||tjjddS(NR_RRs-fs.git(RRRVR?RY(R,R{(RR+(s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyR_s  c@sGjjtdjjjtddgdS(Ns1checking out detached HEAD in subrepository "%s" s5check out a git branch if you intend to make changes s-q(R?RKRR((R_R0R+(s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyt rawcheckouts srefs/heads/masters refs/remotes/iRis-bRs--ffs.git(RRRRRRR(RRRJRRRRVR?RY(R+RrRRRhRRRRtfirstlocalbranchRRRCRB((R_RR0R+s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyRes`                cC@s|jr+tjtd|jnddd|g}tjj}|re|d|g7}n|rtj |d|ds  ii( RRRRRRARRER?(R+RrRRhRRR>RA((RR0R+Rrs7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyRs  %c C@s|jd}|jds tS|jrKtjtd|jn|j\}}|jd|krx/||jdD]}|j drtSqWnxI|j D];\}}|j dr|j |jd|rtSqqWdg}|r |j dn|j }|r|j |jd|sY|jjtd|jtS|jjtd|jd d d |jf|j|d |g} | dd kS|jjtd |j|jdftSdS(NRissubrepo %s is missingsrefs/remotes/origin/Rs--forces7unrelated git branch checked out in subrepository "%s" s(pushing branch %s of subrepository "%s" RiRisDno branch checked out in subrepository "%s" cannot push revision %s (ReRRcRRR)RRRRt iteritemsRRRR?RKRfRRR( R+RRRRRR0R{Rtret((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyR s<       !cK@s|jrgS|jddtdt}t}x3|j|j|j|jfD]}|j |qSW|j } | j |j g} gt t| D]} || r| ^q} x| D]} |j| } dg} | r| jdn|js| r+|jtd|j| n| |krS| r| j| qqn|jds|j| | gqqWx.| D]&} |jtd|j| qW| S(NRRRs-fs adding %s RUs%s already tracked! (RRR(RctsettmodifiedtaddedtdeletedRRRRlRRDtexactRtverboseRtrelReRRKtabs(R+R?RRRRRttrackedRRtrejectedRURR((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyR1s4  % 1  #  $cC@s|jrdS|jr=|jjtd|jdS|jjtd|j|jdddgxa|jj D]P\}}|dkrqn|t j kr|jj |q|jj |qWdS(Ns-not removing repo %s because it has changes. sremoving subrepo %s Rs core.bareRs.git(RRAR?RKRRR!RRYtreaddirtstattS_IFDIRR+RM(R+RURh((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyRXs    cC@sbd}|j\}}|s|S|j|||jd|gdt}tjd|dd} t|} |jjt d| dt d } | j dx| D]} | j rqn|r|| j  rqn| j r| j} n| j| j} |j||jd | j | j| j | |d 7}| jqW| j|S( NiRRtfileobjRsr|sarchiving (%s)RRRi(RRRRcttarfileRR3R?RRRtisdirRtissymtlinknamet extractfileRRRxRRR(R+RRRRRRR0t tarstreamttarRRRRK((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyRls2        c K@s|jd}|jrdS|js-dSxt|jD]f}|jdd||fg}tj|j|d|jj||} | j || j q:WdS(NiRs%s:%stpathnamei( RtanypatsRRRt makefileobjRwRYRNRtclose( R+RRRRRRRURtfp((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyRs    cK@s:|jd}|js | r?tjgggggggSggg}}}|j|r{ddd||g}ndd|g}|j|}x|jdD]} | jd} | dkrqn| | d| !| | d} } | d kr |j| q| d kr(|j| q| d kr|j| qqWggggf\} }}}d d dg}|j dr|dg7}n|j dr|dg7}n|j|}t }|j ||j ||j |x|jdD]} | sqn| dd!}| jddkrR| djd\}}n| d}d}|j ||r|j |n|dkr|j|q|dkr|j|qqW|j dr|jdg}x6|jdD]"} | |kr|j| qqWntj|||| |||S(Nis diff-trees --no-renamess-rs diff-indexs s itMtAtDRs --porcelains-zRs--untracked-files=alltignoreds --ignoredsiiis??s!!Rsls-files(RRR RRRRRRReR RR(R(R+RRR R R tremovedRRRttabRRUR RR'Rt changedfileststt filename1t filename2((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyRsj                 cK@s|jd}ddg}|dr3|jdn|jd|j|jj||j} |jr|jd| d| gn|jd | d | g|jr|jd n|j r|jd n|j |j d gdkr |j r |jdn|j||r0|j|nd} |j r\| |j |d7} nz|j|d } g| D]} | D] } | ^qqv}x>|D]6} || r| |j |d| gd7} qqW| jr|j| ndS(NiRs --no-renamesRs--stats-U%ds--src-prefix=%s/s--dst-prefix=%s/s--src-prefix=a/%s/s--dst-prefix=b/%s/s--ignore-all-spaces--ignore-space-changes --versioniis--ignore-blank-linesRks is--(iii(RRtcontextRYRNRxtnoprefixRltignorewstignorewsamountRRtignoreblanklinestalwaysRRvR(R+R?RRRRRRR{t gitprefixRR+tsublistRUR((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyRs>        !   &  ( cO@s|jjtd|d|jds|jd}|j}x_|D]T}tj|j|j|}|jj td||f|j j ||qLWn|jds|j|dt ngS(Nsreverting subrepo %s iRTs#saving current version of %s as %s RUR( R?RRReR(R R torigpathRR!RYtrenameRc(R+RlRRRRRRtbakname((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyRs  cC@s|d S(Ni((R+R((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyRsN((R.R/R*Rt staticmethodRRR(RfRRRRRRRRRRRRRRRR=RARReRRRRRRcRRRRRR(((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pyRsF  ! $0            U('!C,(?t __future__RR RRRRRRRjR5Rtxml.dom.minidomRti18nRRkRRRRRRRRR R R R R RRRtutilsRRRR(R]RR3RRRR#R)R$R=RERVR\RcRfRdRjR%RutobjectRvRR[RRg(((s7/usr/lib64/python2.7/site-packages/mercurial/subrepo.pytsZ           ^