Merge branch 'ps/fetch-optim-with-commit-graph'
A couple of optimization to "git fetch". * ps/fetch-optim-with-commit-graph: fetch: skip computing output width when not printing anything fetch-pack: use commit-graph when computing cutoff
This commit is contained in:
commit
68fd3b35f7
@ -1094,12 +1094,15 @@ static int store_updated_refs(const char *raw_url, const char *remote_name,
|
||||
struct ref *rm;
|
||||
char *url;
|
||||
int want_status;
|
||||
int summary_width = transport_summary_width(ref_map);
|
||||
int summary_width = 0;
|
||||
|
||||
rc = open_fetch_head(&fetch_head);
|
||||
if (rc)
|
||||
return -1;
|
||||
|
||||
if (verbosity >= 0)
|
||||
summary_width = transport_summary_width(ref_map);
|
||||
|
||||
if (raw_url)
|
||||
url = transport_anonymize_url(raw_url);
|
||||
else
|
||||
@ -1345,7 +1348,6 @@ static int prune_refs(struct refspec *rs, struct ref *ref_map,
|
||||
int url_len, i, result = 0;
|
||||
struct ref *ref, *stale_refs = get_stale_heads(rs, ref_map);
|
||||
char *url;
|
||||
int summary_width = transport_summary_width(stale_refs);
|
||||
const char *dangling_msg = dry_run
|
||||
? _(" (%s will become dangling)")
|
||||
: _(" (%s has become dangling)");
|
||||
@ -1374,6 +1376,8 @@ static int prune_refs(struct refspec *rs, struct ref *ref_map,
|
||||
}
|
||||
|
||||
if (verbosity >= 0) {
|
||||
int summary_width = transport_summary_width(stale_refs);
|
||||
|
||||
for (ref = stale_refs; ref; ref = ref->next) {
|
||||
struct strbuf sb = STRBUF_INIT;
|
||||
if (!shown_url) {
|
||||
|
28
fetch-pack.c
28
fetch-pack.c
@ -696,26 +696,30 @@ static void mark_complete_and_common_ref(struct fetch_negotiator *negotiator,
|
||||
|
||||
trace2_region_enter("fetch-pack", "parse_remote_refs_and_find_cutoff", NULL);
|
||||
for (ref = *refs; ref; ref = ref->next) {
|
||||
struct object *o;
|
||||
struct commit *commit;
|
||||
|
||||
if (!has_object_file_with_flags(&ref->old_oid,
|
||||
commit = lookup_commit_in_graph(the_repository, &ref->old_oid);
|
||||
if (!commit) {
|
||||
struct object *o;
|
||||
|
||||
if (!has_object_file_with_flags(&ref->old_oid,
|
||||
OBJECT_INFO_QUICK |
|
||||
OBJECT_INFO_SKIP_FETCH_OBJECT))
|
||||
continue;
|
||||
o = parse_object(the_repository, &ref->old_oid);
|
||||
if (!o)
|
||||
continue;
|
||||
OBJECT_INFO_SKIP_FETCH_OBJECT))
|
||||
continue;
|
||||
o = parse_object(the_repository, &ref->old_oid);
|
||||
if (!o || o->type != OBJ_COMMIT)
|
||||
continue;
|
||||
|
||||
commit = (struct commit *)o;
|
||||
}
|
||||
|
||||
/*
|
||||
* We already have it -- which may mean that we were
|
||||
* in sync with the other side at some time after
|
||||
* that (it is OK if we guess wrong here).
|
||||
*/
|
||||
if (o->type == OBJ_COMMIT) {
|
||||
struct commit *commit = (struct commit *)o;
|
||||
if (!cutoff || cutoff < commit->date)
|
||||
cutoff = commit->date;
|
||||
}
|
||||
if (!cutoff || cutoff < commit->date)
|
||||
cutoff = commit->date;
|
||||
}
|
||||
trace2_region_leave("fetch-pack", "parse_remote_refs_and_find_cutoff", NULL);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user