Commit 595929b
committed
Temporarily
This temporarily instruments a fixture script to reveal how the
`access::generation_numbers_overflow_is_handled_in_chained_graph`
test fails when `GIX_TEST_IGNORE_ARCHIVES=1` is set: the fixture
script `generation_number_overflow.sh` runs, and it sets the
timestamp `@4147483646` on a commit, which `git` permits. But then
`git tag` rejects this timestamp as being out of range. On stderr:
+ commit future-1 '@4147483646 +0000'
+ local message=future-1
+ local 'date=@4147483646 +0000'
+ local file=future-1.t
+ echo future-1
+ git add -- future-1.t
+ '[' -n '@4147483646 +0000' ']'
+ export 'GIT_COMMITTER_DATE=@4147483646 +0000'
+ GIT_COMMITTER_DATE='@4147483646 +0000'
+ git commit -m future-1
+ git tag future-1
fatal: Timestamp too large for this system: 4147483646
The nature of the problem is *partially* illuminated by the
following experiment on a 32-bit Debian 12 system:
$ git init repo
Initialized empty Git repository in /home/ek/src/repo/.git/
$ cd repo
$ touch a
$ git add a
$ GIT_COMMITTER_DATE='@4147483646 +0000' git commit -m 'Initial commit'
[main (root-commit) 99b1de4] Initial commit
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 a
$ git log --pretty=fuller
commit 99b1de4e0610ff715e784bd4089dc315e8071332 (HEAD -> main)
Author: Eliah Kagan <degeneracypressure@gmail.com>
AuthorDate: Sat Nov 23 01:05:12 2024 -0500
Commit: Eliah Kagan <degeneracypressure@gmail.com>
CommitDate: Thu Jan 1 00:00:00 1970 +0000
Initial commit
$ git tag t
fatal: Timestamp too large for this system: 4147483646
$ git tag -a t
fatal: Timestamp too large for this system: 4147483646
The timestamp is accepted when committing, and written as actor
metadata for the committer. But is is not (or at least not always)
interpreted as intended: as `git log` shows it, it has wrapped
around to 1970. Even though the commit was created successfully,
attempting to make a tag that points to it fails. This happens both
for a lightweight tag (as in the fixture script) and an annotated
tag, so making it a tag object does not seem to be a workaround.set -x to reveal git tag failure1 parent 27d047f commit 595929b
1 file changed
+1
-0
lines changedLines changed: 1 addition & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
36 | 36 | | |
37 | 37 | | |
38 | 38 | | |
| 39 | + | |
39 | 40 | | |
40 | 41 | | |
41 | 42 | | |
| |||
0 commit comments