commit-graph: fix generation number v2 overflow values
commitc8d67b9a682e2a52beafab60f057ac317e35358d
authorDerrick Stolee <derrickstolee@github.com>
Tue, 1 Mar 2022 19:48:32 +0000 (1 19:48 +0000)
committerJunio C Hamano <gitster@pobox.com>
Tue, 1 Mar 2022 20:15:06 +0000 (1 12:15 -0800)
tree5571716a3e2e1347dcd595a586ddd639d4ce7a99
parent3b0199d4c3c9cc2ec39413c52c15cfd16e4d0980
commit-graph: fix generation number v2 overflow values

The Generation Data Chunk was implemented and tested in e8b63005c
(commit-graph: implement generation data chunk, 2021-01-16), but the
test was carefully constructed to work on systems with 32-bit dates.
Since the corrected commit date offsets still required more than 31
bits, this triggered writing the generation_data_overflow chunk.

However, upon closer look, the
write_graph_chunk_generation_data_overflow() method writes the offsets
to the chunk (as dictated by the format) but fill_commit_graph_info()
treats the value in the chunk as if it is the full corrected commit date
(not an offset). For some reason, this does not cause an issue when
using the FUTURE_DATE specified in t5318-commit-graph.sh, but it does
show up as a failure in 'git commit-graph verify' if we increase that
FUTURE_DATE to be above four billion.

Fix this error and create a 64-bit timestamp version of the test so we
can test these larger values.

Signed-off-by: Derrick Stolee <derrickstolee@github.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
commit-graph.c
t/t5328-commit-graph-64bit-time.sh