Git development
 help / color / mirror / Atom feed
From: Patrick Steinhardt <ps@pks.im>
To: "D. Ben Knoble" <ben.knoble@gmail.com>
Cc: git@vger.kernel.org, Todd Zullinger <tmz@pobox.com>,
	Junio C Hamano <gitster@pobox.com>, Tian Yuchen <cat@malon.dev>,
	Olamide Caleb Bello <belkid98@gmail.com>
Subject: Re: [PATCH v3 3/3] core: convert build-time USE_NSEC into runtime core.useNanosec
Date: Thu, 20 Aug 2026 07:24:47 +0200	[thread overview]
Message-ID: <aoaPn0gaHIa9Utwu@pks.im> (raw)
In-Reply-To: <CALnO6CDgfT+VXaBqSmStB8vNOwBpr5XMjvmxhMdc7v-ma-YwXg@mail.gmail.com>

On Wed, Aug 19, 2026 at 09:09:59AM -0400, D. Ben Knoble wrote:
> On Wed, Aug 19, 2026 at 4:24 AM Patrick Steinhardt <ps@pks.im> wrote:
> > On Tue, Aug 18, 2026 at 10:59:47AM -0400, D. Ben Knoble wrote:
> > > diff --git a/read-cache.c b/read-cache.c
> > > index 6c449f393d..31888f77ee 100644
> > > --- a/read-cache.c
> > > +++ b/read-cache.c
> > > @@ -353,12 +353,18 @@ static int ce_match_stat_basic(const struct cache_entry *ce, struct stat *st)
> > >  static int is_racy_stat(const struct index_state *istate,
> > >                       const struct stat_data *sd)
> > >  {
> > > +#ifndef NO_NSEC
> > > +     int use_nsec = repo_config_values(istate->repo)->use_nanosec;
> > > +#endif
> > > +
> > >       return (istate->timestamp.sec &&
> > > -#ifdef USE_NSEC
> > > -              /* nanosecond timestamped files can also be racy! */
> > > -             (istate->timestamp.sec < sd->sd_mtime.sec ||
> > > -              (istate->timestamp.sec == sd->sd_mtime.sec &&
> > > -               istate->timestamp.nsec <= sd->sd_mtime.nsec))
> > > +#ifndef NO_NSEC
> > > +             /* nanosecond timestamped files can also be racy! */
> > > +             use_nsec
> > > +             ? (istate->timestamp.sec < sd->sd_mtime.sec ||
> > > +                (istate->timestamp.sec == sd->sd_mtime.sec &&
> > > +                 istate->timestamp.nsec <= sd->sd_mtime.nsec))
> > > +             : istate->timestamp.sec <= sd->sd_mtime.sec
> > >  #else
> > >               istate->timestamp.sec <= sd->sd_mtime.sec
> > >  #endif
> >
> > I think this would be a bit more readable if we had a single NO_NSEC
> > block.
> 
> I'm not sure what "single block" means here, but I think the plan (see
> reply to Junio) is to make this more readable by not needing
> pre-processor directives at all.

That'd be quite welcome indeed. The less ifdeffery the bettery. :)

> > There's one more site in "builtin/update-index.c" where we mention
> > USE_NSEC that wasn't updated as part of this patch.
> 
> Oh, did I miss one? The only spot I saw in builtin/update-index.c that
> mentions USE_NSEC is a comment that I'm sure patch 3 updated. Maybe
> you were thinking of that, or maybe you know of something I left out?
> (That is, locally on this branch, "git grep USE_NSEC" returns one hit
> in Documentation/RelNotes/2.5.0.adoc.)

Oh, I guess I just missed it because I already trimmed context of this
mail. Never mind then.

Patrick

  reply	other threads:[~2026-08-20  5:24 UTC|newest]

Thread overview: 33+ 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 [this message]
2026-08-19 16:15       ` Junio C Hamano
2026-08-19 22:56         ` D. Ben Knoble
2026-08-20  5:26         ` Patrick Steinhardt

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=aoaPn0gaHIa9Utwu@pks.im \
    --to=ps@pks.im \
    --cc=belkid98@gmail.com \
    --cc=ben.knoble@gmail.com \
    --cc=cat@malon.dev \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=tmz@pobox.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox