Re: Should `git remote show` display excluded branches as to-be-fetched?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Jun 13, 2022 at 4:20 PM Jacob Keller <jacob.keller@xxxxxxxxx> wrote:
>
> 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

I found a working solution, but I don't really like the
implementation, so perhaps someone with more knowledge of the struct
refspec, struct refspec_item, etc would help me figure out if I am
doing it in a good way. I just posted it.

Thanks,
Jake



[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux