[RFH] WTF did we change in git-fsck recently?

3 messages, 2 authors, 2016-06-15 · open the first message on its own page

[RFH] WTF did we change in git-fsck recently?

From: Junio C Hamano <hidden>
Date: 2016-06-15 22:43:06

I noticed that "git-fsck --full" from 'master' takes forever to
fsck the kernel repository (I left it running for 2 hours before
killing it), while the one from 'maint' (or 1.5.1.1 which is
installed on kernel.org) finishes within 2 or 3 minutes.  There
is some serious breakages there.

Rings a bell?

Re: [RFH] WTF did we change in git-fsck recently?

From: Linus Torvalds <torvalds@linux-foundation.org>
Date: 2016-06-15 22:43:06


On Fri, 20 Apr 2007, Junio C Hamano wrote:
I noticed that "git-fsck --full" from 'master' takes forever to
fsck the kernel repository (I left it running for 2 hours before
killing it), while the one from 'maint' (or 1.5.1.1 which is
installed on kernel.org) finishes within 2 or 3 minutes.  There
is some serious breakages there.
Hmm. Probably something broken in my "object decorator" thing then. 

Will check it out, I hadn't noticed myself.

		Linus

Re: [RFH] WTF did we change in git-fsck recently?

From: Linus Torvalds <torvalds@linux-foundation.org>
Date: 2016-06-15 22:43:06


On Fri, 20 Apr 2007, Linus Torvalds wrote:
Hmm. Probably something broken in my "object decorator" thing then. 
Duh.

When I did the object decorator thing, I made the "loop over the hash" 
function use the same logic for updating the hash, ie made them use

	if (++j >= size)
		j = 0;

for both the hash update for both "insert" and "lookup"

HOWEVER.

For some inexplicable reason I had an extraneous

	j++;

in the insert path (probably just from the fact that the old code there 
used 

	j++;
	if (j >= size)
		j = 0;

and when I made them use the same logic I just didn't remove the old 
extraneous line properly.

This fixes it.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
---
 decorate.c |    1 -
 1 files changed, 0 insertions(+), 1 deletions(-)
diff --git a/decorate.c b/decorate.c
index 396b413..23f6b00 100644
--- a/decorate.c
+++ b/decorate.c
@@ -24,7 +24,6 @@ static void *insert_decoration(struct decoration *n, struct object *base, void *
 			hash[j].decoration = decoration;
 			return old;
 		}
-		j++;
 		if (++j >= size)
 			j = 0;
 	}
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help