diff --git a/commit-graph.c b/commit-graph.c index 2ad09f35da..8fce79b39b 100644 --- a/commit-graph.c +++ b/commit-graph.c @@ -1566,7 +1566,7 @@ static timestamp_t get_generation_from_graph_data(struct commit *c, void *data) static void set_generation_v2(struct commit *c, timestamp_t t, void *data) { struct commit_graph_data *g = commit_graph_data_at(c); - g->generation = (uint32_t)t; + g->generation = t; } static void compute_generation_numbers(struct write_commit_graph_context *ctx) diff --git a/t/t5328-commit-graph-64bit-time.sh b/t/t5328-commit-graph-64bit-time.sh index 093f0c067a..57e4d9c699 100755 --- a/t/t5328-commit-graph-64bit-time.sh +++ b/t/t5328-commit-graph-64bit-time.sh @@ -63,4 +63,13 @@ test_expect_success 'set up and verify repo with generation data overflow chunk' graph_git_behavior 'overflow 2' repo left right +test_expect_success 'single commit with generation data exceeding UINT32_MAX' ' + git init repo-uint32-max && + cd repo-uint32-max && + test_commit --date "@4294967297 +0000" 1 && + git commit-graph write --reachable && + graph_read_expect 1 "generation_data" && + git commit-graph verify +' + test_done