Sparse Commit Graph¶
One challenge in the creation of the generated repository is correctly ordering the incoming changesets in a commit graph. Common graphs in mozilla-central look like the following, with “green” nodes being the ones affecting localization that we want to transform.
What we’d expect to get would be a graph that just goes through our nodes, in this case effectively a linear graph.
Natively, mercurial creates a graph that shows all paths from each node to another that can be taken in the full graph, creating, in this case, a graph that connects all nodes.
The code generating our target repository needs to either strip that graph down, or create a sparse graph from scratch.