aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--commit-graph.c2
-rwxr-xr-xt/t5328-commit-graph-64bit-time.sh9
2 files changed, 10 insertions, 1 deletions
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