Re: [PATCH] logging branch deletion to help recovering from mistakes
- From
Shawn O. Pearce <spearce@spearce.org>
- Date
- Dec 7, 2010, 18:23 UTC
- Message-ID
- <20101207182342.GA3725@spearce.org>
- In-Reply-To
- <20101207182040.GA26770@sigill.intra.peff.net>
Jeff King <peff@peff.net> wrote:
Show 6 quoted lines
> On Tue, Dec 07, 2010 at 10:14:19AM -0800, Shawn O. Pearce wrote: > > > 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.
...
Show 12 quoted lines
> > 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.