Thread (14 messages) 14 messages, 6 authors, 2016-06-15

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.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help