D4326: setdiscovery: precompute children revisions to avoid quadratic lookup

Yuya Nishihara yuya at tcha.org
Sat Aug 18 03:36:46 EDT 2018


> +    parentrevs = repo.changelog.parentrevs
> +    for rev in repo.changelog.revs(start=min(revsroots)):
> +        # Always ensure revision has an entry so we don't need to worry about
> +        # missing keys.
> +        children.setdefault(rev, [])
> +
> +        for prev in parentrevs(rev):
> +            if prev == nullrev:
> +                continue
> +
> +            children.setdefault(prev, []).append(rev)

Just FYI, I remember I wrote a similar code, which is a53bfc2845f2.


More information about the Mercurial-devel mailing list