From: Jeff Hostetler <[email protected]>
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