Fix a regression that prevents using multiple --filter options, simplify the option parsing code and avoid relying on undefined behavior in it. Patch 4 conflicts with cc/filtered-repack in seen, but not semantically. Changes since v2: - Split the code changes up again like in v1; keep the separate test patches. Reverting 5cb28270a1 wholesale is too cumbersome. - Bring the dedicated list_objects_filter_options struct back. - Move the list_objects_filter_release() call to the cleanup section. Changes since v1: - Added patch 1 to fix an issue with existing tests. - Separate patch 2 for new tests. - Test using blob size filters, only, which is a bit simpler. - Test both combinations to also catch not just the current last-one-wins regression, but also a possible future first-one-wins issue. - Actually revert 5cb28270a1 (pack-objects: lazily set up "struct rev_info", don't leak, 2022-03-28) instead of having a minimal fix and then adding some kind of middle ground by using a separate struct list_objects_filter_options. t5317: stop losing return codes of git ls-files t5317: demonstrate failure to handle multiple --filter options pack-objects: fix handling of multiple --filter options pack-objects: simplify --filter handling list-objects-filter: remove OPT_PARSE_LIST_OBJECTS_FILTER_INIT() builtin/pack-objects.c | 27 ++------ list-objects-filter-options.c | 4 -- list-objects-filter-options.h | 18 +----- t/t5317-pack-objects-filter-objects.sh | 90 +++++++++++++++++++------- 4 files changed, 74 insertions(+), 65 deletions(-) Range-Diff gegen v2: 1: 955ec33c30 = 1: 955ec33c30 t5317: stop losing return codes of git ls-files 2: 966094ef98 = 2: 966094ef98 t5317: demonstrate failure to handle multiple --filter options 3: f5ba2a2f5e < -: ---------- Revert "pack-objects: lazily set up "struct rev_info", don't leak" -: ---------- > 3: d51424e8d1 pack-objects: fix handling of multiple --filter options -: ---------- > 4: e1fa0fcb1a pack-objects: simplify --filter handling -: ---------- > 5: 5865e24c04 list-objects-filter: remove OPT_PARSE_LIST_OBJECTS_FILTER_INIT() -- 2.38.1