RE: [BUG] cannot git clone with includeif onbranch
On Friday, March 8, 2024 3:11 PM, brian m. carlson wrote:
Show 43 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'I was wondering whether this should only work on a clone with -b wip/pippo/... argument, although it should not fail the clone, just not apply the path. I can see how it would be somewhat confusing if the global config defaults to master and remote only serves up main - or vise-versa.
--Randall