Re: [PATCH 1/2] builtin/rebase.c: Emit warning when rebasing without a forkpoint

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 9/1/23 14:10, Junio C Hamano wrote:
Wesley <wesleys@xxxxxxxxxxxxxxx> writes:

The quirk is this: --fork-point looks at the reflog and reflog is
local. Meaning, having an remote upstream branch will make
--fork-point a noop. Only where you have an upstream which is local
and your reflog has seen dropped commits it does something.

Why do you lack reflog on your remote-tracking branches in the first
place?

I do not know? I tested with a bare repo and two clones. And I also tested it with just a remote upstream in another branch.

When in repo-1 I do the reset --hard HEAD^, and push the results, and pull them in in repo-2 the behavior doesn't replicate. The git reflog command doesn't show the reset. However, if I delete the reflog entry for removal of the reset HEAD^, git rebase exposes the fork-point behavior.

The fork-point heuristics, as far as I understand it, was invented
exactly to protect you from your upstream repository rewinding and
rebuilding the branch you have been building on top of.  The default
fetch refspec +refs/heads/*:refs/remotes/origin/* has the "force"
option "+" in front exactly because the fetching repository is
expected to keep the reflog for remote-tracking branches to help
recovering from such a rewind & rebuild.

I haven't force pushed anything btw, maybe that could explain things?

Cheers,
Wesley

--
Wesley

Why not both?




[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux