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

[PATCH] CodingGuidelines: st_mtimespec vs st_mtim vs st_mtime

From
Junio C Hamano <gitster@pobox.com>
Date
Apr 10, 2026, 18:10 UTC
Message-ID
<xmqqzf3aofdj.fsf_-_@gitster.g>
In-Reply-To
<xmqqo6jqpzxv.fsf@gitster.g>

Most unfortunately macOS does not support st_[amc]tim for timestamps down to nanosecond resolution as POSIX systems.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
---
 Documentation/CodingGuidelines | 6 ++++++
 1 file changed, 6 insertions(+)
diff --git c/Documentation/CodingGuidelines w/Documentation/CodingGuidelines
index 4992e52093..4e54139fd7 100644
--- c/Documentation/CodingGuidelines
+++ w/Documentation/CodingGuidelines
@@ -693,6 +693,12 @@ For C programs:
          char *dogs[] = ...;
          walk_all_dogs(dogs);
 
+ - For file timestamps, do not use "st_mtim" (and other timestamp
+   members in "struct stat") unconditionally; not everybody is POSIX
+   (grep for USE_ST_TIMESPEC).  If you only need timestamp in whole
+   second resolution, "st_mtime" should work fine everywhere.
+
+
 For Perl programs:
 
  - Most of the C guidelines above apply.
Previous: Lorenzo PegorariNext: Elijah Newren
Message 45 of 79 in “preserve promisor files content after repack”
  1. 0/3 preserve promisor files content after repackLorenzoPegorari, Mar 21, 2026
  2. 1/3 pack-write: add explanation to promisor file contentLorenzoPegorari, Mar 21, 2026
  3. 2/3 pack-write: add helper to fill promisor file after repackLorenzoPegorari, Mar 21, 2026
  4. Eric SunshineMar 22, 2026
  5. Lorenzo PegorariMar 22, 2026
  6. 3/3 repack-promisor: preserve content of promisor files after repackLorenzoPegorari, Mar 21, 2026
  7. 0/4 preserve promisor files content after repackLorenzoPegorari, Mar 22, 2026
  8. 1/4 pack-write: add explanation to promisor file contentLorenzoPegorari, Mar 22, 2026
  9. Junio C HamanoMar 23, 2026
  10. Lorenzo PegorariMar 25, 2026
  11. 2/4 pack-write: add helper to fill promisor file after repackLorenzoPegorari, Mar 22, 2026
  12. Eric SunshineMar 23, 2026
  13. Lorenzo PegorariMar 26, 2026
  14. Junio C HamanoMar 23, 2026
  15. Lorenzo PegorariMar 26, 2026
  16. 3/4 repack-promisor: preserve content of promisor files after repackLorenzoPegorari, Mar 22, 2026
  17. Junio C HamanoMar 23, 2026
  18. Lorenzo PegorariMar 26, 2026
  19. 4/4 t7700: test for promisor file content after repackLorenzoPegorari, Mar 22, 2026
  20. 0/5 preserve promisor files content after repackLorenzoPegorari, Apr 6, 2026
  21. 1/5 pack-write: add explanation to promisor file contentLorenzoPegorari, Apr 6, 2026
  22. 2/5 pack-write: add helper to fill promisor file after repackLorenzoPegorari, Apr 6, 2026
  23. Tian YuchenApr 6, 2026
  24. Lorenzo PegorariApr 6, 2026
  25. Junio C HamanoApr 6, 2026
  26. Lorenzo PegorariApr 7, 2026
  27. Junio C HamanoApr 7, 2026
  28. Lorenzo PegorariApr 7, 2026
  29. Junio C HamanoApr 7, 2026
  30. Junio C HamanoApr 6, 2026
  31. Lorenzo PegorariApr 7, 2026
  32. 3/5 repack-promisor: preserve content of promisor files after repackLorenzoPegorari, Apr 6, 2026
  33. 4/5 t7700: test for promisor file content after repackLorenzoPegorari, Apr 6, 2026
  34. Junio C HamanoApr 6, 2026
  35. Lorenzo PegorariApr 7, 2026
  36. Junio C HamanoApr 7, 2026
  37. Lorenzo PegorariApr 7, 2026
  38. Lorenzo PegorariApr 8, 2026
  39. 5/5 t7703: test for promisor file content after geometric repackLorenzoPegorari, Apr 6, 2026
  40. 0/5 preserve promisor files content after repackLorenzoPegorari, Apr 10, 2026
  41. 1/5 pack-write: add explanation to promisor file contentLorenzoPegorari, Apr 10, 2026
  42. 2/5 pack-write: add helper to fill promisor file after repackLorenzoPegorari, Apr 10, 2026
  43. Junio C HamanoApr 10, 2026
  44. Lorenzo PegorariApr 10, 2026
  45. CodingGuidelines: st_mtimespec vs st_mtim vs st_mtimeJunio C Hamano, Apr 10, 2026
  46. Elijah NewrenApr 16, 2026
  47. Junio C HamanoApr 17, 2026
  48. 3/5 repack-promisor: preserve content of promisor files after repackLorenzoPegorari, Apr 10, 2026
  49. 4/5 t7700: test for promisor file content after repackLorenzoPegorari, Apr 10, 2026
  50. 5/5 t7703: test for promisor file content after geometric repackLorenzoPegorari, Apr 10, 2026
  51. Junio C HamanoApr 10, 2026
  52. Lorenzo PegorariApr 10, 2026
  53. 0/6 preserve promisor files content after repackLorenzoPegorari, Apr 10, 2026
  54. 1/6 pack-write: add explanation to promisor file contentLorenzoPegorari, Apr 10, 2026
  55. 2/6 repack-promisor add helper to fill promisor file after repackLorenzoPegorari, Apr 10, 2026
  56. Junio C HamanoApr 10, 2026
  57. Lorenzo PegorariApr 11, 2026
  58. Junio C HamanoApr 12, 2026
  59. Lorenzo PegorariApr 17, 2026
  60. 3/6 repack-promisor: preserve content of promisor files after repackLorenzoPegorari, Apr 10, 2026
  61. Tian YuchenApr 11, 2026
  62. Lorenzo PegorariApr 17, 2026
  63. 4/6 t7700: test for promisor file content after repackLorenzoPegorari, Apr 10, 2026
  64. 5/6 t7703: test for promisor file content after geometric repackLorenzoPegorari, Apr 10, 2026
  65. Tian YuchenApr 11, 2026
  66. Lorenzo PegorariApr 17, 2026
  67. 6/6 repack-promisor: add missing headersLorenzoPegorari, Apr 10, 2026
  68. 0/6 preserve promisor files content after repackLorenzoPegorari, Apr 18, 2026
  69. 1/6 pack-write: add explanation to promisor file contentLorenzoPegorari, Apr 18, 2026
  70. 2/6 repack-promisor add helper to fill promisor file after repackLorenzoPegorari, Apr 18, 2026
  71. 3/6 repack-promisor: preserve content of promisor files after repackLorenzoPegorari, Apr 18, 2026
  72. 4/6 t7700: test for promisor file content after repackLorenzoPegorari, Apr 18, 2026
  73. 5/6 t7703: test for promisor file content after geometric repackLorenzoPegorari, Apr 18, 2026
  74. 6/6 repack-promisor: add missing headersLorenzoPegorari, Apr 18, 2026
  75. Junio C HamanoMay 12, 2026
  76. Lorenzo PegorariMay 19, 2026
  77. Junio C HamanoApr 10, 2026
  78. Junio C HamanoApr 11, 2026
  79. Lorenzo PegorariApr 11, 2026

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.