[PATCH 3 of 8] hidden: add a function returning ancestors of revs within a domain

Martin von Zweigbergk martinvonz at google.com
Wed May 24 10:00:10 EDT 2017


On Wed, May 24, 2017, 06:43 Pierre-Yves David <
pierre-yves.david at ens-lyon.org> wrote:

>
>
> On 05/23/2017 11:35 PM, Martin von Zweigbergk wrote:
> > On Mon, May 22, 2017 at 3:00 PM, Augie Fackler <raf at durin42.com> wrote:
> >> On Sun, May 21, 2017 at 05:20:38PM +0200, Pierre-Yves David wrote:
> >>> # HG changeset patch
> >>> # User Pierre-Yves David <pierre-yves.david at octobus.net>
> >>> # Date 1495372906 -7200
> >>> #      Sun May 21 15:21:46 2017 +0200
> >>> # Node ID bde4b1ab7b0111988a521c4c4c28b3963010eeff
> >>> # Parent  acd7e055dbcb5830de634f52971a39dc654d73e1
> >>> # EXP-Topic dynamicblocker
> >>> # Available At
> https://www.mercurial-scm.org/repo/users/marmoute/mercurial/
> >>> #              hg pull
> https://www.mercurial-scm.org/repo/users/marmoute/mercurial/ -r
> bde4b1ab7b01
> >>> hidden: add a function returning ancestors of revs within a domain
> >>>
> >>> See documentation for details. This will be used to improve the hidden
> >>> computation algorithm. See new changesets for usage.
> >>>
> >>> diff --git a/mercurial/repoview.py b/mercurial/repoview.py
> >>> --- a/mercurial/repoview.py
> >>> +++ b/mercurial/repoview.py
> >>> @@ -92,6 +92,29 @@ def _getstatichidden(repo):
> >>>                      heappush(heap, -parent)
> >>>      return hidden
> >>>
> >>> +def _domainancestors(pfunc, revs, domain):
> >>> +    """return ancestors of 'revs' within 'domain'
> >>> +
> >>> +    - pfunc(r): a funtion returning parent of 'r',
> >>                       ^ function (please double-check your
> spellchecker?)
> >>
> >>
> >>> +    - revs: iterable of revnum,
> >>> +    - domain: consistent set of revnum.
> >>
> >> I'm not sure what "consistent set of revnum" means, which makes the
> docstring not useful.
> >
> > Maybe Pierre-Yves meant "contiguous"? I can fix in flight if that's
> > what it was meant to be (assuming it looks good otherwise; I haven't
> > started reviewing).
>
> I do not mean contiguous. The domains can have multiple disconnected
> "subset", but these "subset" are not ancestors of each other.
>
> If that helps. "domain" will be all revision in "not public()" They can
> be on disconnect "branch", but these subset will all be based only on
> public changeset outside the "domain"
>
> >
> >>
> >>> +
> >>> +    The domain must be consistent, no connected set are the ancestors
> of another
> >>> +    connected set.
> >>
> >> I can't parse this definition either. :(
> >
> > I'm not sure I can either. With the history below, it sounds like B
> > and C can be in the domain, but A cannot. Correct?
> >
> > B C
> > | /
> > A
>
> Can you check my explanation my rephrasing in V2 to see if it clarifies it?
>

I did before sending the above. I didn't even notice a difference in v2, or
at least not anything that helped me understand.

Was my example correct?


>
> >
> >>
> >>> +
> >>> +    (Ancestors are returned inclusively)
> >>> +    """
> >>> +    stack = list(revs)
> >>> +    ancs = set(stack)
> >>> +    while stack:
> >>> +        for p in pfunc(stack.pop()):
> >>> +            nbanc = len(ancs)
> >>> +            if p != nullrev and p in domain:
> >>> +                ancs.add(p)
> >>> +            if nbanc != len(ancs): # avoid double membership testing
> >>> +                stack.append(p)
> >>> +    return ancs
> >>> +
> >>>  cacheversion = 1
> >>>  cachefile = 'cache/hidden'
> >>>
> >>> _______________________________________________
> >>> Mercurial-devel mailing list
> >>> Mercurial-devel at mercurial-scm.org
> >>> https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
> >> _______________________________________________
> >> Mercurial-devel mailing list
> >> Mercurial-devel at mercurial-scm.org
> >> https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
>
> --
> Pierre-Yves David
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.mercurial-scm.org/pipermail/mercurial-devel/attachments/20170524/ac155d14/attachment-0001.html>


More information about the Mercurial-devel mailing list