Re: Should `git remote show` display excluded branches as to-be-fetched?
- From
Jacob Keller <jacob.keller@gmail.com>
- Date
- Jun 13, 2022, 23:20 UTC
- Message-ID
- <CA+P7+xrfkApv_r_YQqOt-LiaC=Ctb2px0UuaSwqU_ua_qmH4OA@mail.gmail.com>
- In-Reply-To
- <xmqq1qvwfntm.fsf@gitster.g>
On Fri, Jun 10, 2022 at 10:08 AM Junio C Hamano <gitster@pobox.com> wrote:
Show 18 quoted lines
> > Pavel Rappo <pavel.rappo@gmail.com> 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
Show 23 quoted lines
> > % git remote show jdk19 > > > > * remote jdk19 > > Fetch URL: git@github.com:openjdk/jdk19.git > > Push URL: git@github.com: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