Merge branch 'dl/complete-cherry-pick-revert-skip'
[gitweb.git] / fetch-negotiator.c
index 5d283049f4ac0a1282db16dd9d61cffd2b9a53dd..0a1357dc9d55b34992ff5a6f65e3bdf77375465e 100644 (file)
@@ -2,13 +2,20 @@
 #include "fetch-negotiator.h"
 #include "negotiator/default.h"
 #include "negotiator/skipping.h"
+#include "repository.h"
 
-void fetch_negotiator_init(struct fetch_negotiator *negotiator,
-                          const char *algorithm)
+void fetch_negotiator_init(struct repository *r,
+                          struct fetch_negotiator *negotiator)
 {
-       if (algorithm && !strcmp(algorithm, "skipping")) {
+       prepare_repo_settings(r);
+       switch(r->settings.fetch_negotiation_algorithm) {
+       case FETCH_NEGOTIATION_SKIPPING:
                skipping_negotiator_init(negotiator);
                return;
+
+       case FETCH_NEGOTIATION_DEFAULT:
+       default:
+               default_negotiator_init(negotiator);
+               return;
        }
-       default_negotiator_init(negotiator);
 }