On Thu, Jun 04, 2009 at 08:45:28PM +0800, Tay Ray Chuan wrote: > 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 like Fetching %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 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html