diff options
author | Junio C Hamano <junkio@cox.net> | 2007-04-09 17:01:27 -0700 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2007-04-11 20:02:03 -0700 |
commit | 5d23e133d23bc9e26d6f23a4d136901e18e6ffba (patch) | |
tree | 7eccc9a29ba6f3a4fbdd83ae28965f3b00c65ec5 /patch-ids.h | |
parent | 199c45bf2b168cb8b2231e45f35e5fd588c2fc19 (diff) | |
download | git-5d23e133d23bc9e26d6f23a4d136901e18e6ffba.tar.gz |
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 <junkio@cox.net>
Diffstat (limited to 'patch-ids.h')
-rw-r--r-- | patch-ids.h | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/patch-ids.h b/patch-ids.h new file mode 100644 index 0000000000..c8c7ca110a --- /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 */ |