Re: can we prevent reflog deletion when branch is deleted?
- From
Michael Haggerty <mhagger@alum.mit.edu>
- Date
- Jun 1, 2013, 03:00 UTC
- Message-ID
- <51A963B7.6060002@alum.mit.edu>
- In-Reply-To
- <CAMK1S_jY1tDCkyOamX8XNW9g8Dzf6yN9znwN6he-EVcOkBM1fQ@mail.gmail.com>
On 06/01/2013 03:31 AM, Sitaram Chamarty wrote:
> Is there a way to prevent reflog deletion when the branch is deleted? > The last entry could simply be a line where the second SHA is all 0's.
This is a known problem. The technical reason that this is not trivial to solve is the possibility of a directory/file conflict between old reflog files and references that might be created subsequently (which in turn is a limitation of how loose references and reflogs are mapped to filenames):
git branch foo
git branch -d foo
git branch foo/barUnder your proposal, the second line would retain the reflog file for foo, which is named ".git/logs/refs/heads/foo". But the third line wants to create a file ".git/logs/refs/heads/foo/bar". The existence of the "foo" file prevents the creation of a "foo" directory.
A similar problem exists if "foo" and "foo/bar" are exchanged in the above example.
Peff proposed a solution to this problem [1], but AFAIK it is not making progress.
Michael
[1] http://thread.gmane.org/gmane.comp.version-control.git/201715/focus=201752
-- Michael Haggerty mhagger@alum.mit.edu http://softwareswirl.blogspot.com/