Johannes Schindelin <Johannes.Schindelin@xxxxxx> writes: > Hi Srinidhi, > > On Thu, 10 Sep 2020, Srinidhi Kaushik wrote: > >> On 09/10/2020 12:22, Johannes Schindelin wrote: >> >> > BTW I think the patch needs to cover a bit more, still: after I run `git >> > pull --rebase`, the local branch will never have been at the same revision >> > as the fetched one: `git rebase` moves to an unnamed branch before >> > replaying the patches. So I think we need to see whether the remote tip >> > was _reachable_ from (not necessarily identical to) any of the reflog's >> > revisions. >> >> Good catch. Would adding in_merge_bases() along with checking if OIDs >> are equal for each reflog entry in oid_in_reflog_ent() address the >> problem? That way, we would check if remote ref is reachable from >> one of the entries? That sounds very expensive. If we switched to check the reflog of HEAD (and not any particular local branch's reflog), then "has this ever been checked out", tests would suffice, no? We detach at the tip of the remote-tracking branch and then reapply our work one by one in such a case, so we should have the record of having their tip in the working tree at some point (i.e. at the beginning of the "rebase" phase of the "pull --rebase" operation).