On Fri, Jun 10, 2022 at 10:08 AM Junio C Hamano <gitster@xxxxxxxxx> wrote: > > Pavel Rappo <pavel.rappo@xxxxxxxxx> writes: > > > Here's a console session: > > > > % git config --get-all remote.jdk19.fetch > > +refs/heads/*:refs/remotes/jdk19/* > > ^refs/heads/pr/* > > Thanks > > "Negative refspecs" is relatively new feature introduced in c0192df6 > (refspec: add support for negative refspecs, 2020-09-30), so it > would not be so surprising if it still had some surprising behaviour > ;-) > > Jacob, care to take a look? > Ok, so this looks like its caused by the fact that get_fetch_map in builtin/remote.c ignores all negative refspecs. I think what we really want to do is check if a given ref matches any negative ref and then maybe move it from the new listing into a separate skipped listing. Figuring out the best way to do this is a little bit of a challenge. It looks like maybe we need to use one of the functions in remote.c just after the get_fetch_map call in get_ref_states. But exactly what has so far eluded me after a bit of digging. I'm still looking at this, but help would be appreciated if anyone else has a suggestion. Thanks, Jake > > % git remote show jdk19 > > > > * remote jdk19 > > Fetch URL: git@xxxxxxxxxx:openjdk/jdk19.git > > Push URL: git@xxxxxxxxxx:openjdk/jdk19.git > > HEAD branch: master > > Remote branches: > > master tracked > > pr/1 new (next fetch will store in remotes/jdk19) > > pr/2 new (next fetch will store in remotes/jdk19) > > pr/3 new (next fetch will store in remotes/jdk19) > > Local ref configured for 'git push': > > master pushes to master (fast-forwardable) > > > > I would naively expect the pr/1, pr/2, and pr/3 branches to be either: > > > > - not displayed, or better > > - displayed with a hint that they won't be fetched (since they match a > > _negative_ refspec, which is the second line in the `git config` > > output above) > > > > Thanks, > > -Pavel