Thread (126 messages) 126 messages, 9 authors, 2024-12-05

Re: [PATCH v15 09/10] fetch: set remote/HEAD if it does not exist

From: Bence Ferdinandy <hidden>
Date: 2024-12-05 20:57:44

On Thu Dec 05, 2024 at 21:11, Josh Steadmon [off-list ref] wrote:
[snip]
quoted
Thanks for looking into this! I think the issue is with 

 $GIT fetch --tags "file://$REMOTE"

instead of adding a proper remote. Tbh, I've never seen the above syntax before, so first I just ran your script, which reproduced the issue for me, but then I modified it to use a proper remote which works as expected:

rm -rf test_tag_1 test_tag_2
GIT=~/git/bin-wrappers/git
mkdir test_tag_1 && cd test_tag_1
REMOTE=$(pwd)
$GIT init .
touch foo.txt
$GIT add foo.txt
$GIT commit foo.txt -m "commit one"
$GIT tag foo
cd ..
mkdir test_tag_2 && cd test_tag_2
$GIT init .
$GIT remote add origin $REMOTE
echo fetch --tags
$GIT fetch origin --tags 
echo regular fetch
$GIT fetch origin 'refs/tags/*:refs/tags/*'
$GIT --version

So I'm assuming this is why also the tests never caught this, since probably
all of them are using `git remote add`.
Yeah, I think the issue is that we check the `--tags` flag first, but
only add the ref_prefixes entry if it's not empty already. Then after
that we unconditionally add HEAD. So that's why moving your strvec_push
earlier fixes it. I'll send a fix + test patch in just a minute.
Awesome, thanks!
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help