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

Re: bug: origin refs updated too soon locally

From
Shawn O. Pearce <spearce@spearce.org>
Date
Oct 18, 2007, 04:53 UTC
Message-ID
<20071018045358.GB14735@spearce.org>
In-Reply-To
<8CEF6150-4BE7-4B4D-B58C-12CE4671007E@cs.indiana.edu>
Perry Wagle <wagle@cs.indiana.edu> wrote:
Show 5 quoted lines
> If I clone a remote repository, make a few commits, push them to the  
> remote repository, and the update hook on the remote repository  
> rejects them (exit 1), the local origin refs are still updated as if  
> the push had gone through.  The workaround is to do a pull to set the  
> origin refs back.

Heh. Yes, that's a known bug. Someone should really fix it. The problem is we are updating the local tracking ref before we actually get confirmation from the remote side that the remote side has accepted (or rejected) that update request.

This is probably easier to do after the db/fetch-pack topic is merged as the improvements there might make this easier. But I could be wrong. Be nice if someone proved me wrong by writing up a patch for git-send-pack.

For the time being the best way to recover from this is to use git-fetch rather than git-pull. Recall that git-pull is defined as "fetch then merge". You really just need to refetch the tracking branches again, so your tracking branches have the same value as the remote side.

-- 
Shawn.
Previous: Perry WagleNext: Jeff King
Message 3 of 8 in “bug: origin refs updated too soon locally”
  1. Perry WagleOct 18, 2007
  2. Perry WagleOct 18, 2007
  3. Shawn O. PearceOct 18, 2007
  4. Jeff KingOct 18, 2007
  5. t5516: test update of local refs on pushJeff King, Oct 18, 2007
  6. Jeff KingOct 18, 2007
  7. Shawn O. PearceOct 18, 2007
  8. 2/2 send-pack: don't update tracking refs on errorJeff King, Oct 18, 2007

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.