* Should `git remote show` display excluded branches as to-be-fetched?
@ 2022-06-10 12:59 Pavel Rappo
2022-06-10 17:08 ` Junio C Hamano
0 siblings, 1 reply; 6+ messages in thread
From: Pavel Rappo @ 2022-06-10 12:59 UTC (permalink / raw)
To: git
Here's a console session:
% git config --get-all remote.jdk19.fetch
+refs/heads/*:refs/remotes/jdk19/*
^refs/heads/pr/*
% 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
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Should `git remote show` display excluded branches as to-be-fetched?
2022-06-10 12:59 Should `git remote show` display excluded branches as to-be-fetched? Pavel Rappo
@ 2022-06-10 17:08 ` Junio C Hamano
2022-06-12 6:36 ` Jacob Keller
2022-06-13 23:20 ` Jacob Keller
0 siblings, 2 replies; 6+ messages in thread
From: Junio C Hamano @ 2022-06-10 17:08 UTC (permalink / raw)
To: Pavel Rappo, Jacob Keller; +Cc: git
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?
> % 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
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Should `git remote show` display excluded branches as to-be-fetched?
2022-06-10 17:08 ` Junio C Hamano
@ 2022-06-12 6:36 ` Jacob Keller
2022-06-13 23:20 ` Jacob Keller
1 sibling, 0 replies; 6+ messages in thread
From: Jacob Keller @ 2022-06-12 6:36 UTC (permalink / raw)
To: Junio C Hamano; +Cc: Pavel Rappo, Git mailing list
On Fri, Jun 10, 2022 at 10:08 AM Junio C Hamano <gitster@pobox.com> wrote:
>
> 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?
>
> > % 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
This is almost certainly an oversight in that the particular code path
does not process negative refspecs. I can hopefully take a closer look
at this next week.
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Should `git remote show` display excluded branches as to-be-fetched?
2022-06-10 17:08 ` Junio C Hamano
2022-06-12 6:36 ` Jacob Keller
@ 2022-06-13 23:20 ` Jacob Keller
2022-06-14 0:34 ` Jacob Keller
1 sibling, 1 reply; 6+ messages in thread
From: Jacob Keller @ 2022-06-13 23:20 UTC (permalink / raw)
To: Junio C Hamano; +Cc: Pavel Rappo, Git mailing list
On Fri, Jun 10, 2022 at 10:08 AM Junio C Hamano <gitster@pobox.com> wrote:
>
> 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
> > % 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
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Should `git remote show` display excluded branches as to-be-fetched?
2022-06-13 23:20 ` Jacob Keller
@ 2022-06-14 0:34 ` Jacob Keller
2022-06-25 16:06 ` Pavel Rappo
0 siblings, 1 reply; 6+ messages in thread
From: Jacob Keller @ 2022-06-14 0:34 UTC (permalink / raw)
To: Junio C Hamano; +Cc: Pavel Rappo, Git mailing list
On Mon, Jun 13, 2022 at 4:20 PM Jacob Keller <jacob.keller@gmail.com> wrote:
>
> On Fri, Jun 10, 2022 at 10:08 AM Junio C Hamano <gitster@pobox.com> wrote:
> >
> > 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
>
> > > % 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
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
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: Should `git remote show` display excluded branches as to-be-fetched?
2022-06-14 0:34 ` Jacob Keller
@ 2022-06-25 16:06 ` Pavel Rappo
0 siblings, 0 replies; 6+ messages in thread
From: Pavel Rappo @ 2022-06-25 16:06 UTC (permalink / raw)
To: Jacob Keller; +Cc: Junio C Hamano, Git mailing list
On Tue, Jun 14, 2022 at 1:34 AM Jacob Keller <jacob.keller@gmail.com> wrote:
> 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. Does Git project have an issue tracker we could enter
this bug into?
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2022-06-25 16:06 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-06-10 12:59 Should `git remote show` display excluded branches as to-be-fetched? Pavel Rappo
2022-06-10 17:08 ` Junio C Hamano
2022-06-12 6:36 ` Jacob Keller
2022-06-13 23:20 ` Jacob Keller
2022-06-14 0:34 ` Jacob Keller
2022-06-25 16:06 ` Pavel Rappo
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).