* [PATCH] doc: fix a small, old release notes typo
@ 2026-06-14 17:28 D. Ben Knoble
2026-06-14 21:52 ` Junio C Hamano
2026-06-15 17:14 ` Jeff King
0 siblings, 2 replies; 5+ messages in thread
From: D. Ben Knoble @ 2026-06-14 17:28 UTC (permalink / raw)
To: git; +Cc: D. Ben Knoble, Elijah Newren
Signed-off-by: D. Ben Knoble <ben.knoble+github@gmail.com>
---
No harm done if you choose not to keep this, I think. Stumbled upon it when
trying to understand Elijah's message [1] about timestamp_t overflowing in 2106
(I though 32-bit time_t overflowed in 2038, but timestamp_t is something
different… except maybe when it's not? Anyway…)
[1]: <pull.2148.git.1781420271100.gitgitgadget@gmail.com>
Documentation/RelNotes/2.14.0.adoc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Documentation/RelNotes/2.14.0.adoc b/Documentation/RelNotes/2.14.0.adoc
index 2711a2529d..182fbe6179 100644
--- a/Documentation/RelNotes/2.14.0.adoc
+++ b/Documentation/RelNotes/2.14.0.adoc
@@ -142,7 +142,7 @@ Performance, Internal Implementation, Development Support etc.
historical use of ulong for timestamp would mean they cannot
represent some timestamp that the platform allows. Invent a
separate and dedicated timestamp_t (so that we can distinguish
- timestamps and a vanilla ulongs, which along is already a good
+ timestamps and a vanilla ulongs, which alone is already a good
move), and then declare uintmax_t is the type to be used as the
timestamp_t.
base-commit: 0c8ab3ebcc76981376809c8fe632d0fe18e93347
--
2.54.0.1136.gdb2ca164c4.dirty
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH] doc: fix a small, old release notes typo
2026-06-14 17:28 [PATCH] doc: fix a small, old release notes typo D. Ben Knoble
@ 2026-06-14 21:52 ` Junio C Hamano
2026-06-15 15:27 ` D. Ben Knoble
2026-06-15 17:14 ` Jeff King
1 sibling, 1 reply; 5+ messages in thread
From: Junio C Hamano @ 2026-06-14 21:52 UTC (permalink / raw)
To: D. Ben Knoble; +Cc: git, Elijah Newren
"D. Ben Knoble" <ben.knoble+github@gmail.com> writes:
> Signed-off-by: D. Ben Knoble <ben.knoble+github@gmail.com>
> ---
> No harm done if you choose not to keep this, I think. Stumbled upon it when
> trying to understand Elijah's message [1] about timestamp_t overflowing in 2106
> (I though 32-bit time_t overflowed in 2038, but timestamp_t is something
> different… except maybe when it's not? Anyway…)
Unless it fixes a glaring factual error that would harm end-users if
left unfixed, I would not very much be enthused to see fixes to
these ancient documents, quite honestly.
> separate and dedicated timestamp_t (so that we can distinguish
> - timestamps and a vanilla ulongs, which along is already a good
> + timestamps and a vanilla ulongs, which alone is already a good
"timestamps and vanilla ulongs", as both are plural?
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] doc: fix a small, old release notes typo
2026-06-14 21:52 ` Junio C Hamano
@ 2026-06-15 15:27 ` D. Ben Knoble
0 siblings, 0 replies; 5+ messages in thread
From: D. Ben Knoble @ 2026-06-15 15:27 UTC (permalink / raw)
To: Junio C Hamano; +Cc: git, Elijah Newren
[Resending for list]
On Sun, Jun 14, 2026 at 5:52 PM Junio C Hamano <gitster@pobox.com> wrote:
>
> "D. Ben Knoble" <ben.knoble+github@gmail.com> writes:
>
> > Signed-off-by: D. Ben Knoble <ben.knoble+github@gmail.com>
> > ---
> > No harm done if you choose not to keep this, I think. Stumbled upon it when
> > trying to understand Elijah's message [1] about timestamp_t overflowing in 2106
> > (I though 32-bit time_t overflowed in 2038, but timestamp_t is something
> > different… except maybe when it's not? Anyway…)
👍
> Unless it fixes a glaring factual error that would harm end-users if
> left unfixed, I would not very much be enthused to see fixes to
> these ancient documents, quite honestly.
>
> > separate and dedicated timestamp_t (so that we can distinguish
> > - timestamps and a vanilla ulongs, which along is already a good
> > + timestamps and a vanilla ulongs, which alone is already a good
>
> "timestamps and vanilla ulongs", as both are plural?
Indeed
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] doc: fix a small, old release notes typo
2026-06-14 17:28 [PATCH] doc: fix a small, old release notes typo D. Ben Knoble
2026-06-14 21:52 ` Junio C Hamano
@ 2026-06-15 17:14 ` Jeff King
2026-06-15 19:10 ` D. Ben Knoble
1 sibling, 1 reply; 5+ messages in thread
From: Jeff King @ 2026-06-15 17:14 UTC (permalink / raw)
To: D. Ben Knoble; +Cc: git, Elijah Newren
On Sun, Jun 14, 2026 at 01:28:31PM -0400, D. Ben Knoble wrote:
> No harm done if you choose not to keep this, I think. Stumbled upon it when
> trying to understand Elijah's message [1] about timestamp_t overflowing in 2106
> (I though 32-bit time_t overflowed in 2038, but timestamp_t is something
> different… except maybe when it's not? Anyway…)
Leaving aside the patch for a moment, the answer to your timestamp
question is: signed 32-bit takes us to 2038 (and back to 1902), but
unsigned goes to 2106 (but only back to 1970).
Usually time_t is signed, but our timestamp_t is not, mostly for
historical reasons. And timestamp_t itself is our local invention
because we have no control over the definition of time_t (but we still
end up needing it to call system date functions).
I have some patches to allow negative timestamps, but I ran into
portability issues. IIRC, Windows gmtime() chokes on negative
timestamps.
It hasn't been a big deal in practice since new commits made today will
always have a positive epoch. But negative timestamps would allow
importing some historical projects (like Apollo mission code), as well
as weird (ab)uses of Git to store historical documents (like legal code
going back centuries).
-Peff
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] doc: fix a small, old release notes typo
2026-06-15 17:14 ` Jeff King
@ 2026-06-15 19:10 ` D. Ben Knoble
0 siblings, 0 replies; 5+ messages in thread
From: D. Ben Knoble @ 2026-06-15 19:10 UTC (permalink / raw)
To: Jeff King; +Cc: git, Elijah Newren
On Mon, Jun 15, 2026 at 1:14 PM Jeff King <peff@peff.net> wrote:
>
> On Sun, Jun 14, 2026 at 01:28:31PM -0400, D. Ben Knoble wrote:
>
> > No harm done if you choose not to keep this, I think. Stumbled upon it when
> > trying to understand Elijah's message [1] about timestamp_t overflowing in 2106
> > (I though 32-bit time_t overflowed in 2038, but timestamp_t is something
> > different… except maybe when it's not? Anyway…)
>
> Leaving aside the patch for a moment, the answer to your timestamp
> question is: signed 32-bit takes us to 2038 (and back to 1902), but
> unsigned goes to 2106 (but only back to 1970).
>
> Usually time_t is signed, but our timestamp_t is not, mostly for
> historical reasons. And timestamp_t itself is our local invention
> because we have no control over the definition of time_t (but we still
> end up needing it to call system date functions).
Doh, that's the difference I missed. Thanks!
> I have some patches to allow negative timestamps, but I ran into
> portability issues. IIRC, Windows gmtime() chokes on negative
> timestamps.
>
> It hasn't been a big deal in practice since new commits made today will
> always have a positive epoch. But negative timestamps would allow
> importing some historical projects (like Apollo mission code), as well
> as weird (ab)uses of Git to store historical documents (like legal code
> going back centuries).
>
> -Peff
Reminded me of https://williamzujkowski.github.io/posts/2026-04-02-building-us-code-tracker-law-as-git-history/
Thanks again,
Ben
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2026-06-15 19:11 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-06-14 17:28 [PATCH] doc: fix a small, old release notes typo D. Ben Knoble
2026-06-14 21:52 ` Junio C Hamano
2026-06-15 15:27 ` D. Ben Knoble
2026-06-15 17:14 ` Jeff King
2026-06-15 19:10 ` D. Ben Knoble
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.