Subject: [PATCH v3 0/6] Partial clone part 1: object filtering

From: Jeff Hostetler <[email-masked]>
Date: Tue, 7 Nov 2017 19:35:40 +0000

From: Jeff Hostetler <[email-masked]>

Here is V3 of the list-object filtering.  This addresses the
comments on the mailing list for the V2 series as well as the
various TODO items I left in the code.  I also documented some
of the bit flags and fields that I added.

In the blob size filter, I removed the ".git*" pattern matching
for special files.  I don't think we need it any more and it
simplifies the code.  This patch series does not support
traverse_bitmap_commit_list() and the --use-bitmap-index feature
in rev-list, but by removing the ".git*" pattern matching now
we should be able allow filtering and bitmaps to be used
together in a future effort.  (That is beyond the scope of
the current partial-clone effort.)

With this patch series, I think part 1 is complete unless there
are further comments or questions.

Jeff Hostetler (6):
  dir: allow exclusions from blob in addition to file
  oidmap: add oidmap iterator methods
  oidset: add iterator methods to oidset
  list-objects: filter objects in traverse_commit_list
  rev-list: add list-objects filtering support
  pack-objects: add list-objects filtering

 Documentation/git-pack-objects.txt     |  12 +-
 Documentation/git-rev-list.txt         |   6 +-
 Documentation/rev-list-options.txt     |  34 +++
 Makefile                               |   2 +
 builtin/pack-objects.c                 |  28 ++-
 builtin/rev-list.c                     |  75 +++++-
 dir.c                                  | 132 ++++++++---
 dir.h                                  |   3 +
 list-objects-filter-options.c          | 148 ++++++++++++
 list-objects-filter-options.h          |  50 ++++
 list-objects-filter.c                  | 401 +++++++++++++++++++++++++++++++++
 list-objects-filter.h                  |  77 +++++++
 list-objects.c                         |  95 ++++++--
 list-objects.h                         |  13 +-
 object.h                               |   1 +
 oidmap.h                               |  22 ++
 oidset.c                               |  10 +
 oidset.h                               |  36 +++
 t/t5317-pack-objects-filter-objects.sh | 369 ++++++++++++++++++++++++++++++
 t/t6112-rev-list-filters-objects.sh    | 225 ++++++++++++++++++
 20 files changed, 1686 insertions(+), 53 deletions(-)
 create mode 100644 list-objects-filter-options.c
 create mode 100644 list-objects-filter-options.h
 create mode 100644 list-objects-filter.c
 create mode 100644 list-objects-filter.h
 create mode 100755 t/t5317-pack-objects-filter-objects.sh
 create mode 100755 t/t6112-rev-list-filters-objects.sh

-- 
2.9.3