We weren't flushing the context each time we processed a hunk in the patch-id generation code in diff.c, but we were doing that when we generated "stable" patch-ids with the 'patch-id' tool. Let's port that similar logic over from patch-id.c into diff.c so we can get the same hash when we're generating patch-ids for 'format-patch --base=' types of command invocations. Cc: Xiaolong Ye <xiaolong.ye@intel.com> Signed-off-by: Stephen Boyd <sboyd@kernel.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
		
			
				
	
	
		
			30 lines
		
	
	
		
			704 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			30 lines
		
	
	
		
			704 B
		
	
	
	
		
			C
		
	
	
	
	
	
#ifndef PATCH_IDS_H
 | 
						|
#define PATCH_IDS_H
 | 
						|
 | 
						|
#include "diff.h"
 | 
						|
#include "hashmap.h"
 | 
						|
 | 
						|
struct commit;
 | 
						|
struct object_id;
 | 
						|
struct repository;
 | 
						|
 | 
						|
struct patch_id {
 | 
						|
	struct hashmap_entry ent;
 | 
						|
	struct object_id patch_id;
 | 
						|
	struct commit *commit;
 | 
						|
};
 | 
						|
 | 
						|
struct patch_ids {
 | 
						|
	struct hashmap patches;
 | 
						|
	struct diff_options diffopts;
 | 
						|
};
 | 
						|
 | 
						|
int commit_patch_id(struct commit *commit, struct diff_options *options,
 | 
						|
		    struct object_id *oid, int, int);
 | 
						|
int init_patch_ids(struct repository *, 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 */
 |