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 */
 |