mbox series

[v1,0/5] Filter combination

Message ID cover.1558484115.git.matvore@google.com (mailing list archive)
Headers show
Series Filter combination | expand

Message

Matthew DeVore May 22, 2019, 12:21 a.m. UTC
This implements combining of filters. In any command which accepts the --filter
flag, this patch allows specifying multiple filter flags or using the
"combine:..." filter-spec form.

Combining filters means that only objects which are accepted by all filters get
shown or included.

Compared to the RFC version of this patch set, the following notable changes
and additions were made:

 - Simplification of the logic to execute combined filters.
 - Addition of test cases for existing logic and new logic.
 - Allowing to specify multiple --filter flags rather than requiring the
   combine: filter-spec form.
 - Require escaping a large number of reserved characters in "combine:..."
   filter specs in case we decide to do anything interesting with the filter
   language later.

Thank you,

Matthew DeVore (5):
  list-objects-filter: refactor into a context struct
  list-objects-filter-options: error is localizeable
  list-objects-filter: implement composite filters
  list-objects-filter-options: move error check up
  list-objects-filter-options: allow mult. --filter

 Documentation/rev-list-options.txt     |  14 ++
 builtin/fetch-pack.c                   |   5 +-
 builtin/rev-list.c                     |   5 +-
 contrib/completion/git-completion.bash |   2 +-
 fetch-pack.c                           |   5 +-
 list-objects-filter-options.c          | 252 +++++++++++++++++++++--
 list-objects-filter-options.h          |  17 +-
 list-objects-filter.c                  | 270 ++++++++++++++++---------
 list-objects-filter.h                  |  31 ++-
 list-objects.c                         |  45 ++---
 t/t5616-partial-clone.sh               |  19 ++
 t/t6112-rev-list-filters-objects.sh    | 193 +++++++++++++++++-
 transport.c                            |   5 +-
 upload-pack.c                          |  10 +-
 14 files changed, 708 insertions(+), 165 deletions(-)

Comments

Matthew DeVore June 6, 2019, 10:44 p.m. UTC | #1
If you are looking for the latest version of this patchset, it is here:

https://public-inbox.org/git/20190601003603.90794-1-matvore@google.com/

But also has these interdiffs:

https://public-inbox.org/git/20190604234951.GB43275@comcast.net/#t
https://public-inbox.org/git/20190603222247.GG4641@comcast.net/
https://public-inbox.org/git/20190604225921.GA43275@comcast.net/

Sorry for not making v2 a response in this thread. Later versions will be
posted as responses to v2 (the first link).