Subject: Re: [PATCH] builtin-branch - allow deleting a fully specified branch-name

From: Mark Levedahl <[email-masked]>
Date: Thu, 9 Apr 2009 21:19:09 -0400

On Thursday 09 April 2009 20:39:46 Junio C Hamano wrote:
> Mark Levedahl <[email-masked]> writes:
> > This change allows, for instance
> > 	git branch -d refs/heads/foo
> > to succeed. Without this patch, the code just assumes that the
> > given branch name should be appended to "refs/heads" or
> > "refs/remotes", thus attempting (and failing) in the above case
> > to delete "refs/heads/refs/heads/foo"
>
> Your logic is broken.
>
> Why doesn't the user simply say "git branch -d foo"?  The command takes
> "the branch name", not "arbitrary ref name".

1) git branch -d refs/<whatever> used to work,  I haven't bisected to find 
when this stopped working, but the change broke one of my scripts, so this is 
not new behavior, it is restoration of previous behavior.
2) If I create branch  refs/frotz/bar , how do I ever delete it?

Also, the following all work
3) git branch refs/heads/foo
4) git branch -m refs/heads/foo refs/heads/bar 
5) git  [checkout|pull|push|fetch|show] refs/heads/foo

So, why is "git branch -d" so special?

Mark