From: Derrick Stolee Date: Fri, 07 Sep 2018 20:29:45 GMT Subject: Re: [PATCH] status: show progress bar if refreshing the index takes too long Message-ID: <796edb6b-74ec-35dc-4bae-7a817f8fa9b5@gmail.com> In-Reply-To: On 9/7/2018 1:38 PM, Eric Sunshine wrote: > On Fri, Sep 7, 2018 at 11:51 AM Nguyễn Thái Ngọc Duy wrote: >> Refreshing the index is usually very fast, but it can still take a >> long time sometimes. Cold cache is one, or something else silly (*). >> In this case, it's good to show something to let the user know "git >> status" is not hanging, it's just busy doing something. >> >> Signed-off-by: Nguyễn Thái Ngọc Duy >> --- >> diff --git a/read-cache.c b/read-cache.c >> @@ -1516,6 +1522,8 @@ int refresh_index(struct index_state *istate, unsigned int flags, >> + if (progress) >> + display_progress(progress, i); >> @@ -1547,6 +1555,8 @@ int refresh_index(struct index_state *istate, unsigned int flags, >> + if (progress) >> + stop_progress(&progress); > Nit: Both display_progress() and stop_progress() behave sanely when > 'progress' is NULL, so no need for the conditional. Don't forget this one in preload-index.c:preload_index(): + if (pd.progress) + stop_progress(&pd.progress); I found this extra one by creating the following rules in a Coccinelle script: @@ expression e; @@ - if (e) { stop_progress(&e); } + stop_progress(&e); @@ expression e; expression i; @@ - if (e) { display_progress(e, i); } + display_progress(e, i); Not sure if we want to put these in a .cocci script or not. Thanks, -Stolee