From: Junio C Hamano Date: Sat, 23 Sep 2006 08:04:45 GMT Subject: Re: [PATCH] Remove branch by putting a null sha1 into the ref file. Message-ID: <7vu02zuhya.fsf@assigned-by-dhcp.cox.net> In-Reply-To: <200609230645.37773.chriscool@tuxfamily.org> Christian Couder writes: > If we move ".git/refs/heads/frotz/nitfol" > to ".git/deleted-refs/heads/frotz/nitfol" when we remove this ref, we only > need to try to rmdir all subdirectories under ".git/refs/heads/frotz/" and > then ".git/refs/heads/frotz/" to see if we can > create ".git/refs/heads/frotz", and if we can, we won't > resurect "frotz/nitfol" because ".git/deleted-refs/heads/frotz/nitfol" > still exists. I am not sure if that would be workable. I suspect that you would need to do quite an involved sequence in "git branch" to make this sequence to work with .git/deleted-refs/ scheme: git branch frotz/nitfol git pack-refs --prune git branch -d frotz/nitfol git branch frotz git pack-refs git branch -d frotz After deleting frotz/nitfol you would create frotz/nitfol in deleted hierarchy. Then when you delete frotz you would need to create frotz in deleted hierarchy, but you cannot, without losing frotz/nitfol.