\x89\x50\x4E\x47\x0D\x0A\x1A\x0A PNG  \x89\x50\x4E\x47\x0D\x0A\x1A\x0A  13\c@@s ddlmZddlZddlZddlmZddlmZmZm Z m Z dZ dZ dZdd Zdd Zdd Zdd Zied 6ed6ed6ed6ed6ZddZdefdYZejZdZdS(i(tabsolute_importNi(tnullrev(tobsoletetphasestpycompatttagscC@s>tj|d}|jj|tj}t|}||BS(saRevision candidates to be hidden This is a standalone function to allow extensions to wrap it. Because we use the set of immutable changesets as a fallback subset in branchmap (see mercurial.branchmap.subsettable), you cannot set "public" changesets as "hideable". Doing so would break multiple code assertions and lead to crashes.R(Rtgetrevst _phasecachet getrevsetRtlocalhiddenphasest frozenset(trepot obsoletest internals((s8/usr/lib64/python2.7/site-packages/mercurial/repoview.pyt hideablerevss  c@s|j}t}|jg|djD]}|j^q)|jg|jjD]}|j|^qXi}tj |j ||i|r|j|j |jfd|jDn|S(s=revisions blocking hidden changesets from being filtered c3@s/|]%}|dkr|dVqdS(iN((t.0tt(tnodemaptrev(s8/usr/lib64/python2.7/site-packages/mercurial/repoview.pys 1sN( t changelogtsettupdatetNonetparentsRt _bookmarkstvaluesttagsmodt readlocaltagstuiR(R tcltpinnedtpartbmR((RRs8/usr/lib64/python2.7/site-packages/mercurial/repoview.pyt pinnedrevs$s  02)cC@sot|}x\|rjxO||jD];}|tkr(||kr(|j||j|q(q(WqWdS(sQreveals contiguous chains of hidden ancestors of 'revs' by removing them from 'hidden' - pfunc(r): a funtion returning parent of 'r', - hidden: the (preliminary) hidden revisions, to be updated - revs: iterable of revnum, (Ancestors are revealed exclusively, i.e. the elements in 'revs' are *not* revealed) N(tlisttpopRtremovetappend(tpfuncthiddentrevststacktp((s8/usr/lib64/python2.7/site-packages/mercurial/repoview.pyt_revealancestors5s   cC@s|jj stt|}|rt|t|}|rN||8}n|jj}|jj|t j }||}t |||nt |S(sbcompute the set of hidden revision to filter During most operation hidden should be filtered.( Rt filteredrevstAssertionErrorRRR!t parentrevsRRRt mutablephasesR+R (R tvisibilityexceptionsR'R&tmutabletvisible((s8/usr/lib64/python2.7/site-packages/mercurial/repoview.pyt computehiddenGs    cC@se|jj stt|d}tj|r]|jj|tj}t |t |BS|SdS(scompute the set of revision that should be filtered when used a server Secret and hidden changeset should not pretend to be here.R2N( RR,R-t filterrevsRt hassecretRRtremotehiddenphasesR (R R0thiddenstsecrets((s8/usr/lib64/python2.7/site-packages/mercurial/repoview.pytcomputeunservedYs c@shjj sttjjdrajjtd}tfd|DStS(Nitbasec3@s$|]}|r|VqdS(N((Rtr(tgetphaseR (s8/usr/lib64/python2.7/site-packages/mercurial/repoview.pys ls( RR,R-tanyRt phaserootstphaseR4R (R R0t maymutable((R<R s8/usr/lib64/python2.7/site-packages/mercurial/repoview.pytcomputemutablefs  c@s|jj st|jt}xF|jjdD]4}|r9t|tfd|D}q9q9Wtd|}tt j |tS(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.ic3@s|]}j|VqdS(N(R(RR;(R(s8/usr/lib64/python2.7/site-packages/mercurial/repoview.pys si( RR,R-tlenRR>tmintmaxR Rtxrange(R R0t firstmutabletroots((Rs8/usr/lib64/python2.7/site-packages/mercurial/repoview.pytcomputeimpactableos  ,R2svisible-hiddentservedt immutableR:cC@sV||jkrKt|}|r/||j|S||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`. cC@sctj|d|tj|d|tj|ddtj|ddtj|d|dS(Nt_unfilteredrepoRNt _clcachekeyt_clcachet_visibilityexceptions(tobjectt __setattr__R(tselfR RNR0((s8/usr/lib64/python2.7/site-packages/mercurial/repoview.pyt__init__s  c C@s|j}|j}|j}t|}||dd}t||j|j}|j}||t||j f}|dk r|j|k s||j krd}n|dkrt j |}||_ tj|d|tj|d|n|S(s_return a filtered version of the changeset this changelog must not be used for writingiiRSRRN(RQRtindexRBR4RNRTRSthasht_delayedRRRtcopyR,RURV( RWtunfit unfichangelogt unfiindextunfilentunfinodeR(Rtnewkey((s8/usr/lib64/python2.7/site-packages/mercurial/repoview.pyRs"         cC@s|jS(s&Return an unfiltered version of a repo(RQ(RW((s8/usr/lib64/python2.7/site-packages/mercurial/repoview.pyRMscC@s0||jkr| r|S|jj||S(s)Return a filtered version of a repository(RNRMtfiltered(RWtnameR0((s8/usr/lib64/python2.7/site-packages/mercurial/repoview.pyRcscC@s)d|jjtj|j|jfS(Ns <%s:%s %r>(t __class__t__name__RtsysstrRNRM(RW((s8/usr/lib64/python2.7/site-packages/mercurial/repoview.pyt__repr__s cC@st|j|S(N(tgetattrRQ(RWtattr((s8/usr/lib64/python2.7/site-packages/mercurial/repoview.pyt __getattr__scC@st|j||S(N(tsetattrRQ(RWRjtvalue((s8/usr/lib64/python2.7/site-packages/mercurial/repoview.pyRVscC@st|j|S(N(tdelattrRQ(RWRj((s8/usr/lib64/python2.7/site-packages/mercurial/repoview.pyt __delattr__sN( Rft __module__t__doc__RRXtpropertyRRMRcRhRkRVRo(((s8/usr/lib64/python2.7/site-packages/mercurial/repoview.pyRPs!      cC@s:|tkr2dt|fdY}|t| s(  "        f