On 5/7/2018 10:58 AM, Junio C Hamano wrote:
* ds/generation-numbers (2018-05-02) 11 commits - commit-graph.txt: update design document - merge: check config before loading commits - commit: use generation number in remove_redundant() - commit: add short-circuit to paint_down_to_common() - commit: use generation numbers for in_merge_bases() - ref-filter: use generation number for --contains - commit-graph: always load commit-graph information - commit: use generations in paint_down_to_common() - commit-graph: compute generation numbers - commit: add generation number to struct commmit - ref-filter: fix outdated comment on in_commit_list (this branch uses ds/commit-graph and ds/lazy-load-trees.) A recently added "commit-graph" datafile has learned to store pre-computed generation numbers to speed up the decisions to stop history traversal. Is this ready for 'next'?
I see that you squashed the fix from [1], so I think this is ready to go. Thanks!
[1] https://public-inbox.org/git/1cfe38f6-925b-d36b-53ae-6b586eed199c@xxxxxxxxx/
* ds/lazy-load-trees (2018-05-02) 6 commits (merged to 'next' on 2018-05-02 at d54016d9e3) + coccinelle: avoid wrong transformation suggestions from commit.cocci (merged to 'next' on 2018-04-25 at b90813f421) + commit-graph: lazy-load trees for commits + treewide: replace maybe_tree with accessor methods + commit: create get_commit_tree() method + treewide: rename tree to maybe_tree + Merge branch 'bw/c-plus-plus' into ds/lazy-load-trees (this branch is used by ds/generation-numbers; uses ds/commit-graph.) The code has been taught to use the duplicated information stored in the commit-graph file to learn the tree object name for a commit to avoid opening and parsing the commit object when it makes sense to do so. Will merge to 'master'. * ds/commit-graph (2018-04-11) 16 commits (merged to 'next' on 2018-04-25 at 18af3d28d9) + commit-graph: implement "--append" option + commit-graph: build graph from starting commits + commit-graph: read only from specific pack-indexes + commit: integrate commit graph with commit parsing + commit-graph: close under reachability + commit-graph: add core.commitGraph setting + commit-graph: implement git commit-graph read + commit-graph: implement git-commit-graph write + commit-graph: implement write_commit_graph() + commit-graph: create git-commit-graph builtin + graph: add commit graph design document + commit-graph: add format document + csum-file: refactor finalize_hashfile() method + csum-file: rename hashclose() to finalize_hashfile() + Merge branch 'jk/cached-commit-buffer' into HEAD + Merge branch 'jt/binsearch-with-fanout' into HEAD (this branch is used by ds/generation-numbers and ds/lazy-load-trees.) Precompute and store information necessary for ancestry traversal in a separate file to optimize graph walking. Will merge to 'master'.
These have been queued for master for a few weeks. Is anything delaying them? I'd love to see the community dogfood this feature by running the following on their local repos:
git config core.commitGraph true git show-ref -s | git commit-graph write --stdin-commits Thanks, -Stolee