Merge branch 'js/partial-clone-connectivity-check'

During an initial "git clone --depth=..." partial clone, it is
pointless to spend cycles for a large portion of the connectivity
check that enumerates and skips promisor objects (which by
definition is all objects fetched from the other side).  This has
been optimized out.

* js/partial-clone-connectivity-check:
  t/perf: add perf script for partial clones
  clone: do faster object check for partial clones
This commit is contained in:
Junio C Hamano
2019-05-13 23:50:31 +09:00
4 changed files with 55 additions and 2 deletions

View File

@ -660,7 +660,8 @@ static void update_remote_refs(const struct ref *refs,
const char *branch_top,
const char *msg,
struct transport *transport,
int check_connectivity)
int check_connectivity,
int check_refs_only)
{
const struct ref *rm = mapped_refs;
@ -669,6 +670,7 @@ static void update_remote_refs(const struct ref *refs,
opt.transport = transport;
opt.progress = transport->progress;
opt.check_refs_only = !!check_refs_only;
if (check_connected(iterate_ref_map, &rm, &opt))
die(_("remote did not send all necessary objects"));
@ -1230,7 +1232,7 @@ int cmd_clone(int argc, const char **argv, const char *prefix)
update_remote_refs(refs, mapped_refs, remote_head_points_at,
branch_top.buf, reflog_msg.buf, transport,
!is_local);
!is_local, filter_options.choice);
update_head(our_head_points_at, remote_head, reflog_msg.buf);