summaryrefslogtreecommitdiff
path: root/ref-filter.h
diff options
context:
space:
mode:
authorKarthik Nayak <karthik.188@gmail.com>2015-07-07 16:06:16 (GMT)
committerJunio C Hamano <gitster@pobox.com>2015-08-03 17:25:28 (GMT)
commitee2bd06b0f735a00ce0216ca1d3391b13722d987 (patch)
tree0f004ed7fdcf5f22ff234a83e4c07b214bbdfa98 /ref-filter.h
parentf266c9163b34ec55e453d27e1ed246d67ee3ced0 (diff)
downloadgit-ee2bd06b0f735a00ce0216ca1d3391b13722d987.zip
git-ee2bd06b0f735a00ce0216ca1d3391b13722d987.tar.gz
git-ee2bd06b0f735a00ce0216ca1d3391b13722d987.tar.bz2
ref-filter: implement '--contains' option
'tag -l' and 'branch -l' have two different ways of finding out if a certain ref contains a commit. Implement both these methods in ref-filter and give the caller of ref-filter API the option to pick which implementation to be used. 'branch -l' uses 'is_descendant_of()' from commit.c which is left as the default implementation to be used. 'tag -l' uses a more specific algorithm since ffc4b80. This implementation is used whenever the 'with_commit_tag_algo' bit is set in 'struct ref_filter'. Mentored-by: Christian Couder <christian.couder@gmail.com> Mentored-by: Matthieu Moy <matthieu.moy@grenoble-inp.fr> Signed-off-by: Karthik Nayak <karthik.188@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'ref-filter.h')
-rw-r--r--ref-filter.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/ref-filter.h b/ref-filter.h
index f115174..6bf27d8 100644
--- a/ref-filter.h
+++ b/ref-filter.h
@@ -44,6 +44,7 @@ struct ref_array {
struct ref_filter {
const char **name_patterns;
struct sha1_array points_at;
+ struct commit_list *with_commit;
enum {
REF_FILTER_MERGED_NONE = 0,
@@ -51,6 +52,8 @@ struct ref_filter {
REF_FILTER_MERGED_OMIT
} merge;
struct commit *merge_commit;
+
+ unsigned int with_commit_tag_algo : 1;
};
struct ref_filter_cbdata {