René Scharfe <l.s.r@xxxxxx> writes: >>> Or strsets -- we only need two. >> >> True. >> >> When we check a path, we make a single look-up of two bit in a >> single hashtable but now we need two look-ups, but addition, removal >> and renaming of a symlink would be rare enough to matter either way. > > Hmm, symlinks changes are rare, but this only affects the register phase > (which should be noticeably slow for the string_list based code with its > O(n*log(n)) lookup per registered symlink if there were a lot of them). > But the final lookups are done for each path _component_, of any file > type. > > I suspect that two lookups in (sparsely populated) hash tables are still > fast enough. (At least I couldn't measure any difference with git apply > and a patch between v2.33.0 and v2.34.0.) Yup. I do not think it matters, and the resulting code is certainly a lot simpler and easier to read ;-) Thanks.