mirror of
https://github.com/git/git.git
synced 2024-11-18 22:14:34 +01:00
Merge branch 'rs/show-progress-in-dumb-http-fetch'
"git fetch" over HTTP walker protocol did not show any progress output. We inherently do not know how much work remains, but still we can show something not to bore users. * rs/show-progress-in-dumb-http-fetch: remote-curl: show progress for fetches over dumb HTTP
This commit is contained in:
commit
4a5c3e10f2
@ -1026,6 +1026,7 @@ static int fetch_dumb(int nr_heads, struct ref **to_fetch)
|
||||
|
||||
walker = get_http_walker(url.buf);
|
||||
walker->get_verbosely = options.verbosity >= 3;
|
||||
walker->get_progress = options.progress;
|
||||
walker->get_recover = 0;
|
||||
ret = walker_fetch(walker, nr_heads, targets, NULL, NULL);
|
||||
walker_free(walker);
|
||||
|
13
walker.c
13
walker.c
@ -8,6 +8,7 @@
|
||||
#include "tag.h"
|
||||
#include "blob.h"
|
||||
#include "refs.h"
|
||||
#include "progress.h"
|
||||
|
||||
static struct object_id current_commit_oid;
|
||||
|
||||
@ -162,6 +163,11 @@ static int process(struct walker *walker, struct object *obj)
|
||||
static int loop(struct walker *walker)
|
||||
{
|
||||
struct object_list *elem;
|
||||
struct progress *progress = NULL;
|
||||
uint64_t nr = 0;
|
||||
|
||||
if (walker->get_progress)
|
||||
progress = start_delayed_progress(_("Fetching objects"), 0);
|
||||
|
||||
while (process_queue) {
|
||||
struct object *obj = process_queue->item;
|
||||
@ -176,15 +182,20 @@ static int loop(struct walker *walker)
|
||||
*/
|
||||
if (! (obj->flags & TO_SCAN)) {
|
||||
if (walker->fetch(walker, obj->oid.hash)) {
|
||||
stop_progress(&progress);
|
||||
report_missing(obj);
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
if (!obj->type)
|
||||
parse_object(the_repository, &obj->oid);
|
||||
if (process_object(walker, obj))
|
||||
if (process_object(walker, obj)) {
|
||||
stop_progress(&progress);
|
||||
return -1;
|
||||
}
|
||||
display_progress(progress, ++nr);
|
||||
}
|
||||
stop_progress(&progress);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
1
walker.h
1
walker.h
@ -10,6 +10,7 @@ struct walker {
|
||||
int (*fetch)(struct walker *, unsigned char *sha1);
|
||||
void (*cleanup)(struct walker *);
|
||||
int get_verbosely;
|
||||
int get_progress;
|
||||
int get_recover;
|
||||
|
||||
int corrupt_object_found;
|
||||
|
Loading…
Reference in New Issue
Block a user