Remove any references that are available from the remote from the sought list (rather than overwriting their names with NUL characters, as previously). Mark matching entries by writing a non-NULL pointer to string_list_item::util during the iteration, then use filter_string_list() later to filter out the entries that have been marked. Document this aspect of fetch_pack() in a comment in the header file. (More documentation is obviously still needed.) Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu> Signed-off-by: Junio C Hamano <gitster@pobox.com>
		
			
				
	
	
		
			37 lines
		
	
	
		
			866 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
		
			866 B
		
	
	
	
		
			C
		
	
	
	
	
	
#ifndef FETCH_PACK_H
 | 
						|
#define FETCH_PACK_H
 | 
						|
 | 
						|
#include "string-list.h"
 | 
						|
 | 
						|
struct fetch_pack_args {
 | 
						|
	const char *uploadpack;
 | 
						|
	int unpacklimit;
 | 
						|
	int depth;
 | 
						|
	unsigned quiet:1,
 | 
						|
		keep_pack:1,
 | 
						|
		lock_pack:1,
 | 
						|
		use_thin_pack:1,
 | 
						|
		fetch_all:1,
 | 
						|
		stdin_refs:1,
 | 
						|
		verbose:1,
 | 
						|
		no_progress:1,
 | 
						|
		include_tag:1,
 | 
						|
		stateless_rpc:1;
 | 
						|
};
 | 
						|
 | 
						|
/*
 | 
						|
 * sought contains the full names of remote references that should be
 | 
						|
 * updated from.  On return, the names that were found on the remote
 | 
						|
 * will have been removed from the list.  The util members of the
 | 
						|
 * string_list_items are used internally; they must be NULL on entry
 | 
						|
 * (and will be NULL on exit).
 | 
						|
 */
 | 
						|
struct ref *fetch_pack(struct fetch_pack_args *args,
 | 
						|
		       int fd[], struct child_process *conn,
 | 
						|
		       const struct ref *ref,
 | 
						|
		       const char *dest,
 | 
						|
		       struct string_list *sought,
 | 
						|
		       char **pack_lockfile);
 | 
						|
 | 
						|
#endif
 |