ref-filter: allow merged and no-merged filters
Enable ref-filter to process multiple merged and no-merged filters, and extend functionality to git branch, git tag and git for-each-ref. This provides an easy way to check for branches that are "graduation candidates:" $ git branch --no-merged master --merged next If passed more than one merged (or more than one no-merged) filter, refs must be reachable from any one of the merged commits, and reachable from none of the no-merged commits. Signed-off-by: Aaron Lipman <alipman88@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
415af72b17
commit
21bf933928
12
ref-filter.h
12
ref-filter.h
@ -23,6 +23,9 @@
|
||||
#define FILTER_REFS_DETACHED_HEAD 0x0020
|
||||
#define FILTER_REFS_KIND_MASK (FILTER_REFS_ALL | FILTER_REFS_DETACHED_HEAD)
|
||||
|
||||
#define DO_MERGE_FILTER_UNREACHABLE 0
|
||||
#define DO_MERGE_FILTER_REACHABLE 1
|
||||
|
||||
struct atom_value;
|
||||
|
||||
struct ref_sorting {
|
||||
@ -54,13 +57,8 @@ struct ref_filter {
|
||||
struct oid_array points_at;
|
||||
struct commit_list *with_commit;
|
||||
struct commit_list *no_commit;
|
||||
|
||||
enum {
|
||||
REF_FILTER_MERGED_NONE = 0,
|
||||
REF_FILTER_MERGED_INCLUDE,
|
||||
REF_FILTER_MERGED_OMIT
|
||||
} merge;
|
||||
struct commit *merge_commit;
|
||||
struct commit_list *reachable_from;
|
||||
struct commit_list *unreachable_from;
|
||||
|
||||
unsigned int with_commit_tag_algo : 1,
|
||||
match_as_path : 1,
|
||||
|
Reference in New Issue
Block a user