51276c1832
Git doesn't persist patch-ids during the rebase process, so there is no need to specifically invoke the unstable variant. Use the stable logic for all internal patch-id calculations to minimize the number of code paths and improve test coverage. Signed-off-by: Jerry Zhang <jerry@skydio.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
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 */
|