diff options
Diffstat (limited to 'src/fetch.c')
-rw-r--r-- | src/fetch.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/fetch.c b/src/fetch.c index 276591821..9ff95d935 100644 --- a/src/fetch.c +++ b/src/fetch.c @@ -42,8 +42,9 @@ static int maybe_want(git_remote *remote, git_remote_head *head, git_odb *odb, g return 0; /* If we have the object, mark it so we don't ask for it */ - if (git_odb_exists(odb, &head->oid)) + if (git_odb_exists(odb, &head->oid)) { head->local = 1; + } else remote->need_pack = 1; @@ -104,7 +105,9 @@ cleanup: int git_fetch_negotiate(git_remote *remote) { git_transport *t = remote->transport; - + + remote->need_pack = 0; + if (filter_wants(remote) < 0) { giterr_set(GITERR_NET, "Failed to filter the reference list for wants"); return -1; @@ -128,9 +131,9 @@ int git_fetch_download_pack(git_remote *remote) { git_transport *t = remote->transport; - if(!remote->need_pack) + if (!remote->need_pack) return 0; return t->download_pack(t, remote->repo, &remote->stats, - remote->callbacks.transfer_progress, remote->callbacks.payload); + remote->callbacks.transfer_progress, remote->callbacks.payload); } |