On Fri, Nov 04, 2011 at 10:47:50PM +0700, Nguyen Thai Ngoc Duy wrote: > static int traverse_reachable(void) > { > + struct progress *progress = NULL; > + unsigned int nr = 0; > int result = 0; > + if (show_progress) > + progress = start_progress_delay("Checking connectivity", 0, 0, 2); > while (pending.nr) { > struct object_array_entry *entry; > struct object *obj; > @@ -146,7 +152,9 @@ static int traverse_reachable(void) > entry = pending.objects + --pending.nr; > obj = entry->item; > result |= traverse_one_object(obj); > + display_progress(progress, ++nr); > } > + stop_progress(&progress); > return !!result; > } Thanks, this is a good place to put a progress meter, too. If you're feeling like pushing this topic further, "git prune" might be a good place for a progress meter, too. It does a similar traversal[1] for reachability, and makes "git gc" appear to hang at the end (we have nice progress meters for packing, but it takes something like 25 seconds to run "git prune" at the end, during which we are silent). -Peff [1] I wonder why fsck doesn't use mark_reachable from reachable.c. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html