 cbe566a071
			
		
	
	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;
 | |
| 	}
 | |
| }
 |