[PATCH v2 0/3] pack-objects: fix and simplify --filter handling
- From
René Scharfe <l.s.r@web.de>
- Date
- Nov 20, 2022, 10:03 UTC
- Message-ID
- <d19c6cb4-611f-afea-8a14-5e58d7509113@web.de>
- In-Reply-To
- <c64e4fa5-62c2-2a93-a4ef-bd84407ea570@web.de>
Fix a regression that prevents using multiple --filter options, simplify the option parsing code and avoid relying on undefined behavior in it.
Patch 3 conflicts with cc/filtered-repack in seen, but not semantically.
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 Revert "pack-objects: lazily set up "struct rev_info", don't leak"
builtin/pack-objects.c | 31 ++------- list-objects-filter-options.c | 4 -- list-objects-filter-options.h | 24 +------ t/t5317-pack-objects-filter-objects.sh | 90 +++++++++++++++++++------- 4 files changed, 75 insertions(+), 74 deletions(-)
Range-Diff gegen v1: 1: 2df1185b5f < -: ---------- pack-objects: fix handling of multiple --filter options 2: b8e951fb4f < -: ---------- pack-object: simplify --filter handling 3: 1e4ae7d9f1 < -: ---------- list-objects-filter: remove OPT_PARSE_LIST_OBJECTS_FILTER_INIT() -: ---------- > 1: 43af432f5c t5317: stop losing return codes of git ls-files -: ---------- > 2: a77b85e71d t5317: demonstrate failure to handle multiple --filter options -: ---------- > 3: 63ccb81357 Revert "pack-objects: lazily set up "struct rev_info", don't leak" -- 2.38.1