Here is a first stab at composite filters. It does not actually support omits, but the biggest difficulties of the implementation are already addressed. So I decided to send out an early version to give interested people an idea of just what is needed to implement it, and then give them a chance to change my mind (Jonathan T. especially was concerned about code complexity). Thank you, Matthew DeVore (3): list-objects-filter: refactor into a context struct list-objects-filter-options: error is localizeable list-objects-filter: implement composite filters Documentation/rev-list-options.txt | 8 + contrib/completion/git-completion.bash | 2 +- list-objects-filter-options.c | 132 +++++++++++- list-objects-filter-options.h | 14 +- list-objects-filter.c | 272 ++++++++++++++++--------- list-objects-filter.h | 31 ++- list-objects.c | 45 ++-- t/t6112-rev-list-filters-objects.sh | 108 +++++++++- 8 files changed, 470 insertions(+), 142 deletions(-) -- 2.21.0