From: "D. Ben Knoble" <ben.knoble@gmail.com>
To: git@vger.kernel.org
Cc: "D. Ben Knoble" <ben.knoble@gmail.com>
Subject: [PATCH v5 0/3] Convert USE_NSEC to runtime config
Date: Sat, 29 Aug 2026 09:38:17 -0400 [thread overview]
Message-ID: <cover.1788010335.git.ben.knoble@gmail.com> (raw)
In-Reply-To: <cover.1787231825.git.ben.knoble@gmail.com>
Topic name: dk/use-nsec-runtime (applied)
Topic summary: Expose USE_NSEC as a runtime configuration, since
build-time is too early for distributing Git [1]. As a result, common
index-related options, like git-diff, are less likely to hit "racy git"
problems on supported filesystems.
[1]: https://git.github.io/rev_news/2026/07/31/edition-137/
Built on master (2c78326f81 (The 11th batch, 2026-08-05)).
Changes in v5:
- improve message flow in patch 2
Junio: my apologies. I missed that the "What's cooking" changed from "Needs
review" (#10) to "expecting a small (hopefully final) reroll" (#11, #12),
since I was expecting to see Patrick's review. This just tweaks the commit
message as you suggested.
Changes in v4:
- fix message typo
- change #ifdef strategy: only ignore the config variable.
Otherwise, use the use_nanosec member unconditionally. Also clarify
that config might be ignore depending on build options in the docs.
- mention potential platform unsafety directly in config doc in
addition to the link to Racy Git
Changes in v3:
- #ifdef out use_nanosec when NO_NSEC is requested
As I have heard no comments about the "Todo" lines below, which perhaps
could more clearly be marked "RFC"/"RFH", I've added this line to call
them out ;) and renamed them "Comments welcome"
Changes in v2:
- move Best-viewed-with trailer into message body as descriptive
text.
- read core.useNanosec through struct repo instead of parsing
config strings. The test suite passes locally this way, though that
skipped 151 tests.
- CI run: https://github.com/benknoble/git/actions/runs/31701945211
Original cover letter:
Hi all, this series follows up on the previous racy Git/USE_NSEC
conversations.
- The first patch is a mostly-unrelated documentation fix for Meson, but
it came out of something I spotted while reviewing the outputs of the
final (main) patch.
- The second patch is a preliminary no-op reorganization of
repo_config_values_init.
- The third patch is the meat, converting USE_NSEC into core.useNanosec.
There is a small textual and semantic conflict with
'ty/repo-config-cleanups' in 'seen', since that branch removes the
comments in 'struct repo_config_values' which this series adds to. (The
semantic conflict is that, if we drop those comments, we should probably
not add them to repo_config_values_init like I do in patch 2.)
Comments welcome: I haven't touched any tests; I saw a bunch of hits for
"git grep racy t" but wasn't sure how to fit this particular change in,
especially since it won't be equally valid on all systems? Advice
welcome.
Comments welcome: I wonder if "useNanosec" paints us into too much of a
corner; that is (slightly more abstractly), we are using *extended
precision* in the index. Maybe the name and documentation should reflect
that, so we aren't too committed to "nanoseconds"?
- Some platforms could offer extended precision that is not as
precise as nanoseconds
- Some could offer precision _beyond_ nanoseconds
idk.
v1: <cover.1786103607.git.ben.knoble@gmail.com>
v2: <cover.1786710807.git.ben.knoble@gmail.com>
v3: <cover.1787065125.git.ben.knoble@gmail.com>
v4: <cover.1787231825.git.ben.knoble@gmail.com>
[1/3] meson: expose knob for xmlto relative links in manuals
[2/3] environment: align repo_config_values_init with struct declaration
[3/3] core: convert build-time USE_NSEC into runtime core.useNanosec
Documentation/config/core.adoc | 7 +++++++
Documentation/meson.build | 7 ++++++-
Documentation/technical/racy-git.adoc | 11 ++++++-----
Makefile | 12 +-----------
builtin/update-index.c | 2 +-
compat/posix.h | 1 -
configure.ac | 6 ------
environment.c | 27 ++++++++++++++++++++-------
environment.h | 1 +
meson_options.txt | 2 ++
read-cache.c | 15 ++++++---------
statinfo.c | 14 +++++++-------
12 files changed, 57 insertions(+), 48 deletions(-)
Diff-intervalle contre v4 :
1: d612de6c2d = 1: d612de6c2d meson: expose knob for xmlto relative links in manuals
2: 5693baa992 ! 2: 12974e07d0 environment: align repo_config_values_init with struct declaration
@@ Commit message
environment: align repo_config_values_init with struct declaration
The order of assignments in repo_config_values_init is chaotic and hard
- to follow, especially when comparing with the struct definition to
- ensure all members are initialized. As new members will be added in the
- future, make it easier to validate changes by aligning the two.
+ to follow, especially with the definition of 'struct repo_config_values'
+ to ensure all members are initialized. As new members will be added in
+ the future, make it easier to validate changes by aligning the two.
Refactor assignment order with no behavioral changes.
3: 0aa0e9fc17 = 3: 01cd487cd2 core: convert build-time USE_NSEC into runtime core.useNanosec
base-commit: 2c78326f810173a4f3aefd8021f1e07575412481
--
2.55.0.860.g4b6b3295ed.dirty
next prev parent reply other threads:[~2026-08-29 13:38 UTC|newest]
Thread overview: 68+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-07 11:56 [PATCH 0/3] Convert USE_NSEC to runtime config D. Ben Knoble
2026-08-07 11:56 ` [PATCH 1/3] meson: expose knob for xmlto relative links in manuals D. Ben Knoble
2026-08-10 12:50 ` Patrick Steinhardt
2026-08-07 11:56 ` [PATCH 2/3] environment: align repo_config_values_init with struct declaration D. Ben Knoble
2026-08-07 11:56 ` [PATCH 3/3] core: convert build-time USE_NSEC into runtime core.useNanosec D. Ben Knoble
2026-08-07 21:17 ` Junio C Hamano
2026-08-08 16:31 ` SZEDER Gábor
2026-08-10 12:27 ` D. Ben Knoble
2026-08-10 12:27 ` D. Ben Knoble
2026-08-10 12:44 ` Patrick Steinhardt
2026-08-11 16:26 ` Ben Knoble
2026-08-13 21:40 ` D. Ben Knoble
2026-08-14 11:06 ` Patrick Steinhardt
2026-08-14 11:29 ` Ben Knoble
2026-08-10 12:50 ` Patrick Steinhardt
2026-08-14 12:33 ` [PATCH v2 0/3] Convert USE_NSEC to runtime config D. Ben Knoble
2026-08-14 12:34 ` [PATCH v2 1/3] meson: expose knob for xmlto relative links in manuals D. Ben Knoble
2026-08-14 12:34 ` [PATCH v2 2/3] environment: align repo_config_values_init with struct declaration D. Ben Knoble
2026-08-14 12:34 ` [PATCH v2 3/3] core: convert build-time USE_NSEC into runtime core.useNanosec D. Ben Knoble
2026-08-14 16:38 ` Junio C Hamano
2026-08-14 19:03 ` D. Ben Knoble
2026-08-18 14:59 ` [PATCH v3 0/3] Convert USE_NSEC to runtime config D. Ben Knoble
2026-08-18 14:59 ` [PATCH v3 1/3] meson: expose knob for xmlto relative links in manuals D. Ben Knoble
2026-08-18 14:59 ` [PATCH v3 2/3] environment: align repo_config_values_init with struct declaration D. Ben Knoble
2026-08-18 14:59 ` [PATCH v3 3/3] core: convert build-time USE_NSEC into runtime core.useNanosec D. Ben Knoble
2026-08-18 18:51 ` Junio C Hamano
2026-08-19 12:53 ` D. Ben Knoble
2026-08-19 8:24 ` Patrick Steinhardt
2026-08-19 13:09 ` D. Ben Knoble
2026-08-20 5:24 ` Patrick Steinhardt
2026-08-20 11:50 ` D. Ben Knoble
2026-08-19 16:15 ` Junio C Hamano
2026-08-19 22:56 ` D. Ben Knoble
2026-08-20 5:26 ` Patrick Steinhardt
2026-08-20 13:18 ` [PATCH v4 0/3] Convert USE_NSEC to runtime config D. Ben Knoble
2026-08-20 13:18 ` [PATCH v4 1/3] meson: expose knob for xmlto relative links in manuals D. Ben Knoble
2026-08-20 13:18 ` [PATCH v4 2/3] environment: align repo_config_values_init with struct declaration D. Ben Knoble
2026-08-20 17:45 ` Junio C Hamano
2026-08-21 12:10 ` D. Ben Knoble
2026-08-20 13:18 ` [PATCH v4 3/3] core: convert build-time USE_NSEC into runtime core.useNanosec D. Ben Knoble
2026-08-29 13:38 ` D. Ben Knoble [this message]
2026-08-29 13:38 ` [PATCH v5 1/3] meson: expose knob for xmlto relative links in manuals D. Ben Knoble
2026-08-29 13:38 ` [PATCH v5 2/3] environment: align repo_config_values_init with struct declaration D. Ben Knoble
2026-08-29 13:38 ` [PATCH v5 3/3] core: convert build-time USE_NSEC into runtime core.useNanosec D. Ben Knoble
2026-08-30 21:15 ` Junio C Hamano
2026-08-31 0:27 ` D. Ben Knoble
2026-08-31 9:27 ` Patrick Steinhardt
2026-08-31 13:00 ` D. Ben Knoble
[not found] ` <CALnO6CCNwXC1_PUCTWEU-HXBk+W+sBGqn7Sr8D=ZHW3Mxcu20g@mail.gmail.com>
2026-08-31 14:47 ` Patrick Steinhardt
2026-09-01 0:35 ` Ben Knoble
2026-08-31 9:27 ` Patrick Steinhardt
2026-08-31 15:46 ` Ben Knoble
2026-08-31 20:01 ` [PATCH v6 0/3] Convert USE_NSEC to runtime config D. Ben Knoble
2026-08-31 20:01 ` [PATCH v6 1/3] meson: expose knob for xmlto relative links in manuals D. Ben Knoble
2026-08-31 20:01 ` [PATCH v6 2/3] environment: align repo_config_values_init with struct declaration D. Ben Knoble
2026-08-31 20:01 ` [PATCH v6 3/3] core: convert build-time USE_NSEC into runtime core.useNanosec D. Ben Knoble
2026-09-01 4:35 ` Junio C Hamano
2026-09-01 12:38 ` D. Ben Knoble
2026-09-01 17:32 ` Junio C Hamano
2026-09-01 4:54 ` Jeff King
2026-09-01 12:36 ` D. Ben Knoble
2026-09-02 7:26 ` Jeff King
2026-09-02 11:45 ` Ben Knoble
2026-09-02 21:05 ` Junio C Hamano
2026-09-03 1:00 ` Ben Knoble
2026-09-03 15:56 ` Junio C Hamano
2026-09-03 18:16 ` Ben Knoble
2026-08-31 20:06 ` [PATCH v6 0/3] Convert USE_NSEC to runtime config D. Ben Knoble
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=cover.1788010335.git.ben.knoble@gmail.com \
--to=ben.knoble@gmail.com \
--cc=git@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.