Patrick Steinhardt <ps@xxxxxx> 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.