\x89\x50\x4E\x47\x0D\x0A\x1A\x0A PNG  \x89\x50\x4E\x47\x0D\x0A\x1A\x0A  13\c@@s=dZddlmZddlmZddlmZddlmZm Z m Z m Z m Z m Z mZmZmZmZmZmZdejfdYZd eejfd YZd eejfd YZd e j fdYZde jfdYZdefdYZdddZdZ dS(s~Repository class for "in-memory pull" of one local repository to another, allowing operations like diff and log with revsets. i(tabsolute_importi(t_(tnullid( t changelogtcmdutiltencodingterrortfilelogt localrepotmanifesttmdifftpathutiltrevlogtutiltvfst unionrevlogcB@steZdZdZdZd edZdZdZ d d d dZ d dZ dZ d Z RS( c C@stj|}tjj|||||_t|}|d|_t|_xN|jD]C}|jj |}|\}} } } } } }}|d@}|dkr| |kst |}n || }|dk r|| } n||j kr|jj |j |q]n|jj| }|jj|}|d| | ||j||j||f}|j j|||j |<|jj ||d7}q]WdS(Nii(tvfsmodt readonlyvfsR t__init__trevlog2tlent repotiprevtsett bundlerevstindextNonetAssertionErrortnodemaptaddtnodetrevtappend(tselftopenert indexfileRt linkmappertntrev2Rt_startt_csizetrsizetbasetlinkrevtp1revtp2revRtflagstlinktp1nodetp2nodete((s9/usr/lib64/python2.7/site-packages/mercurial/unionrepo.pyR#s6          $ cC@s;||jkr"tjj||S|jj|j|S(N(RR t_chunkRR(R R((s9/usr/lib64/python2.7/site-packages/mercurial/unionrepo.pyR2QscC@s||jkr[||jkr[|jj|jj|j||jj|j|S||jkr||jkr|j||Stj|j||j|S(s1return or calculate a delta between two revisions( RRtrevdiffRRt baserevdiffR ttextdifftrevision(R trev1R%((s9/usr/lib64/python2.7/site-packages/mercurial/unionrepo.pyR3Vs cC@st|tr'|}|j|}n|}|j|}|tkrLdS||jkr|jj|}|||f|_n|j |}|S(sTreturn an uncompressed revision of a given node or revision number. t( t isinstancetintRRRRRR6t_revisioncachet baserevision(R t nodeorrevt_dftrawRRttext((s9/usr/lib64/python2.7/site-packages/mercurial/unionrepo.pyR6as cC@stjj||S(N(R R6(R R=((s9/usr/lib64/python2.7/site-packages/mercurial/unionrepo.pyR<wscC@stjj|||S(N(R R3(R R7R%((s9/usr/lib64/python2.7/site-packages/mercurial/unionrepo.pyR4}scC@s tdS(N(tNotImplementedError(R R@t transactionR.tp1tp2td((s9/usr/lib64/python2.7/site-packages/mercurial/unionrepo.pyt addrevisionscC@s tdS(N(RA(R tdeltasRBt addrevisioncb((s9/usr/lib64/python2.7/site-packages/mercurial/unionrepo.pytaddgroupscC@s tdS(N(RA(R Rtminlink((s9/usr/lib64/python2.7/site-packages/mercurial/unionrepo.pytstripscC@s tdS(N(RA(R ((s9/usr/lib64/python2.7/site-packages/mercurial/unionrepo.pyt checksizesN(t__name__t __module__RR2R3RtFalseR6R<R4RFRIRKRL(((s9/usr/lib64/python2.7/site-packages/mercurial/unionrepo.pyR"s .      tunionchangelogcB@s#eZdZdZdZRS(cC@sHtjj||d}tj|}tj|||j||dS(N(RRRRR"(R R!topener2R#t changelog2((s9/usr/lib64/python2.7/site-packages/mercurial/unionrepo.pyRs cC@stjj||S(N(RR6(R R=((s9/usr/lib64/python2.7/site-packages/mercurial/unionrepo.pyR<scC@stjj|||S(N(RR3(R R7R%((s9/usr/lib64/python2.7/site-packages/mercurial/unionrepo.pyR4s(RMRNRR<R4(((s9/usr/lib64/python2.7/site-packages/mercurial/unionrepo.pyRPs  t unionmanifestcB@s#eZdZdZdZRS(cC@sBtjj||tj|}tj|||j||dS(N(R tmanifestrevlogRRR"(R R!RQR#t manifest2((s9/usr/lib64/python2.7/site-packages/mercurial/unionrepo.pyRscC@stjj||S(N(R RTR6(R R=((s9/usr/lib64/python2.7/site-packages/mercurial/unionrepo.pyR<scC@stjj|||S(N(R RTR3(R R7R%((s9/usr/lib64/python2.7/site-packages/mercurial/unionrepo.pyR4s(RMRNRR<R4(((s9/usr/lib64/python2.7/site-packages/mercurial/unionrepo.pyRSs  t unionfilelogcB@s,eZdZdZdZdZRS(cC@sqtjj|||tj||}t||j|j||_||_|jj|_|jj|_dS(N(RRRR"t_revlogt_repoRR(R R!tpathRQR#trepotfilelog2((s9/usr/lib64/python2.7/site-packages/mercurial/unionrepo.pyRs  cC@stjj||S(N(RR6(R R=((s9/usr/lib64/python2.7/site-packages/mercurial/unionrepo.pyR<scC@stjj|||S(N(RR3(R R7R%((s9/usr/lib64/python2.7/site-packages/mercurial/unionrepo.pyR4scC@sM||jkr"tjj||S|j|}|jj|jj|S(s Check if a revision is censored.(RRt iscensoredRRR(R RR((s9/usr/lib64/python2.7/site-packages/mercurial/unionrepo.pyR\s(RMRNRR<R4R\(((s9/usr/lib64/python2.7/site-packages/mercurial/unionrepo.pyRVs  t unionpeercB@seZdZRS(cC@stS(N(RO(R ((s9/usr/lib64/python2.7/site-packages/mercurial/unionrepo.pytcanpushs(RMRNR^(((s9/usr/lib64/python2.7/site-packages/mercurial/unionrepo.pyR]stunionrepositorycB@szeZdZdZejdZejdZdZdZ dZ dZ dZ d Z d ZRS( sRepresents the union of data in 2 repositories. Instances are not usable if constructed directly. Use ``instance()`` or ``makeunionrepository()`` to create a usable instance. cC@s/||_||_|jjddtddS(Ntphasestpublisht unionrepo(trepo2t_urltuit setconfigRO(R Rcturl((s9/usr/lib64/python2.7/site-packages/mercurial/unionrepo.pyRs  cC@st|j|jjS(N(RPtsvfsRc(R ((s9/usr/lib64/python2.7/site-packages/mercurial/unionrepo.pyRscC@s:t|j|jj|jj}tj|j||S(N(RSRhRct unfilteredt_clrevR t manifestlog(R t rootstore((s9/usr/lib64/python2.7/site-packages/mercurial/unionrepo.pyRkscC@s%|jjj|}|jj|S(s?map from repo2 changelog rev to temporary rev in self.changelog(RcRRR(R R%R((s9/usr/lib64/python2.7/site-packages/mercurial/unionrepo.pyRjscC@s|jS(N(Rd(R ((s9/usr/lib64/python2.7/site-packages/mercurial/unionrepo.pyRgscC@s(t|j||jj|jj|S(N(RVRhRcRiRj(R tf((s9/usr/lib64/python2.7/site-packages/mercurial/unionrepo.pytfilescC@s|jjdS(N(Rctclose(R ((s9/usr/lib64/python2.7/site-packages/mercurial/unionrepo.pyRoscC@stS(N(RO(R ((s9/usr/lib64/python2.7/site-packages/mercurial/unionrepo.pytcancopyscC@s t|S(N(R](R ((s9/usr/lib64/python2.7/site-packages/mercurial/unionrepo.pytpeerscC@s tjS(N(Rtgetcwd(R ((s9/usr/lib64/python2.7/site-packages/mercurial/unionrepo.pyRrs(RMRNt__doc__RRtunfilteredpropertycacheRRkRjRgRnRoRpRqRr(((s9/usr/lib64/python2.7/site-packages/mercurial/unionrepo.pyR_s       c C@sA|rtjtdn|jdd}|sctjtj}|dkrcd}qcn|rtj}||krd}qt j |}|j |r|t |}qn|j dr$|j dddj dd}t |dkr||d }} q1|\}} n ||}} t||| S( Ns"cannot create new union repositorytbundlet mainreporootR8sunion:t:it+i(RtAbortRtconfigRtfindrepoRRrRR t normasprefixt startswithRtsplittmakeunionrepository( ReRYtcreatetintentst createoptst parentpathtcwdtstrepopatht repopath2((s9/usr/lib64/python2.7/site-packages/mercurial/unionrepo.pytinstances*     " cC@stj||dt}tj||dt}dtj|tj|f}dt|jfdY}|}||_tj||||S(s7Make a union repository object from 2 local repo paths.Rs union:%s+%stderivedunionrepositorycB@seZRS((RMRN(((s9/usr/lib64/python2.7/site-packages/mercurial/unionrepo.pyRs(RRROR t expandpathR_t __class__R(Ret repopath1Rtrepo1RcRgRRZ((s9/usr/lib64/python2.7/site-packages/mercurial/unionrepo.pyRs N(!Rst __future__Rti18nRRRR8RRRRRRR R R R R RRRRPRTRSRVt localpeerR]tobjectR_RRR(((s9/usr/lib64/python2.7/site-packages/mercurial/unionrepo.pyt sRh .