ó ŸçƒQc@sÐddlZddlZddlZddlZddlZd„Zd„Zd„Zd„Zd„Z ied6ed6ed 6e d 6Z idd6dd6d d6d d 6Z d „Z d efd „ƒYZdS(iÿÿÿÿNcCstj|dƒS(scRevisions candidates to be hidden This is a standalone function to help extensions to wrap it.tobsolete(Rtgetrevs(trepo((s6/sys/lib/python2.7/site-packages/mercurial/repoview.pyt hideablerevssc s|jj st‚t|ƒ}|r|j}t|ƒ}|jd|ƒ}gtj|||ƒD]}||krb|^qb}x+|dj ƒD]}|j |j ƒƒq‘Wx.|j j ƒD]}|j ||j ƒƒq¾W|j|dtƒ‰t‡fd†|DƒƒStƒS(sbcompute the set of hidden revision to filter During most operation hidden should be filtered.tstartt inclusivec3s!|]}|ˆkr|VqdS(N((t.0tr(tblocked(s6/sys/lib/python2.7/site-packages/mercurial/repoview.pys &sN(t changelogt filteredrevstAssertionErrorRtmintrevstrevsett _childrentNonetparentstappendtrevt _bookmarkstvaluest ancestorstTruet frozenset( Rthideabletclt firsthideableR Rtblockerstpartbm((Rs6/sys/lib/python2.7/site-packages/mercurial/repoview.pyt computehiddens   cs¿ˆjj st‚tˆdƒ}tjˆƒr·ˆj‰tj‰ˆjj‰t ‡fd†ˆjj ˆDƒƒ}ˆj d|ƒ}t ‡‡‡fd†|Dƒƒ}t ||BƒS|SdS(s†compute the set of revision that should be filtered when used a server Secret and hidden changeset should not pretend to be here.tvisiblec3s|]}ˆj|ƒVqdS(N(R(Rtn(R(s6/sys/lib/python2.7/site-packages/mercurial/repoview.pys 4sRc3s*|] }ˆˆ|ƒˆkr|VqdS(N((RR(tgetphaseRtsecret(s6/sys/lib/python2.7/site-packages/mercurial/repoview.pys 6sN(R R R t filterrevstphasest hassecretR#t _phasecachetphaseR t phaserootsR tsetR(RthiddenstfirstR tsecrets((RR"RR#s6/sys/lib/python2.7/site-packages/mercurial/repoview.pytcomputeunserved)s   &"cskˆjj st‚tjˆjjdƒrdˆjj‰tˆdƒ}t ‡‡fd†|DƒƒSt ƒS(s†compute the set of revision that should be filtered when used a server Secret and hidden changeset should not pretend to be here.itbasec3s$|]}ˆˆ|ƒr|VqdS(N((RR(R"R(s6/sys/lib/python2.7/site-packages/mercurial/repoview.pys Ds( R R R tutiltanyR'R)R(R$R(Rt maymutable((R"Rs6/sys/lib/python2.7/site-packages/mercurial/repoview.pytcomputemutable;s  cs™|jj st‚|j‰tˆƒ}xF|jjdD]4}|r9t|t‡fd†|Dƒƒƒ}q9q9Wtd|ƒ}tt |tˆƒƒƒS(s.Everything impactable by mutable revision The immutable filter still have some chance to get invalidated. This will happen when: - you garbage collect hidden changeset, - public phase is moved backward, - something is changed in the filtering (this could be fixed) This filter out any mutable changeset and any public changeset that may be impacted by something happening to a mutable revision. This is achieved by filtered everything with a revision number egal or higher than the first mutable changeset is filtered.ic3s|]}ˆj|ƒVqdS(N(R(RR(R(s6/sys/lib/python2.7/site-packages/mercurial/repoview.pys [si( R R R tlenR'R)R tmaxRtxrange(Rt firstmutabletroots((Rs6/sys/lib/python2.7/site-packages/mercurial/repoview.pytcomputeimpactableGs  ,R tservedt immutableR/cCs@||jkr5t|}||jƒƒ|j| repo.__class__.method(repoview) The inheritance has to be done dynamically because `repo` can be of any subclasses of `localrepo`. Eg: `bundlerepo` or `statichttprepo`. cCsPtj|d|ƒtj|d|ƒtj|ddƒtj|ddƒdS(Nt_unfilteredrepoR?t _clcachekeyt_clcache(tobjectt __setattr__R(tselfRR?((s6/sys/lib/python2.7/site-packages/mercurial/repoview.pyt__init__šscCs|j}|j}t||jƒ}|j}t|ƒ|jƒt|ƒf}|dk rÅ|j }z.d|_t|ƒ|jƒt|ƒf}Wd||_ X||j ks¹||krÅd}qÅn|dkrt j |ƒ}||_ t j |d|ƒt j |d|ƒn|S(s_return a filtered version of the changeset this changelog must not be used for writingNRDRC((RBR R$R?RDR4ttipthashRR RCtcopyRERF(RGtunfit unfichangelogR Rtnewkeyt oldfiltertcurkey((s6/sys/lib/python2.7/site-packages/mercurial/repoview.pyR ¡s&   !   %    cCs|jS(s&Return an unfiltered version of a repo(RB(RG((s6/sys/lib/python2.7/site-packages/mercurial/repoview.pyR>ÀscCs&||jkr|S|jƒj|ƒS(s)Return a filtered version of a repository(R?R>tfiltered(RGtname((s6/sys/lib/python2.7/site-packages/mercurial/repoview.pyRQÄscCst|j|ƒS(N(tgetattrRB(RGtattr((s6/sys/lib/python2.7/site-packages/mercurial/repoview.pyt __getattr__ËscCst|j||ƒS(N(tsetattrRB(RGRTtvalue((s6/sys/lib/python2.7/site-packages/mercurial/repoview.pyRFÎscCst|j|ƒS(N(tdelattrRB(RGRT((s6/sys/lib/python2.7/site-packages/mercurial/repoview.pyt __delattr__ÑscCs |jjS(N(RBt requirements(RG((s6/sys/lib/python2.7/site-packages/mercurial/repoview.pyRZ×s( t__name__t __module__t__doc__RHtpropertyR R>RQRURFRYRZ(((s6/sys/lib/python2.7/site-packages/mercurial/repoview.pyRAws!      (RKR%R0RRRRR.R3R9R=Rt subsettableR$RERA(((s6/sys/lib/python2.7/site-packages/mercurial/repoview.pyt s$