Re: [PATCH] fetch: skip formatting updated refs with `--quiet`
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Aug 25, 2021, 17:51 UTC
- Message-ID
- <xmqqv93tif9g.fsf@gitster.g>
- In-Reply-To
- <40c385048a023dbd447c5f0b4c95ff32485e1e23.1629906005.git.ps@pks.im>
Patrick Steinhardt <ps@pks.im> writes:
Show 10 quoted lines
> 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.