Re: [BUG] cannot git clone with includeif onbranch
- From
Patrick Steinhardt <ps@pks.im>
- Date
- Mar 11, 2024, 23:30 UTC
- Message-ID
- <Ze-UBgQtoWK8Rk4F@tanuki>
- In-Reply-To
- <Zetw0I0NHgABR_PX@tapette.crustytoothpaste.net>
On Fri, Mar 08, 2024 at 08:10:56PM +0000, brian m. carlson wrote:
Show 48 quoted lines
> On 2024-03-08 at 19:25:52, Angelo Dureghello wrote:
> > Hi,
> >
> > below the bug report, not totally sure this is a bug btw.
> >
> > ---
> >
> > Thank you for filling out a Git bug report!
> > Please answer the following questions to help us understand your issue.
> >
> > What did you do before the bug happened? (Steps to reproduce your issue)
> >
> > Perform a git clone https with includeif onbranch in the .gitconfig
> >
> > Create a .gitconfig
> > with
> > [includeIf "onbranch:wip/pippo/**"]
> > path = ~/.gitconfig.pippo.inc
> >
> > git clone https://github.com/analogdevicesinc/no-OS.git
> >
> > Cloning into 'no-OS'...
> > BUG: refs.c:2083: reference backend is unknown
> > error: git-remote-https died of signal 6
>
> Thanks for the report.
>
> I can definitely confirm this with a local Git 2.44.0 built out of my
> working tree. It seems to trigger as long as there's a `path` entry
> whether the path exists or not. It _doesn't_ seem to trigger with a
> `gitdir` check, but does trigger for `onbranch`. v2.43.0 is not
> affected.
>
> I do definitely think this is a bug. First of all, we should not
> trigger BUG conditions, even if the user has done something naughty, so
> we should fix it for that reason. Second of all, this seems like a
> completely reasonable thing to want to do, and considering it triggers
> for existing files, and that it worked just fine in v2.43.0, I don't see
> a reason we shouldn't have this work.
>
> A bisection[0] leads us to 0fcc285c5e ("refs: refactor logic to look up
> storage backends", 2023-12-29). I've CCed the author of that commit,
> who hopefully can provide some more helpful context.
>
> I have some guesses about what's going on here, but I haven't poked
> further into the situation, so I'll refrain from speculating for now.
>
> [0] git bisect run sh -c 'make -j12 && cd $TMPDIR && rm -fr no-OS && PATH="$HOME/checkouts/git/bin-wrappers:$PATH" git clone https://github.com/analogdevicesinc/no-OS.git; RET=$?; [ "$RET" -eq 128 ] && RET=1; exit $RET'Thanks for bisecting! My first hunch would've been that it's caused by the change that changed when we initialize the refdb. I would have thus hoped for 199f44cb2e (builtin/clone: allow remote helpers to detect repo, 2024-02-27) to have fixed the issue. But the bisected commit points into a different direction, so I'd be surprised if that was it.
Anyway, I didn't yet have the time to investigate this issue further, and am currently a bit short on time. I will have a deeper look next week at the latest.
Patrick