threads / discuss / 57837

Incorrect branch information after fetching (local branch != remote branch)

Subject: Incorrect branch information after fetching (local branch != remote branch)

## tl;dr

4 messages between May 3, 2022 and May 3, 2022.

replies: 3people: 2as markdown or json

Bagas Sanjaya· May 3, 2022, 04:58 UTC · lore
Hi,

I have a copy of linux.git (Linux kernel) repository, with following branch mapping:

  * master -> torvalds/master (Linus' mainline tree)
  * linux-5.*.y -> stable/linux-5.*.y (Stable tree)
  * net-next -> net-next/master (net-next tree)

When I fetch the mainline tree (torvalds/master), I get the expected branch fetching info:

From https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux
   672c0c5173427e..9050ba3a61a4b5  master     -> torvalds/master
When I fetch net-next, I get possibly incorrect branch name instead:
From https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next
   6e28f56c0d1d97..0530a683fc858a  master     -> net-next/master

I expected that net-next (local branch name) is displayed instead of master in this case.

Thanks.
-- 
An old man doll... just what I always wanted! - Clara
Junio C Hamano· May 3, 2022, 05:51 UTC · re: Bagas Sanjaya · lore

Re: Incorrect branch information after fetching (local branch != remote branch)

Bagas Sanjaya <bagasdotme@gmail.com> writes:
Show 22 quoted lines
> I have a copy of linux.git (Linux kernel) repository, with following
> branch mapping:
>
>   * master -> torvalds/master (Linus' mainline tree)
>   * linux-5.*.y -> stable/linux-5.*.y (Stable tree)
>   * net-next -> net-next/master (net-next tree)
>
> When I fetch the mainline tree (torvalds/master), I get the expected
> branch fetching info:
>
> From https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux
>    672c0c5173427e..9050ba3a61a4b5  master     -> torvalds/master
>
> When I fetch net-next, I get possibly incorrect branch name instead:
>
> From https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next
>    6e28f56c0d1d97..0530a683fc858a  master     -> net-next/master
>
> I expected that net-next (local branch name) is displayed instead of
> master in this case.
>
> Thanks.
I may be entirely missing what you are raising as a problem, but visiting
https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next.git/
shows that their primary branch is called 'master'.

The verbose report left by "git fetch" tells us what branch they have is used to update what branch we have, so I think this is pretty much expected.

I am puzzled by your mention of 'net-next' (local).
You may have
    [branch "net-next"]
        remote = net-next
	merge = master

and that is where your expectation on the local may be coming from, but it wouldn't be all that relevant to "git fetch". The update of the local branch will happen long after "git fetch" is done.

Besides, you may have more than one local branch that is forked from the same remotes/net-next/master remote-tracking branch and at that point "git fetch" wouldn't be able to tell which one of these multiple local branches to show.

Bagas Sanjaya· May 3, 2022, 06:42 UTC · re: Junio C Hamano · lore

Re: Incorrect branch information after fetching (local branch != remote branch)

On 5/3/22 12:51, Junio C Hamano wrote:
Show 16 quoted lines
> The verbose report left by "git fetch" tells us what branch they
> have is used to update what branch we have, so I think this is
> pretty much expected.
> 
> I am puzzled by your mention of 'net-next' (local).
> 
> You may have
> 
>     [branch "net-next"]
>         remote = net-next
> 	merge = master
> 
> and that is where your expectation on the local may be coming from,
> but it wouldn't be all that relevant to "git fetch". The update of
> the local branch will happen long after "git fetch" is done.
> 
Ah I see.

So the left-hand side of verbose report (local branch) is actually the value of branch."net-next".merge, right?

-- 
An old man doll... just what I always wanted! - Clara
Junio C Hamano· May 3, 2022, 06:49 UTC · re: Bagas Sanjaya · lore

Re: Incorrect branch information after fetching (local branch != remote branch)

Bagas Sanjaya <bagasdotme@gmail.com> writes:
Show 22 quoted lines
> On 5/3/22 12:51, Junio C Hamano wrote:
>> The verbose report left by "git fetch" tells us what branch they
>> have is used to update what branch we have, so I think this is
>> pretty much expected.
>> 
>> I am puzzled by your mention of 'net-next' (local).
>> 
>> You may have
>> 
>>     [branch "net-next"]
>>         remote = net-next
>> 	merge = master
>> 
>> and that is where your expectation on the local may be coming from,
>> but it wouldn't be all that relevant to "git fetch". The update of
>> the local branch will happen long after "git fetch" is done.
>> 
>
> Ah I see.
>
> So the left-hand side of verbose report (local branch) is actually
> the value of branch."net-next".merge, right?
Not really.  It comes from
	[remote "net-next"]
	    remote = https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next
	    fetch = refs/heads/*:refs/remotes/net-next/*

and the fact that the remote happens to have only one branch under its refs/heads/ hierarchy. Fetch does not care all that much about "branch.*.merge" (which is what I said---the configuration is not all that relevant to "git fetch").

← back to recent threads