Commit Graph

4 Commits

Author SHA1 Message Date
Jun Wu
5bbc59aff0 dag: implement DAG range
Summary: Implement the "dag range" (aka. "x::y" in mercurial) query.

Reviewed By: sfilipco

Differential Revision: D16988046

fbshipit-source-id: 2733a1ec7831c5bace6056b9376dce53c6aafb0c
2019-09-13 19:31:01 -07:00
Jun Wu
f6deec39ec dag: implement roots
Summary: Similar to `heads(x) = x - parents(x)`, `roots(x) = x - children(x)`.

Reviewed By: markbt

Differential Revision: D16976381

fbshipit-source-id: 0606cc907951b49cbbd7b75ccd11a222bc9bd0fe
2019-09-13 19:31:01 -07:00
Jun Wu
1a32a56b82 dag: implement children
Summary:
The children operation is now O(flat segments) = O(merges). But it has
potential to be faster with more precalculated information in segments.
See added comments for details.

Reviewed By: markbt

Differential Revision: D16976383

fbshipit-source-id: 80bfd2cefa5aa5ceabfd7e40d46d06f7e2b64d34
2019-09-13 19:31:00 -07:00
Jun Wu
0181efeb2c dag: add dag_ops benchmark
Summary:
This will guide optimizations.

Right now, gca_one "large sets" can take forever to run.

The code to build the mozilla DAG was extracted to a single file to be sharable.

Reviewed By: sfilipco

Differential Revision: D16992730

fbshipit-source-id: 1538f5b0098cd06cb179bd556df285055e1d62b6
2019-09-13 19:30:59 -07:00