git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: Millisecond precision in timestamps?

From
Andreas Ericsson <ae@op5.se>
Date
Nov 28, 2012, 10:10 UTC
Message-ID
<50B5E30B.5080505@op5.se>
In-Reply-To
<7v7gp6i3rx.fsf@alter.siamese.dyndns.org>
On 11/28/2012 08:29 AM, Junio C Hamano wrote:
Show 35 quoted lines
> Jeff King <peff@peff.net> writes:
> 
>> There is room for new headers, and older versions of git will ignore
>> them. You could add a new "committer-timestamp" field that elaborates on
>> the timestamp included on the committer line. Newer versions of git
>> would respect it, and older versions would fall back to using the
>> committer timestamp.
>>
>> But I really wonder if anybody actually cares about adding sub-second
>> timestamp support, or if it is merely "because SVN has it".
> 
> Roundtrip conversions may benefit from sub-second timestamps, but
> personally I think negative timestamps are more interesting and of
> practical use.  Prehistoric projects need them even if they intend
> to switch to Git, never to go back to their original tarballs and
> collection of RCS ,v files.
> 
> And if we were to add "committer-timestamp" and friends to support
> negative timestamps anyway (because older tools will not support
> them), supporting sub-second part might be something we want to
> think about at the same time.
> 
> We would however need to be extra careful.  How should we express
> half-second past Tue Nov 27 23:24:16 2012 (US/Pacific)?  Would we
> spell it 1354087456.5?  1354087456.500?  Would we require decimal
> representation of floating point numbers to be normalized in some
> way (e.g. minimum number of digits without losing precision)?  The
> same timestamp needs to be expressed the same way, or we will end up
> with different commit objects, which defeats the whole purpose of
> introducing subsecond timestamps to support round-trip conversions.
> 
> If we were to use a separate "subsecond" fields, another thing we
> need to be careful about is the order of these extra fields, exactly
> for the same reason.
> 

If we're going to support pre-epoch timestamps, we'll have to do that for 2.0 anyway, since we'll otherwise have two conflicting dates in the commit object.

Adding support for parsing them now and start writing them in 2.0 would make sense.

In that case, we'd have to print timestamps as printf("%lu.%06lu", tv.tv_sec, tv.tv_usec);

I'm unsure how useful it is to support pre-epoch dates though. It's hard to find software where anyone really cares about the code from 43 years ago with anything but historical interest, and for those who take the museum road, I'm betting it's more interesting to see how people worked back then than it is to see what they wrote.

Aside from that, it would be trivial to support museum style history viewing with a special flag that treats the timestamps as minutes since 1900-01-01 or some such, giving us plenty of time before even the first punch-card was invented. It wouldn't be much harder to let the user specify the timeunit and the start-point either, and then we could store the history of carbon-based lifeforms on earth in git.

-- 
Andreas Ericsson                   andreas.ericsson@op5.se
OP5 AB                             www.op5.se
Tel: +46 8-230225                  Fax: +46 8-230231

Considering the successes of the wars on alcohol, poverty, drugs and
terror, I think we should give some serious thought to declaring war
on peace.
Previous: Junio C HamanoNext: Phil Hord
Message 29 of 41 in “Millisecond precision in timestamps?”
  1. Eric S. RaymondNov 27, 2012
  2. Shawn PearceNov 27, 2012
  3. Junio C HamanoNov 27, 2012
  4. Eric S. RaymondNov 27, 2012
  5. Shawn PearceNov 27, 2012
  6. Eric S. RaymondNov 28, 2012
  7. David LangNov 28, 2012
  8. Felipe ContrerasNov 28, 2012
  9. Shawn PearceNov 28, 2012
  10. Jeff KingNov 28, 2012
  11. Jason PyeronNov 28, 2012
  12. Felipe ContrerasNov 28, 2012
  13. Eric S. RaymondNov 28, 2012
  14. Jeff KingNov 28, 2012
  15. Felipe ContrerasNov 28, 2012
  16. Eric S. RaymondNov 28, 2012
  17. Jeff KingNov 28, 2012
  18. Eric S. RaymondNov 28, 2012
  19. Junio C HamanoNov 28, 2012
  20. Eric S. RaymondNov 28, 2012
  21. David AguilarNov 28, 2012
  22. Andreas EricssonNov 28, 2012
  23. Robin RosenbergDec 5, 2012
  24. James CloosDec 10, 2012
  25. Thomas BergNov 28, 2012
  26. Felipe ContrerasNov 28, 2012
  27. Thomas BergNov 28, 2012
  28. Junio C HamanoNov 28, 2012
  29. Andreas EricssonNov 28, 2012
  30. Phil HordNov 29, 2012
  31. Jeff KingNov 29, 2012
  32. Eric S. RaymondNov 28, 2012
  33. Felipe ContrerasNov 28, 2012
  34. Junio C HamanoNov 28, 2012
  35. Pyeron, Jason J CTR (US)Nov 27, 2012
  36. Eric S. RaymondNov 29, 2012
  37. Junio C HamanoNov 29, 2012
  38. Felipe ContrerasNov 29, 2012
  39. Eric S. RaymondNov 29, 2012
  40. Junio C HamanoNov 29, 2012
  41. Eric S. RaymondNov 29, 2012

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.