Re: Question about 'branch -d' safety
From: Jakub Narebski <hidden>
Date: 2016-06-15 22:49:07
Dnia niedziela 11. lipca 2010 08:55, Clemens Buchacher napisał:
On Sat, Jul 10, 2010 at 02:57:35PM -0700, Jakub Narebski wrote:quoted
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