From c8bae7493d2f2910b57f13ded012e86bdcfb0532 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 16:47:53 +0200 Subject: Adding upstream version 1:2.39.2. Signed-off-by: Daniel Baumann --- patch-ids.h | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 patch-ids.h (limited to 'patch-ids.h') diff --git a/patch-ids.h b/patch-ids.h new file mode 100644 index 0000000..490d739 --- /dev/null +++ b/patch-ids.h @@ -0,0 +1,47 @@ +#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 */ -- cgit v1.2.3