Microsoft

Supercharging the Git Commit Graph II: File Format

Jul 2, 2018Derrick Stolee
Supercharging the Git Commit Graph II: File Format
SummaryAI, from the source post

This post details the file format of the Git commit-graph, explaining its structure with four main sections: Commit IDs, Fanout, Commit Data, and Octopus Edges. It also discusses small optimizations made to Git's parsing and object database lookups, such as avoiding `mark_parents_uninteresting()` calls and lazily loading tree objects, which contribute to significant speedups for commands like `git status` and `git log --graph`. The post contrasts these improvements with the performance of Visual Studio Team Services (VSTS) in displaying commit history.

More from the Scalar for Git at Scale trail