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

Re: bug related to branches using / in name

From
Jeff King <peff@peff.net>
Date
Jun 27, 2008, 03:02 UTC
Message-ID
<20080627030245.GA7144@sigill.intra.peff.net>
In-Reply-To
<1214509350.28344.31.camel@odie.local>
On Thu, Jun 26, 2008 at 09:42:30PM +0200, Simon Holm Thøgersen wrote:
Show 9 quoted lines
> The last command does not succeed, but produces the following output
> 
> error: unable to resolve reference refs/remotes/origin/sched/devel: Not
> a directory
> >From file:///tmp/git-bug
>  * [new branch]      sched/devel -> origin/sched/devel
> error: unable to resolve reference refs/remotes/origin/sched/urgent: Not
> a directory
>  * [new branch]      sched/urgent -> origin/sched/urgent

So to summarize, the problem is that you have an old tracking branch "refs/remotes/sched" that exists on the client, but upstream has since removed it in favor of "sched/devel", which you are now trying to fetch. And of course there is a conflict, because of the ref naming rules.

This doesn't work seamlessly because git-fetch never removes old tracking branches, even if they have been deleted upstream. And normally there is no conflict; leaving the old branches means they don't disappear from under you.

In this case, of course, it's inconvenient. The "right" way to solve it is to tell git to clean up your tracking branches for "origin":

  git remote prune origin

which should delete the old "sched" tracking branch (since it no longer exists on the remote), and then you are free to fetch.

It might be nicer if this were handled automatically, but it would violate git-fetch's rule about never deleting branches. And presumably this comes up infrequently enough that it isn't a problem. Perhaps a better error message suggesting git-prune might make sense?

-Peff
Previous: Simon Holm ThøgersenNext: Jeff King
Message 2 of 13 in “bug related to branches using / in name”
  1. Simon Holm ThøgersenJun 26, 2008
  2. Jeff KingJun 27, 2008
  3. Jeff KingJun 27, 2008
  4. Simon Holm ThøgersenJun 27, 2008
  5. Jeff KingJun 27, 2008
  6. fetch: report local storage errors in status tableJeff King, Jun 27, 2008
  7. Junio C HamanoJun 27, 2008
  8. Jeff KingJun 28, 2008
  9. 2/2 fetch: give a hint to the user when local refs fail to updateJeff King, Jun 27, 2008
  10. Junio C HamanoJun 27, 2008
  11. Jeff KingJun 28, 2008
  12. Junio C HamanoJun 28, 2008
  13. Jakub NarebskiJun 28, 2008

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.