Subject: Re: bug: `git pull --rebase` breaks in the presence of pushurls

From: Phillip Wood <[email-masked]>
Date: Thu, 11 Dec 2025 15:56:17 +0000

On 11/12/2025 03:21, Junio C Hamano wrote:
> Phillip Wood <[email-masked]> writes:
> 
>> "git pull" already runs "git merge-base --fork-point" before it runs
>> "git fetch". The problematic reflog entry comes from a previous push
>> which pushes to a different server due to remote.<remote>.pushurl.
> 
> Ah, of course.  fork-point heuristics with a repository you yourself
> push into would not make all that sense, since you are in control
> when and what to push there in the first place :/.
> 
>> Because we've just successfully pushed the local branch the fork point
>> calculation thinks the remote tracking branch matches the local branch
>> and so excludes all the local commits when we rebase but we didn't push
>> it to the same server that we're fetching from. I wonder if we should
>> disable the fork point calculation when there is a pushurl set.
> 
> Tempting thought.  Or educate users with diagnoses and advise()?

If we do that we'll also need to provide a way for the user to skip 
using the fork point when pulling. At the moment I think there is way 
for the user to turn it off.

Thanks

Phillip