git/builtin
René Scharfe 0d5448a554 pack-objects: simplify --filter handling
pack-objects uses OPT_PARSE_LIST_OBJECTS_FILTER_INIT() to initialize the
a rev_info struct lazily before populating its filter member using the
--filter option values.  It tracks whether the initialization is needed
using the .have_revs member of the callback data.

There is a better way: Use a stand-alone list_objects_filter_options
struct and build a rev_info struct with its .filter member after option
parsing.  This allows using the simpler OPT_PARSE_LIST_OBJECTS_FILTER()
and getting rid of the extra callback mechanism.

Even simpler would be using a struct rev_info as before 5cb28270a1
(pack-objects: lazily set up "struct rev_info", don't leak, 2022-03-28),
but that would expose a memory leak caused by repo_init_revisions()
followed by release_revisions() without a setup_revisions() call in
between.

Using list_objects_filter_options also allows pushing the rev_info
struct into get_object_list(), where it arguably belongs. Either way,
this is all left for later.

Helped-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: René Scharfe <l.s.r@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2022-11-30 10:00:33 +09:00
..
add.c use child_process members "args" and "env" directly 2022-10-30 14:04:40 -04:00
am.c replace and remove run_command_v_opt() 2022-10-30 14:04:51 -04:00
annotate.c
apply.c
archive.c
bisect--helper.c replace and remove run_command_v_opt() 2022-10-30 14:04:51 -04:00
blame.c doc txt & -h consistency: make "annotate" consistent 2022-10-13 09:32:57 -07:00
branch.c Merge branch 'rj/branch-do-not-exit-with-minus-one-status' 2022-10-30 21:04:43 -04:00
bugreport.c doc txt & -h consistency: fix mismatching labels 2022-10-13 09:32:56 -07:00
bundle.c Merge branch 'ds/bundle-uri-3' 2022-10-30 21:04:44 -04:00
cat-file.c doc txt & -h consistency: add "-z" to cat-file "-h" 2022-10-13 09:32:55 -07:00
check-attr.c
check-ignore.c
check-mailmap.c
check-ref-format.c
checkout--worker.c
checkout-index.c
checkout.c
clean.c doc txt & -h consistency: use "[<label>...]" for "zero or more" 2022-10-13 09:32:57 -07:00
clone.c replace and remove run_command_v_opt() 2022-10-30 14:04:51 -04:00
column.c
commit-graph.c Merge branch 'ab/doc-synopsis-and-cmd-usage' 2022-10-28 11:26:54 -07:00
commit-tree.c doc txt & -h consistency: add missing options 2022-10-13 09:32:57 -07:00
commit.c Merge branch 'ab/doc-synopsis-and-cmd-usage' 2022-10-28 11:26:54 -07:00
config.c
count-objects.c
credential-cache--daemon.c doc txt & -h consistency: use "git foo" form, not "git-foo" 2022-10-13 09:32:57 -07:00
credential-cache.c
credential-store.c
credential.c
describe.c Merge branch 'ab/doc-synopsis-and-cmd-usage' 2022-10-28 11:26:54 -07:00
diagnose.c Merge branch 'ab/doc-synopsis-and-cmd-usage' 2022-10-28 11:26:54 -07:00
diff-files.c built-ins: consistently add "\n" between "usage" and options 2022-10-13 09:32:54 -07:00
diff-index.c doc txt & -h consistency: add missing options and labels 2022-10-13 09:32:56 -07:00
diff-tree.c doc txt & -h consistency: make "diff-tree" consistent 2022-10-13 09:32:57 -07:00
diff.c Merge branch 'ab/doc-synopsis-and-cmd-usage' 2022-10-28 11:26:54 -07:00
difftool.c replace and remove run_command_v_opt() 2022-10-30 14:04:51 -04:00
env--helper.c
fast-export.c
fast-import.c
fetch-pack.c
fetch.c Merge branch 'rs/no-more-run-command-v' 2022-11-08 17:15:12 -05:00
fmt-merge-msg.c
for-each-ref.c
for-each-repo.c doc txt & -h consistency: add or fix optional "--" syntax 2022-10-13 09:32:56 -07:00
fsck.c Merge branch 'ab/doc-synopsis-and-cmd-usage' 2022-10-28 11:26:54 -07:00
fsmonitor--daemon.c Merge branch 'ed/fsmonitor-on-networked-macos' 2022-10-17 14:56:31 -07:00
gc.c Merge branch 'rs/no-more-run-command-v' 2022-11-08 17:15:12 -05:00
get-tar-commit-id.c
grep.c
hash-object.c doc txt & -h consistency: add missing options 2022-10-13 09:32:57 -07:00
help.c Merge branch 'ab/doc-synopsis-and-cmd-usage' 2022-10-28 11:26:54 -07:00
hook.c
index-pack.c
init-db.c doc txt & -h consistency: add missing options 2022-10-13 09:32:57 -07:00
interpret-trailers.c doc txt & -h consistency: add missing options 2022-10-13 09:32:57 -07:00
log.c Merge branch 'tb/shortlog-group' 2022-10-30 21:04:42 -04:00
ls-files.c
ls-remote.c doc txt & -h consistency: add missing options and labels 2022-10-13 09:32:56 -07:00
ls-tree.c
mailinfo.c
mailsplit.c
merge-base.c doc txt & -h consistency: make output order consistent 2022-10-13 09:32:56 -07:00
merge-file.c
merge-index.c replace and remove run_command_v_opt() 2022-10-30 14:04:51 -04:00
merge-ours.c
merge-recursive.c
merge-tree.c merge-tree: support multiple batched merges with --stdin 2022-10-22 22:21:26 -07:00
merge.c use child_process members "args" and "env" directly 2022-10-30 14:04:40 -04:00
mktag.c
mktree.c
multi-pack-index.c
mv.c
name-rev.c
notes.c
pack-objects.c pack-objects: simplify --filter handling 2022-11-30 10:00:33 +09:00
pack-redundant.c doc txt & -h consistency: fix mismatching labels 2022-10-13 09:32:56 -07:00
pack-refs.c doc txt & -h consistency: add missing options and labels 2022-10-13 09:32:56 -07:00
patch-id.c builtin: patch-id: remove unused diff-tree prefix 2022-10-24 15:44:20 -07:00
prune-packed.c
prune.c
pull.c use child_process members "args" and "env" directly 2022-10-30 14:04:40 -04:00
push.c
range-diff.c
read-tree.c doc txt & -h consistency: make "read-tree" consistent 2022-10-13 09:32:56 -07:00
rebase.c Merge branch 'pw/rebase-reflog-fixes' 2022-10-30 21:04:43 -04:00
receive-pack.c
reflog.c
remote-ext.c
remote-fd.c
remote.c Merge branch 'rs/no-more-run-command-v' 2022-11-08 17:15:12 -05:00
repack.c Merge branch 'jk/repack-tempfile-cleanup' 2022-10-30 21:04:42 -04:00
replace.c
rerere.c doc txt & -h consistency: make "rerere" consistent 2022-10-13 09:32:56 -07:00
reset.c
rev-list.c doc txt & -h consistency: add or fix optional "--" syntax 2022-10-13 09:32:56 -07:00
rev-parse.c
revert.c doc txt & -h consistency: add missing options and labels 2022-10-13 09:32:56 -07:00
rm.c doc txt & -h consistency: add missing options 2022-10-13 09:32:57 -07:00
send-pack.c doc txt & -h consistency: add missing options and labels 2022-10-13 09:32:56 -07:00
shortlog.c shortlog: implement `--group=committer` in terms of `--group=<format>` 2022-10-24 14:48:05 -07:00
show-branch.c Merge branch 'ab/doc-synopsis-and-cmd-usage' 2022-10-28 11:26:54 -07:00
show-index.c
show-ref.c Merge branch 'ab/doc-synopsis-and-cmd-usage' 2022-10-28 11:26:54 -07:00
sparse-checkout.c doc txt & -h consistency: use "<options>", not "<options>..." 2022-10-13 09:32:55 -07:00
stash.c Merge branch 'ab/doc-synopsis-and-cmd-usage' 2022-10-28 11:26:54 -07:00
stripspace.c
submodule--helper.c Merge branch 'ab/run-hook-api-cleanup' 2022-10-27 14:51:53 -07:00
symbolic-ref.c Merge branch 'ab/doc-synopsis-and-cmd-usage' 2022-10-28 11:26:54 -07:00
tag.c doc txt & -h consistency: add missing options and labels 2022-10-13 09:32:56 -07:00
unpack-file.c doc txt & -h consistency: fix mismatching labels 2022-10-13 09:32:56 -07:00
unpack-objects.c
update-index.c update-index: drop unused argc from do_reupdate() 2022-10-17 21:24:03 -07:00
update-ref.c
update-server-info.c doc txt & -h consistency: add missing options and labels 2022-10-13 09:32:56 -07:00
upload-archive.c doc txt & -h consistency: fix mismatching labels 2022-10-13 09:32:56 -07:00
upload-pack.c doc txt & -h consistency: add missing options and labels 2022-10-13 09:32:56 -07:00
var.c
verify-commit.c doc txt & -h consistency: add missing options and labels 2022-10-13 09:32:56 -07:00
verify-pack.c doc txt & -h consistency: add or fix optional "--" syntax 2022-10-13 09:32:56 -07:00
verify-tag.c doc txt & -h consistency: add missing options and labels 2022-10-13 09:32:56 -07:00
worktree.c doc txt & -h consistency: make "worktree" consistent 2022-10-13 09:32:58 -07:00
write-tree.c