git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 1/5] prune-packed: don't call display_progress() for every file

From
Nicolas Pitre <nico@cam.org>
Date
Nov 1, 2007, 12:06 UTC
Message-ID
<alpine.LFD.0.9999.0711010736430.21255@xanadu.home>
In-Reply-To
<20071101025830.GX14735@spearce.org>
On Wed, 31 Oct 2007, Shawn O. Pearce wrote:
Show 18 quoted lines
> Nicolas Pitre <nico@cam.org> wrote:
> > The progress count is per fanout directory, so it is useless to call
> > it for every file as the count doesn't change that often.
> 
> If you go back into the history and look at the commit message for
> when I introduced this per-object display_progress() call we find
> the following:
> 
>  commit b5d72f0a4cd3cce945ca0d37e4fa0ebbfcdcdb52
>  Author: Shawn O. Pearce <spearce@spearce.org>
>  Date:   Fri Oct 19 00:08:37 2007 -0400
> 
> [...snip...]
>     We perform the display_progress() call from within the very innermost
>     loop in case we spend more than 1 second within any single object
>     directory.  This ensures that a progress_update event from the
>     timer will still trigger in a timely fashion and allow the user to
>     see the progress meter.
Hmmmm OK.  I overlooked that.
Show 5 quoted lines
> During my testing with a 40,000 loose object case (yea, I fully
> unpacked a git.git clone I had laying around) my system stalled
> hard in the first object directory.  A *lot* longer than 1 second.
> So I got no progress meter for a long time, and then a progress
> meter appeared on the second directory.

But then don't you get a "0% (1/256)" on the screen for a while, like if it was stalled? Might be better than nothing at all I suppose...

> So I'm a little against this patch.  But I think I understand why
> you think its worth doing.  I just consider the progress feedback
> more important than the few machine cycles avoiding it saves.

OK, I don't mind reverting the patch, or actually providing another one to move the call back inside the loop since other changes will prevent a clean revert.

Nicolas
Previous: Shawn O. Pearce
Message 11 of 11 in “more progress display stuff”
  1. 0/5 more progress display stuffNicolas Pitre, Oct 30, 2007
  2. 1/5 prune-packed: don't call display_progress() for every fileNicolas Pitre, Oct 30, 2007
  3. 2/5 make struct progress an opaque typeNicolas Pitre, Oct 30, 2007
  4. 3/5 relax usage of the progress APINicolas Pitre, Oct 30, 2007
  5. 4/5 add throughput to progress displayNicolas Pitre, Oct 30, 2007
  6. 5/5 add throughput display to index-packNicolas Pitre, Oct 30, 2007
  7. 6/5 add some copyright notice to the progress display codeNicolas Pitre, Oct 30, 2007
  8. 7/5 add throughput display to git-pushNicolas Pitre, Oct 30, 2007
  9. Junio C HamanoOct 31, 2007
  10. Shawn O. PearceNov 1, 2007
  11. Nicolas PitreNov 1, 2007

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.