git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH v3 0/5] pack-objects: fix and simplify --filter handling

From
René Scharfe <l.s.r@web.de>
Date
Nov 29, 2022, 12:19 UTC
Message-ID
<c2d3e7a3-599f-dae5-8dde-dc969df39f02@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 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

Previous: Jeff KingNext: René Scharfe
Message 42 of 52 in “pack-objects: fix and simplify --filter handling”
  1. 0/3 pack-objects: fix and simplify --filter handlingRené Scharfe, Nov 12, 2022
  2. 1/3 pack-objects: fix handling of multiple --filter optionsRené Scharfe, Nov 12, 2022
  3. Ævar Arnfjörð BjarmasonNov 12, 2022
  4. René ScharfeNov 13, 2022
  5. Jeff KingNov 12, 2022
  6. Taylor BlauNov 13, 2022
  7. Jeff KingNov 13, 2022
  8. René ScharfeNov 13, 2022
  9. 2/3 pack-object: simplify --filter handlingRené Scharfe, Nov 12, 2022
  10. Ævar Arnfjörð BjarmasonNov 12, 2022
  11. Jeff KingNov 12, 2022
  12. Jeff KingNov 13, 2022
  13. René ScharfeNov 13, 2022
  14. 3/3 list-objects-filter: remove OPT_PARSE_LIST_OBJECTS_FILTER_INIT()René Scharfe, Nov 12, 2022
  15. 0/3 pack-objects: fix and simplify --filter handlingRené Scharfe, Nov 20, 2022
  16. 2/3 t5317: demonstrate failure to handle multiple --filter optionsRené Scharfe, Nov 20, 2022
  17. 1/3 t5317: stop losing return codes of git ls-filesRené Scharfe, Nov 20, 2022
  18. 3/3 Revert "pack-objects: lazily set up "struct rev_info", don't leak"René Scharfe, Nov 20, 2022
  19. Junio C HamanoNov 28, 2022
  20. René ScharfeNov 28, 2022
  21. Ævar Arnfjörð BjarmasonNov 28, 2022
  22. Ævar Arnfjörð BjarmasonNov 28, 2022
  23. René ScharfeNov 28, 2022
  24. Ævar Arnfjörð BjarmasonNov 28, 2022
  25. René ScharfeNov 28, 2022
  26. Ævar Arnfjörð BjarmasonNov 28, 2022
  27. René ScharfeNov 28, 2022
  28. René ScharfeNov 28, 2022
  29. Ævar Arnfjörð BjarmasonNov 28, 2022
  30. René ScharfeNov 28, 2022
  31. Jeff KingNov 29, 2022
  32. Junio C HamanoNov 29, 2022
  33. Ævar Arnfjörð BjarmasonNov 29, 2022
  34. Ævar Arnfjörð BjarmasonNov 29, 2022
  35. René ScharfeNov 29, 2022
  36. Ævar Arnfjörð BjarmasonNov 28, 2022
  37. Ævar Arnfjörð BjarmasonNov 28, 2022
  38. t5314: check exit code of "rev-parse"Ævar Arnfjörð Bjarmason, Nov 28, 2022
  39. René ScharfeNov 28, 2022
  40. t5314: check exit code of "git"Ævar Arnfjörð Bjarmason, Nov 28, 2022
  41. Jeff KingNov 22, 2022
  42. 0/5 pack-objects: fix and simplify --filter handlingRené Scharfe, Nov 29, 2022
  43. 1/5 t5317: stop losing return codes of git ls-filesRené Scharfe, Nov 29, 2022
  44. 2/5 t5317: demonstrate failure to handle multiple --filter optionsRené Scharfe, Nov 29, 2022
  45. 3/5 pack-objects: fix handling of multiple --filter optionsRené Scharfe, Nov 29, 2022
  46. Junio C HamanoNov 30, 2022
  47. René ScharfeNov 30, 2022
  48. 4/5 pack-objects: simplify --filter handlingRené Scharfe, Nov 29, 2022
  49. Ævar Arnfjörð BjarmasonNov 29, 2022
  50. René ScharfeNov 30, 2022
  51. 5/5 list-objects-filter: remove OPT_PARSE_LIST_OBJECTS_FILTER_INIT()René Scharfe, Nov 29, 2022
  52. Junio C HamanoNov 30, 2022

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.