sapling/edenscmnative/bindings/modules
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
..
pyblackbox replace std::sync{Mutex, RwLock, Condvar} with parking_lot 2019-09-13 15:16:57 -07:00
pybookmarkstore bindings: split the crate into multiple crates 2019-09-12 10:51:07 -07:00
pycliparser bindings: split the crate into multiple crates 2019-09-12 10:51:07 -07:00
pycommands bindings: split the crate into multiple crates 2019-09-12 10:51:07 -07:00
pyconfigparser bindings: split the crate into multiple crates 2019-09-12 10:51:07 -07:00
pydag bindings: add more methods to dag.spans 2019-09-17 18:15:19 -07:00
pyedenapi bindings: split the crate into multiple crates 2019-09-12 10:51:07 -07:00
pylz4 bindings: split the crate into multiple crates 2019-09-12 10:51:07 -07:00
pymanifest manifest: add bfs diff to bindings crate 2019-09-12 18:28:43 -07:00
pymutationstore bindings: split the crate into multiple crates 2019-09-12 10:51:07 -07:00
pynodemap bindings: split the crate into multiple crates 2019-09-12 10:51:07 -07:00
pypathmatcher bindings: split the crate into multiple crates 2019-09-12 10:51:07 -07:00
pyrevisionstore bindings: split the crate into multiple crates 2019-09-12 10:51:07 -07:00
pyrevlogindex bindings: add a way to calculate heads(ancestors(revs)) 2019-09-17 18:15:20 -07:00
pystackdesc bindings: split the crate into multiple crates 2019-09-12 10:51:07 -07:00
pytreestate bindings: split the crate into multiple crates 2019-09-12 10:51:07 -07:00
pyvlq bindings: add vlq.read API 2019-09-16 14:01:15 -07:00
pyzstd bindings: split the crate into multiple crates 2019-09-12 10:51:07 -07:00