On Mon, Jun 02, 2025 at 10:53:50AM +0100, Phillip Wood wrote: > Hi Shejialuo > > On 31/05/2025 04:39, shejialuo wrote: > > diff --git a/refs/files-backend.c b/refs/files-backend.c > > index 4d1f65a57a..bf6f89b1d1 100644 > > --- a/refs/files-backend.c > > +++ b/refs/files-backend.c > > @@ -3762,6 +3762,9 @@ static int files_fsck_refs_dir(struct ref_store *ref_store, > > iter = dir_iterator_begin(sb.buf, 0); > > if (!iter) { > > + if (errno == ENOENT && !is_main_worktree(wt)) > > + goto out; > > + > > ret = error_errno(_("cannot open directory %s"), sb.buf); > > goto out; > > } > > I think it would be clearer to write this as > > if (is_main_worktree(wt) || errno != ENOENT) > ret = error_errno(_("cannot open directory %s"), sb.buf); > goto out; > > so that the condition that triggers the error message is explicit rather > than having to mentally invert the condition to figure out when we return an > error The downside though is that this mandates that `is_main_worktree()` must never set `errno` itself. So while it may be clearer, the original version feels safer to me. Patrick