sapling/edenscmnative
Jun Wu 0dda4d7bae bindings: add a way to calculate heads(ancestors(revs))
Summary:
Per team meeting, we want to remove whole changelog scans that are incompatible
with the upcoming dag changes.

Heads calculation is one of such "whole changelog scans".

The plan is to use visibility heads + remote names to answer `head()`. However,
remote names are not guarnateed to be heads. For example, `stable` might be
an ancestor of `master`. To get the right answer about `head()`, some
calculation like `heads(::(remotenames() + visible-heads()))` needs to be done.

Calculating `heads(ancestors(...))` in Python is quite slow. This diff provides
a native fast path for it. It still requires a partial changelog scan, but will be
compatible with the future dag-based commit graph.

Reviewed By: sfilipco

Differential Revision: D17199841

fbshipit-source-id: 6ea4367b8877209899d56094f8d8ee1aff1ad6f3
2019-09-17 18:15:20 -07:00
..
bindings bindings: add a way to calculate heads(ancestors(revs)) 2019-09-17 18:15:20 -07:00
__init__.py setup: move native extensions to edenscmnative 2019-06-19 17:55:49 -07:00
clindex.pyx setup: move native extensions to edenscmnative 2019-06-19 17:55:49 -07:00
linelog.pyx setup: move native extensions to edenscmnative 2019-06-19 17:55:49 -07:00
litemmap.pyx setup: move native extensions to edenscmnative 2019-06-19 17:55:49 -07:00
patchrmdir.pyx setup: move native extensions to edenscmnative 2019-06-19 17:55:49 -07:00
traceprof.pyx setup: move native extensions to edenscmnative 2019-06-19 17:55:49 -07:00