[PATCH 0/5] Generation Number v2: Fix a tricky split graph bug
From: Derrick Stolee via GitGitGadget <hidden>
Date: 2021-02-01 17:16:01
Here is a bugfix for the recently-landed-in-next generation v2 topic
(ak/corrected-commit-date).
This was occasionally hitting us when computing new commit-graphs on
existing repositories with the new bits. It was very hard to reproduce, and
it turns out to be due to not parsing commits before accessing generation
number data. Doing so in the right place demonstrates the bug of recomputing
the corrected commit date even for commits in lower layers with computed
values.
The fix is split into these steps:
1. Parse commits more often before accessing their data. (This allows the
bug to be demonstrated in the test suite.)
2. Check the full commit-graph chain for generation data chunks.
3. Don't compute corrected commit dates if the lower layers do not support
them.
4. Parse the commit-graph file more often.
Thanks, -Stolee
Derrick Stolee (5):
commit-graph: use repo_parse_commit
commit-graph: always parse before commit_graph_data_at()
commit-graph: validate layers for generation data
commit-graph: be extra careful about mixed generations
commit-graph: prepare commit graph
commit-graph.c | 87 ++++++++++++++++++++++++++---------------
commit.h | 5 ++-
t/t5318-commit-graph.sh | 21 ++++++++++
3 files changed, 79 insertions(+), 34 deletions(-)
base-commit: 5a3b130cad0d5c770f766e3af6d32b41766374c0
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-850%2Fderrickstolee%2Fgen-v2-upgrade-fix-v1
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-850/derrickstolee/gen-v2-upgrade-fix-v1
Pull-Request: https://github.com/gitgitgadget/git/pull/850
--
gitgitgadget