Taylor Blau <me@xxxxxxxxxxxx> writes: > In subsequent commits, we'll teach `receive-pack` and `upload-pack` to > use the new skip-list feature in the packed-refs iterator by ignoring "skip" -> "jump". > references which are mentioned via its respective hideRefs lists. > > However, the packed-ref skip lists cannot handle un-hiding rules (that > begin with '!'), or namespace comparisons (that begin with '^'). Detect > and avoid these cases by falling back to the normal enumeration without > a skip list when such patterns exist. > + * We also can't feed any excludes from hidden refs > + * config sections, since later rules may override > + * previous ones. For example, with rules "refs/foo" and > + * "!refs/foo/bar", we should show "refs/foo/bar" (and > + * everything underneath it), but the earlier exclusion > + * would cause us to skip all of "refs/foo". Good observation. The presence of !refs/foo/bar in hide list forbids us from adding refs/foo to the jump list, and it is the simplest to disable the whole jump list business when we have such a feature in use. Makes sense. Thanks.