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

Re: remote tracking branch deletion problem

From
Michael J Gruber <git@drmicha.warpmail.net>
Date
Dec 19, 2008, 14:56 UTC
Message-ID
<494BB637.3070304@drmicha.warpmail.net>
In-Reply-To
<200812191257.18678.thomas.jarosch@intra2net.com>
Thomas Jarosch venit, vidit, dixit 19.12.2008 12:57:
Show 31 quoted lines
> Hello together,
> 
> while playing around with git, I stumbled upon a strange remote tracking 
> branch deletion problem. It seems I'm unable to delete the remote tracking 
> branch "origin/HEAD" using git 1.6.0.5. Here's what I did:
> 
> [tomj@storm repo]$ git init
> Initialized empty Git repository in /tmp/repo/.git/
> 
> [tomj@storm repo]$ echo "test" >test
> [tomj@storm repo]$ git add test
> [tomj@storm repo]$ git commit -m "Test"
> 
> [tomj@storm tmp]$ git clone repo alice
> Initialized empty Git repository in /tmp/alice/.git/
> 
> [tomj@storm alice]$ git branch -r
>   origin/HEAD
>   origin/master
> 
> [tomj@storm alice]$ git branch -r -d origin/HEAD
> Deleted remote branch origin/HEAD.
> [tomj@storm alice]$ git branch -r -d origin/master
> Deleted remote branch origin/master.
> 
> [tomj@storm alice]$ ls -al .git/refs/remotes/origin/HEAD
> -rw-rw---- 1 tomj intra2net 32 19. Dec 12:43 .git/refs/remotes/origin/HEAD
> [tomj@storm alice]$ git branch -r
> error: refs/remotes/origin/HEAD points nowhere!
> 
> Is this supposed to be? git 1.6.1.rc3.35.gc0ceb shows a similar behavior.

I think the point here is that HEAD is really a symref. "git remote rm origin" makes sure that symrefs are removed, and is the right command to use here.

"git branch -r -d", as well as "git update-ref -d" fail to remove HEAD because it's really not a branch but a symref.

You can use "git update-ref -d --no-deref" to remove HEAD.

Making builtin-branch use delete_ref(,,REF_ISSYMREF) leads to success for your above commands. I don't know about side effects, though all tests pass. Is this sensible?

I guess I should come up with a test for this along with the patch.
Michael
Previous: Thomas Jarosch
Message 2 of 2 in “remote tracking branch deletion problem”
  1. Thomas JaroschDec 19, 2008
  2. Michael J GruberDec 19, 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.