Subject: Re: Question about 'branch -d' safety

From: Jakub Narebski <[email-masked]>
Date: Sun, 11 Jul 2010 09:16:26 +0200

Dnia niedziela 11. lipca 2010 08:55, Clemens Buchacher napisał:
> On Sat, Jul 10, 2010 at 02:57:35PM -0700, Jakub Narebski wrote:
> > 
> > It's unfortunately not so easy.  The problem you have to solve is D/F
> > conflict: if you have 'foo/bar' branch, you can't create 'foo' branch,
> > but after deleting 'foo/bar' you want to be able to create 'foo'
> > branch and reflog for 'foo' branch.
> 
> I'm going to read up on Jonathan's pointers. But I do not really
> see the problem above. If the reflog already exists, the new branch
> simpliy continues using it. So if the branch is re-created, it's as
> if the branch had never been deleted.

The problem is, that when you have 'foo/bar' branch, then you have
'foo/bar' reflog.  When you delete branch 'foo/bar', but do not delete
'foo/bar' reflog (only add to it branch deletion event), and then you
want to create 'foo' branch, git wouldn't be able to create reflog
fo 'foo' because of directory / file (D/F) conflict: there is 'foo/'
directory preventing file 'foo' from being created.
 
> Or possibly we add a special reflog entry which points the branch
> to a zero sha to signify that the branch had been deleted.

That is a good idea anyway.
-- 
Jakub Narebski
Poland