#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 *); /* 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 */