This implements the patch-id computation and recording library, patch-ids.c, and rewrites the get_patch_ids() function used in cherry and format-patch to use it, so that they do not pollute the object namespace. Earlier code threw non-objects into the in-core object database, and hoped for not getting bitten by SHA-1 collisions. While it may be practically Ok, it still was an ugly hack. Signed-off-by: Junio C Hamano <junkio@cox.net>
		
			
				
	
	
		
			22 lines
		
	
	
		
			490 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			22 lines
		
	
	
		
			490 B
		
	
	
	
		
			C
		
	
	
	
	
	
#ifndef PATCH_IDS_H
 | 
						|
#define PATCH_IDS_H
 | 
						|
 | 
						|
struct patch_id {
 | 
						|
	unsigned char patch_id[20];
 | 
						|
	char seen;
 | 
						|
};
 | 
						|
 | 
						|
struct patch_ids {
 | 
						|
	struct diff_options diffopts;
 | 
						|
	int nr, alloc;
 | 
						|
	struct patch_id **table;
 | 
						|
	struct patch_id_bucket *patches;
 | 
						|
};
 | 
						|
 | 
						|
int init_patch_ids(struct patch_ids *);
 | 
						|
int free_patch_ids(struct patch_ids *);
 | 
						|
struct patch_id *add_commit_patch_id(struct commit *, struct patch_ids *);
 | 
						|
struct patch_id *has_commit_patch_id(struct commit *, struct patch_ids *);
 | 
						|
 | 
						|
#endif /* PATCH_IDS_H */
 |