Re: Syncing HEAD
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Aug 17, 2018, 16:28 UTC
- Message-ID
- <xmqq6009c5ys.fsf@gitster-ct.c.googlers.com>
- In-Reply-To
- <20180814214723.GA667@sigill.intra.peff.net>
Jeff King <peff@peff.net> writes:
Show 6 quoted lines
> So all of this really implies to me that you want to be able to say > "take this symref on the other side and update this one on the local > side". I.e., some way to tell a refspec "don't update the value, update > the symref destination". ... > ... > git fetch origin ~HEAD:refs/remotes/origin/HEAD
We need to be a bit careful here.
You can define the meaning of the above sanely if you know that refmap refs/heads/*:refs/remotes/origin/* is in effect for the remote to read "My HEAD points at refs/heads/frotz" and interpret it as "In order to match, I need to make my refs/remotes/origin/HEAD to point at refs/remotes/origin/frotz".
Also, what should the above form of "git fetch" write in FETCH_HEAD? Should "git pull origin ~HEAD:refs/remotes/origin/HEAD" run the fetch and then merge it (which may have value of refs/remotes/origin/frotz) to the current branch? Should the underlying fetch be also fetching the frotz branch from them at the same time, or do we attempt to merge a possibly stale 'frotz' (which might not even have been there, the last time we fetched from them)?