Re: [Patch] Prevent cloning over http from spewing
- From
Jeff King <peff@peff.net>
- Date
- Jun 4, 2009, 16:01 UTC
- Message-ID
- <20090604160152.GA13984@sigill.intra.peff.net>
- In-Reply-To
- <be6fef0d0906040545j7bd754e0j2c60af833e2ac4a4@mail.gmail.com>
On Thu, Jun 04, 2009 at 08:45:28PM +0800, Tay Ray Chuan wrote:
Show 5 quoted lines
> I have a branch 'http-progress-indicators' at my repo > git://github.com/rctay/git.git. It contains a patch on walker.c that > updates the object total as the fetch goes along. The progress > indicator says "Processing targets:..." for lack of a better name; I'm > all for suggestions.
Thanks, I took a look at starting on a progress meter yesterday, but I do think it makes sense to integrate with the work you are doing.
I tried your http-progress-indicators branch. A few comments:
1. You still end up with a lot of lines of output. Some of those are
"Getting pack $x" which we can probably get rid of in non-verbose
mode. But we still get a different progress indicator line for each
fetched item, which can add up to quite a lot. I was thinking of
something likeFetching %s (got %d packs, %d loose): (%d/%d)
with the substitutions:
%s = "pack", "index", or "loose object"
%d packs, %d loose = a running count of how much we've gotten
%d/%d = current and total byte counts for what we are getting now and then you could keep everything on a single line. I don't think
is possible with the current progress code (it doesn't let you
restart the counter), but it should be easy with some tweaking. 2. The current progress code can also do throughput display, which
would be nice (see display_throughput in progress.[ch]). 3. Your implementation calls your get_http_file_size, which does a
separate HEAD request to get the content-length. Instead, do
a "curl_easy_setopt(slot->curl, CURLOPT_PROGRESSFUNCTION, ...)"
to set up a progress callback. Curl will call it with the total
number of bytes (from the content-length header of the actual GET
request) and the number of bytes currently downloaded.-Peff