git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: FETCH_HEAD question

From
Jay Soffian <jaysoffian@gmail.com>
Date
Feb 17, 2009, 05:11 UTC
Message-ID
<76718490902162111o373065bwb74a187b016beb0a@mail.gmail.com>
In-Reply-To
<76718490902162043k78e615b5g7ba4b7ac95e73b18@mail.gmail.com>
On Mon, Feb 16, 2009 at 11:43 PM, Jay Soffian <jaysoffian@gmail.com> wrote:
Show 11 quoted lines
> I did this the other day out of mild curiosity:
>
> $ git fetch
> $ git merge FETCH_HEAD
>
> Which did something, but not something that was at all useful. It
> merges in the first ref listed in FETCH_HEAD. It does not appear to be
> an accident that it does this, as git merge has special treatment for
> FETCH_HEAD to generate the merge message.
>
> Why does this behavior exist? Historical?

To be clear, this seems only to be useful if you are only fetching a single branch from remote. Otherwise the branch which you end up merging (the first alphabetically) may very well not be what the current checked-out branch is based on.

So to work correctly in the case of pulling multiple branches, dwim_ref() would have to return the sha1 corresponding to the single line in FETCH_HEAD that is not marked "not-for-merge" and git merge would similarly need to use that line for the merge message. Or git fetch would need to place the non-not-for-merge ref first in the file.

I found this in the archives, but it didn't really answer my question about why it got implemented the current way:

http://thread.gmane.org/gmane.comp.version-control.git/42788/focus=42850
j.
Previous: Jay SoffianNext: Junio C Hamano
Message 2 of 15 in “FETCH_HEAD question”
  1. Jay SoffianFeb 17, 2009
  2. Jay SoffianFeb 17, 2009
  3. Junio C HamanoFeb 17, 2009
  4. Jay SoffianFeb 17, 2009
  5. Junio C HamanoFeb 17, 2009
  6. Jay SoffianFeb 17, 2009
  7. Junio C HamanoFeb 17, 2009
  8. Jay SoffianFeb 17, 2009
  9. Johannes SchindelinFeb 17, 2009
  10. Jay SoffianFeb 17, 2009
  11. PUSH_HEAD, was Re: FETCH_HEAD questionJohannes Schindelin, Feb 17, 2009
  12. Junio C HamanoFeb 17, 2009
  13. Jay SoffianFeb 18, 2009
  14. Johannes SchindelinFeb 18, 2009
  15. Sitaram ChamartyFeb 17, 2009

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.