From: Jeff Hostetler <jeffhost@xxxxxxxxxxxxx> Here is V4 of the list-object filtering, rev-list, and pack-objects. This version addresses comments on the V3 version series. This version replaces the code to scan and reject the filter-spec for injection characters with a new hex-encoding technique. The purpose of this is only to guard against injection attacks containing characters like semicolon, quotes, spaces, and etc. when a filter-spec is handed to a subordinate command. It does not eliminate the need for the recipient to validate the contents. This version also combines the various command line flags for handling missing objects into a single --missing={error,print,allow-any} flag. 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 | 4 +- Documentation/rev-list-options.txt | 37 +++ Makefile | 2 + builtin/pack-objects.c | 64 +++++- builtin/rev-list.c | 108 ++++++++- dir.c | 132 ++++++++--- dir.h | 3 + list-objects-filter-options.c | 149 ++++++++++++ list-objects-filter-options.h | 57 +++++ 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 | 375 ++++++++++++++++++++++++++++++ t/t6112-rev-list-filters-objects.sh | 225 ++++++++++++++++++ 20 files changed, 1770 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