48 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C
		
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			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 init_patch_ids(struct repository *, struct patch_ids *);
 | 
						|
int free_patch_ids(struct patch_ids *);
 | 
						|
 | 
						|
/* Add a patch_id for a single commit to the set. */
 | 
						|
struct patch_id *add_commit_patch_id(struct commit *, struct patch_ids *);
 | 
						|
 | 
						|
/* Returns true if the patch-id of "commit" is present in the set. */
 | 
						|
int has_commit_patch_id(struct commit *commit, struct patch_ids *);
 | 
						|
 | 
						|
/*
 | 
						|
 * Iterate over all commits in the set whose patch id matches that of
 | 
						|
 * "commit", like:
 | 
						|
 *
 | 
						|
 *   struct patch_id *cur;
 | 
						|
 *   for (cur = patch_id_iter_first(commit, ids);
 | 
						|
 *        cur;
 | 
						|
 *        cur = patch_id_iter_next(cur, ids) {
 | 
						|
 *           ... look at cur->commit
 | 
						|
 *   }
 | 
						|
 */
 | 
						|
struct patch_id *patch_id_iter_first(struct commit *commit, struct patch_ids *);
 | 
						|
struct patch_id *patch_id_iter_next(struct patch_id *cur, struct patch_ids *);
 | 
						|
 | 
						|
#endif /* PATCH_IDS_H */
 |