diff options
author | Karthik Nayak <karthik.188@gmail.com> | 2015-07-07 19:06:16 +0300 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2015-08-03 20:25:28 +0300 |
commit | ee2bd06b0f735a00ce0216ca1d3391b13722d987 (patch) | |
tree | 0f004ed7fdcf5f22ff234a83e4c07b214bbdfa98 /ref-filter.h | |
parent | f266c9163b34ec55e453d27e1ed246d67ee3ced0 (diff) |
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.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/ref-filter.h b/ref-filter.h index f1151749a8..6bf27d8bc4 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 { |