Re: [PATCH] logging branch deletion to help recovering from mistakes
From: Shawn O. Pearce <hidden>
Date: 2016-06-15 22:50:12
Jeff King [off-list ref] wrote:
On Tue, Dec 07, 2010 at 10:14:19AM -0800, Shawn O. Pearce wrote:quoted
Per check-ref-format, ref names cannot contain two dots. We could archive ref logs by renaming them, $GIT_DIR/logs/refs/heads/foo becomes $GIT_DIR/logs/refs/heads/foo..deleted-1. If foo is created and deleted again, it becomes foo..deleted-2.
...
quoted
A different approach might be to have $GIT_DIR/logs/refs/REF_ATTIC,That seems a lot less efficient, as we have to linearly search all of REF_ATTIC to get: 1. the reflog for one deleted branch 2. the list of deleted branches Neither of those is probably particularly performance critical, but it just seems like keeping the logs in files indexed by the original ref names is a more natural fit.
Yea, I'm leaning more towards the foo..deleted-n idea too, for the same reasons. It also makes it easier to GC a deleted branch's reflog, we can examine the last record's timestamp in a reasonable time bound and unlink the log if its really freaking old. -- Shawn.