From 5d23e133d23bc9e26d6f23a4d136901e18e6ffba Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Mon, 9 Apr 2007 17:01:27 -0700 Subject: Refactor patch-id filtering out of git-cherry and git-format-patch. This implements the patch-id computation and recording library, patch-ids.c, and rewrites the get_patch_ids() function used in cherry and format-patch to use it, so that they do not pollute the object namespace. Earlier code threw non-objects into the in-core object database, and hoped for not getting bitten by SHA-1 collisions. While it may be practically Ok, it still was an ugly hack. Signed-off-by: Junio C Hamano --- patch-ids.h | 21 +++++++++++++++++++++ 1 file changed, 21 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 000000000..c8c7ca110 --- /dev/null +++ b/patch-ids.h @@ -0,0 +1,21 @@ +#ifndef PATCH_IDS_H +#define PATCH_IDS_H + +struct patch_id { + unsigned char patch_id[20]; + char seen; +}; + +struct patch_ids { + struct diff_options diffopts; + int nr, alloc; + struct patch_id **table; + struct patch_id_bucket *patches; +}; + +int init_patch_ids(struct patch_ids *); +int free_patch_ids(struct patch_ids *); +struct patch_id *add_commit_patch_id(struct commit *, struct patch_ids *); +struct patch_id *has_commit_patch_id(struct commit *, struct patch_ids *); + +#endif /* PATCH_IDS_H */ -- cgit v1.2.1