From: Junio C Hamano Date: Wed, 25 Aug 2021 17:51:55 GMT Subject: Re: [PATCH] fetch: skip formatting updated refs with `--quiet` Message-ID: In-Reply-To: <40c385048a023dbd447c5f0b4c95ff32485e1e23.1629906005.git.ps@pks.im> Patrick Steinhardt writes: > When fetching, Git will by default print a list of all updated refs in a > nicely formatted table. In order to come up with this table, Git needs > to iterate refs twice: first to determine the maximum column width, and > a second time to actually format these changed refs. > > While this table will not be printed in case the user passes `--quiet`, > we still go out of our way and do all these steps. In fact, we even do > more work compared to not passing `--quiet`: without the flag, we will > skip all references in the column width computation which have not been > updated, but if it is set we will now compute widths for all refs. Interesting. This line /* uptodate lines are only shown on high verbosity level */ if (!verbosity && oideq(&ref->peer_ref->old_oid, &ref->old_oid)) return; at the beginning of the adjust_refcol_width() function indeed does not skip if verbosity is negative, so the comment is wrong---it is not only computed on high verbosity level. Why doesn't this patch include a change like this then? if (verbosity <= 0 || oideq(&ref->peer_ref->old_oid, &ref->old_oid)) return; Another thing I notice is this part from store_updated_refs(): if (note.len) { if (verbosity >= 0 && !shown_url) { fprintf(stderr, _("From %.*s\n"), url_len, url); shown_url = 1; } if (verbosity >= 0) fprintf(stderr, " %s\n", note.buf); } We no longer need to check for verbosity, right? Other than these two, I like the approach a lot.