pr-112/derrickstolee/graph/v2-head-v2
tagged this
24 Apr 19:58
The commit-graph file format has some shortcomings that were discussed on-list: 1. It doesn't use the 4-byte format ID from the_hash_algo. 2. There is no way to change the reachability index from generation numbers to corrected commit date [1]. 3. The unused byte in the format could be used to signal the file is incremental, but current clients ignore the value even if it is non-zero. This series adds a new version (2) to the commit-graph file. The fifth byte already specified the file format, so existing clients will gracefully respond to files with a different version number. The only real change now is that the header takes 12 bytes instead of 8, due to using the 4-byte format ID for the hash algorithm. The new bytes reserved for the reachability index version and incremental file formats are now expected to be equal to the defaults. When we update these values to be flexible in the future, if a client understands commit-graph v2 but not those new values, then it will fail gracefully. NOTE: this series was rebased onto ab/commit-graph-fixes, as the conflicts were significant and subtle. Thanks, -Stolee [1] https://public-inbox.org/git/6367e30a-1b3a-4fe9-611b-d931f51effef@gmail.com/ Derrick Stolee (5): commit-graph: return with errors during write commit-graph: collapse parameters into flags commit-graph: create new version flags commit-graph: add --version=<n> option commit-graph: implement file format version 2 Documentation/git-commit-graph.txt | 3 + .../technical/commit-graph-format.txt | 26 ++- builtin/commit-graph.c | 43 +++-- builtin/commit.c | 5 +- builtin/gc.c | 7 +- commit-graph.c | 156 +++++++++++++----- commit-graph.h | 16 +- t/t5318-commit-graph.sh | 68 +++++++- 8 files changed, 254 insertions(+), 70 deletions(-) base-commit: 93b4405ffe4ad9308740e7c1c71383bfc369baaa Submitted-As: https://public-inbox.org/git/pull.112.v2.git.gitgitgadget@gmail.com In-Reply-To: https://public-inbox.org/git/pull.112.git.gitgitgadget@gmail.com
Assets 2
-
2019-04-24T19:58:01Z -
2019-04-24T19:58:01Z -