[PATCH 01/12] check_everything_connected: always pass --quiet to rev-list
- From
Jeff King <peff@peff.net>
- Date
- Jul 15, 2016, 10:26 UTC
- Message-ID
- <20160715102628.GA19271@sigill.intra.peff.net>
- In-Reply-To
- <20160715102506.GA23164@sigill.intra.peff.net>
The check_everything_connected function takes a "quiet" parameter which does two things if non-zero:
1. redirect rev-list's stderr to /dev/null to avoid
showing errors to the user2. pass "--quiet" to rev-list
Item (1) is obviously useful. But item (2) is surprisingly not. For rev-list, "--quiet" does not have anything to do with chattiness on stderr; it tells rev-list not to bother writing the list of traversed objects to stdout, for efficiency. And since we always redirect rev-list's stdout to /dev/null in this function, there is no point in asking it to ever write anything to stdout.
The efficiency gains are modest; a best-of-five run of "git rev-list --objects --all" on linux.git dropped from 32.013s to 30.502s when adding "--quiet". That's only about 5%, but given how easy it is, it's worth doing.
Signed-off-by: Jeff King <peff@peff.net> --- connected.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/connected.c b/connected.c index bf1b12e..7560a31 100644 --- a/connected.c +++ b/connected.c @@ -56,8 +56,7 @@ static int check_everything_connected_real(sha1_iterate_fn fn, argv[ac++] = "--stdin"; argv[ac++] = "--not"; argv[ac++] = "--all"; - if (quiet) - argv[ac++] = "--quiet"; + argv[ac++] = "--quiet"; argv[ac] = NULL; rev_list.argv = argv;
-- 2.9.1.434.g748be50