mirror of
https://github.com/git/git.git
synced 2024-11-24 02:17:02 +08:00
cbe566a071
Add a noop fetch negotiator. This is introduced to allow partial clones to skip the unneeded negotiation step when fetching missing objects using a "git fetch" subprocess. (The implementation of spawning a "git fetch" subprocess will be done in a subsequent patch.) But this can also be useful for end users, e.g. as a blunt fix for object corruption. Signed-off-by: Jonathan Tan <jonathantanmy@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
27 lines
609 B
C
27 lines
609 B
C
#include "git-compat-util.h"
|
|
#include "fetch-negotiator.h"
|
|
#include "negotiator/default.h"
|
|
#include "negotiator/skipping.h"
|
|
#include "negotiator/noop.h"
|
|
#include "repository.h"
|
|
|
|
void fetch_negotiator_init(struct repository *r,
|
|
struct fetch_negotiator *negotiator)
|
|
{
|
|
prepare_repo_settings(r);
|
|
switch(r->settings.fetch_negotiation_algorithm) {
|
|
case FETCH_NEGOTIATION_SKIPPING:
|
|
skipping_negotiator_init(negotiator);
|
|
return;
|
|
|
|
case FETCH_NEGOTIATION_NOOP:
|
|
noop_negotiator_init(negotiator);
|
|
return;
|
|
|
|
case FETCH_NEGOTIATION_DEFAULT:
|
|
default:
|
|
default_negotiator_init(negotiator);
|
|
return;
|
|
}
|
|
}
|