ó žçƒQc@s˜dZddlmZddlmZddlZddlZddlZddlZddl Z ddl Z ddl Z ddl Z ddl Z ddlZddlZddlZddlZddlZddlZdejfd„ƒYZdeejfd„ƒYZd eejfd „ƒYZd eejfd „ƒYZd ejfd„ƒYZdejfd„ƒYZd„Zdded„ZdS(sRepository class for viewing uncompressed bundles. This provides a read-only repository interface to bundles as if they were part of the actual repository. iÿÿÿÿ(tnullid(t_Nt bundlerevlogcBsYeZd„Zd„Zd„Zd„Zdddd„Zd„Zd„Z d„Z RS( cCstj|ƒ}tjj|||ƒ||_t|ƒ}|d|_d}tƒ|_ x¸t r|j |ƒ}|s{Pn|d}|d} |d} |d} |d} |d} t| ƒ}|j ƒ|}|| ƒ}||j kr|}|j j|j |ƒq\nxD| | fD]6}||j krtj||jtdƒƒ‚qqW| |j kr…t| |jtd ƒƒ‚n|j| ƒ}tj|d ƒ|d |||j| ƒ|j| ƒ|f}|jjd |ƒ||j |<|j j|ƒ|}|d7}q\WdS( Nitnodetp1tp2tcst deltabasetdeltasunknown parentsunknown delta baseiiÿÿÿÿ(tscmutilt readonlyvfstrevlogt__init__tbundletlent repotiprevtNonetsett bundlerevstTruet deltachunkttelltnodemaptaddterrort LookupErrort indexfileRtrevt offset_typetindextinsert(tselftopenerRR t linkmappertntchaint chunkdataRRRRRRtsizetstarttlinktptbaserevte((s8/sys/lib/python2.7/site-packages/mercurial/bundlerepo.pyR sN              ! cCsT||jkr"tjj||ƒS|jj|j|ƒƒ|jj|j|ƒƒS(N(RR t_chunkR tseekR&treadtlength(RR((s8/sys/lib/python2.7/site-packages/mercurial/bundlerepo.pyR+LscCs³||jkrK||jkrK|j|d}||kr|j|ƒSn4||jkr||jkrtjj|||ƒStj|j|j|ƒƒ|j|j|ƒƒƒS(s1return or calculate a delta between two revisionsi( RRR+R trevdifftmdiffttextdifftrevisionR(Rtrev1trev2trevb((s8/sys/lib/python2.7/site-packages/mercurial/bundlerepo.pyR/Us cCsCt|tƒr'|}|j|ƒ}n|}|j|ƒ}|tkrLdSd}g}|}x^||jkr¾|jr|jd|kr|jd}Pn|j|ƒ|j |d}qaW|dkrãt j j ||ƒ}nx4|r|j |j ƒƒ}tj||gƒ}qæW|j|||ƒ|||f|_|S(sTreturn an uncompressed revision of a given node or revision number. tiiiN(t isinstancetintRRRRRt_cachetappendRR R2R+tpopR0tpatchest _checkhash(Rt nodeorrevRRttextR#titerrevR((s8/sys/lib/python2.7/site-packages/mercurial/bundlerepo.pyR2bs0     cCs t‚dS(N(tNotImplementedError(RR?t transactionR'RRtd((s8/sys/lib/python2.7/site-packages/mercurial/bundlerepo.pyt addrevision…scCs t‚dS(N(RA(RtrevsR!RB((s8/sys/lib/python2.7/site-packages/mercurial/bundlerepo.pytaddgroup‡scCs t‚dS(N(RA(RRtminlink((s8/sys/lib/python2.7/site-packages/mercurial/bundlerepo.pytstrip‰scCs t‚dS(N(RA(R((s8/sys/lib/python2.7/site-packages/mercurial/bundlerepo.pyt checksize‹sN( t__name__t __module__R R+R/R2RRDRFRHRI(((s8/sys/lib/python2.7/site-packages/mercurial/bundlerepo.pyRs 7 #  tbundlechangelogcBseZd„ZRS(cCs<tjj||ƒd„}tj|||j||ƒdS(NcSs|S(N((tx((s8/sys/lib/python2.7/site-packages/mercurial/bundlerepo.pyt‘s(t changelogR RR(RR R R!((s8/sys/lib/python2.7/site-packages/mercurial/bundlerepo.pyR s (RJRKR (((s8/sys/lib/python2.7/site-packages/mercurial/bundlerepo.pyRLŽstbundlemanifestcBseZd„ZRS(cCs3tjj||ƒtj|||j||ƒdS(N(tmanifestR RR(RR R R!((s8/sys/lib/python2.7/site-packages/mercurial/bundlerepo.pyR –s(RJRKR (((s8/sys/lib/python2.7/site-packages/mercurial/bundlerepo.pyRP•st bundlefilelogcBseZd„Zd„ZRS(cCs?tjj|||ƒtj|||j||ƒ||_dS(N(tfilelogR RRt_repo(RR tpathR R!trepo((s8/sys/lib/python2.7/site-packages/mercurial/bundlerepo.pyR œscCs|jj|ƒdS(N(RTtfile(Rtf((s8/sys/lib/python2.7/site-packages/mercurial/bundlerepo.pyt_file¢s(RJRKR RY(((s8/sys/lib/python2.7/site-packages/mercurial/bundlerepo.pyRR›s t bundlepeercBseZd„ZRS(cCstS(N(tFalse(R((s8/sys/lib/python2.7/site-packages/mercurial/bundlerepo.pytcanpush¦s(RJRKR\(((s8/sys/lib/python2.7/site-packages/mercurial/bundlerepo.pyRZ¥stbundlerepositorycBseZd„Zejd„ƒZejd„ƒZejd„ƒZejd„ƒZd„Z d„Z d„Z d„Z d „Z d „ZRS( c CsÒd|_ytjj|||ƒWnRtjk rwtjƒ|_tj ||jdƒtjj|||jƒnX|j j ddt ƒ|rµdt j|ƒd||_n d||_d|_t j|dƒ}tj||ƒ|_|jjƒrÅtjddd d d |jƒ\}}||_tj|d ƒ}zG|jd ƒx3trˆ|jjdƒ}|sxPn|j|ƒqVWWd|jƒXt j|jdƒ}tj||ƒ|_ni|_dS(Nitphasestpublishsbundle:t+trbtprefixs hg-bundle-tsuffixs.hg10untdirtwbtHG10UNiii(Rt _tempparentt localrepotlocalrepositoryR Rt RepoErrorttempfiletmkdtemptinstancetuit setconfigR[tutilt expandpatht_urlt posixfilet changegroupt readbundleR t compressedtmkstempRUtostfdopentwriteRR-tclosetbundlefilespos( RRnRUt bundlenameRXtfdtempttemptfptemptchunk((s8/sys/lib/python2.7/site-packages/mercurial/bundlerepo.pyR ªs< !      cCs8|jjƒt|j|jƒ}|jjƒ|_|S(N(R tchangelogheaderRLtsopenerRtmanstart(Rtc((s8/sys/lib/python2.7/site-packages/mercurial/bundlerepo.pyROÒs cCsT|jj|jƒ|jjƒt|j|j|jjƒ}|jjƒ|_ |S(N( R R,R„tmanifestheaderRPRƒRORRt filestart(Rtm((s8/sys/lib/python2.7/site-packages/mercurial/bundlerepo.pyRQÚs  cCs|j|jS(N(ROR„(R((s8/sys/lib/python2.7/site-packages/mercurial/bundlerepo.pyR„ãscCs|j|jS(N(RQR‡(R((s8/sys/lib/python2.7/site-packages/mercurial/bundlerepo.pyR‡èscCs|jS(N(Rr(R((s8/sys/lib/python2.7/site-packages/mercurial/bundlerepo.pyturlíscCsí|jsŽ|jj|jƒxotrŠ|jjƒ}|s>Pn|d}|jjƒ|j| s$HHz n