Karthik Nayak <karthik.188@xxxxxxxxx> writes: > +static void add_pseudoref_like_entries(struct ref_store *ref_store, > + struct ref_dir *dir, > + const char *dirname) > +{ > + struct files_ref_store *refs = > + files_downcast(ref_store, REF_STORE_READ, "fill_ref_dir"); > + struct strbuf path = STRBUF_INIT, refname = STRBUF_INIT; > + struct dirent *de; > + size_t dirnamelen; > + DIR *d; > + > + files_ref_path(refs, &path, dirname); > + > + d = opendir(path.buf); > + if (!d) { > + strbuf_release(&path); > + return; > + } > + > + strbuf_addstr(&refname, dirname); > + dirnamelen = refname.len; > + > + while ((de = readdir(d)) != NULL) { > + unsigned char dtype; > + > + if (de->d_name[0] == '.') > + continue; > + if (ends_with(de->d_name, ".lock")) > + continue; > + strbuf_addstr(&refname, de->d_name); > + > + dtype = get_dtype(de, &path, 1); > + if (dtype == DT_REG && is_pseudoref_syntax(de->d_name)) > + loose_fill_ref_dir_regular_file(refs, refname.buf, dir); This looks more like add_pseudoref_entries() given that the general direction is to have an "allow" list of pseudo refs (at this point after the previous step of the series, is_pseudoref_syntax() is the is_pseudoref() function, and uses ends_with("_HEAD") as a mere optimization to avoid listing all the possible pseudo refs that exists or will be added in the future whose name ends with "_HEAD"). Other than the naming, I think these two steps make sense. Thanks.