git/builtin
Jeff King 7915691377 builtins: annotate always-empty prefix parameters
It's usually a bad idea for a builtin's cmd_foo() to ignore the "prefix"
argument it gets, as it needs to prepend that string when accessing any
paths given by the user.

But if a builtin does not ask for the git wrapper to run repository
setup (via the RUN_SETUP or RUN_SETUP_GENTLY flags), then we know the
prefix will always be NULL (it is adjusting for the chdir() done during
repo setup, but there cannot be one if we did not set up the repo). In
those cases it's OK to ignore "prefix", but it's worth annotating for a
few reasons:

  1. It serves as documentation to somebody reading the code about what
     we expect.

  2. If the flags in git.c ever change, the run-time assertion may help
     detect the problem (though only if the command is run from a
     subdirectory of the repository).

  3. It notes to the compiler that we are OK ignoring "prefix". In
     particular, this silences -Wunused-parameter. It _could_ also help
     the compiler generate better code (because it will know the prefix
     is NULL), but in practice this is quite unlikely to matter.

Note that I've only added this annotation to commands which triggered
-Wunused-parameter. It would be correct to add it to any builtin which
doesn't ask for RUN_SETUP, but most of the rest of them do the sensible
thing with "prefix" by passing it to parse_options(). So they're much
more likely to just work if they ever switched to RUN_SETUP, and aren't
worth annotating.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2023-03-28 14:11:24 -07:00
..
add.c add API: remove run_add_interactive() wrapper function 2023-02-06 15:03:34 -08:00
am.c Merge branch 'jc/gpg-lazy-init' 2023-03-17 14:03:10 -07:00
annotate.c
apply.c
archive.c parse-options: consistently allocate memory in fix_filename() 2023-03-06 13:14:45 -08:00
bisect.c Merge branch 'rj/bisect-already-used-branch' 2023-03-19 15:03:11 -07:00
blame.c cache.h: remove dependence on hex.h; make other files include it explicitly 2023-02-23 17:25:29 -08:00
branch.c Merge branch 'rj/branch-copy-and-rename' into maint-2.39 2023-02-14 14:15:55 -08:00
bugreport.c built-ins: use free() not UNLEAK() if trivial, rm dead code 2022-11-21 12:32:48 +09:00
bundle.c Merge branch 'jk/bundle-use-dash-for-stdfiles' 2023-03-19 15:03:12 -07:00
cat-file.c Merge branch 'jk/unused-post-2.39-part2' 2023-03-17 14:03:09 -07:00
check-attr.c attr: add flag --source to work with tree-ish 2023-01-14 08:49:55 -08:00
check-ignore.c cocci: apply "pending" index-compatibility to some "builtin/*.c" 2022-11-21 12:06:15 +09:00
check-mailmap.c ident.h: move ident-related declarations out of cache.h 2023-02-23 17:25:29 -08:00
check-ref-format.c builtins: annotate always-empty prefix parameters 2023-03-28 14:11:24 -07:00
checkout--worker.c alloc.h: move ALLOC_GROW() functions from cache.h 2023-02-23 17:25:28 -08:00
checkout-index.c cocci: apply "pending" index-compatibility to some "builtin/*.c" 2022-11-21 12:06:15 +09:00
checkout.c Merge branch 'jk/bundle-use-dash-for-stdfiles' 2023-03-19 15:03:12 -07:00
clean.c Merge branch 'ab/various-leak-fixes' 2023-02-22 14:55:45 -08:00
clone.c cache.h: remove dependence on hex.h; make other files include it explicitly 2023-02-23 17:25:29 -08:00
column.c
commit-graph.c replace-object.h: move read_replace_refs declaration from cache.h to here 2023-02-23 17:25:30 -08:00
commit-tree.c Merge branch 'jc/gpg-lazy-init' 2023-03-17 14:03:10 -07:00
commit.c Merge branch 'jc/gpg-lazy-init' 2023-03-17 14:03:10 -07:00
config.c ident.h: move ident-related declarations out of cache.h 2023-02-23 17:25:29 -08:00
count-objects.c for_each_object: mark unused callback parameters 2023-02-24 09:13:31 -08:00
credential-cache--daemon.c Merge branch 'en/header-cleanup' 2023-03-17 14:03:09 -07:00
credential-cache.c
credential-store.c
credential.c
describe.c cache.h: remove dependence on hex.h; make other files include it explicitly 2023-02-23 17:25:29 -08:00
diagnose.c Merge branch 'ab/doc-synopsis-and-cmd-usage' 2022-10-28 11:26:54 -07:00
diff-files.c cocci: apply "pending" index-compatibility to some "builtin/*.c" 2022-11-21 12:06:15 +09:00
diff-index.c cocci: apply "pending" index-compatibility to some "builtin/*.c" 2022-11-21 12:06:15 +09:00
diff-tree.c cache.h: remove dependence on hex.h; make other files include it explicitly 2023-02-23 17:25:29 -08:00
diff.c Merge branch 'ab/various-leak-fixes' 2022-12-14 15:55:46 +09:00
difftool.c cache.h: remove dependence on hex.h; make other files include it explicitly 2023-02-23 17:25:29 -08:00
fast-export.c cache.h: remove dependence on hex.h; make other files include it explicitly 2023-02-23 17:25:29 -08:00
fast-import.c fast-import: fix file access when run from subdir 2023-03-28 14:11:24 -07:00
fetch-pack.c Merge branch 'jk/fix-proto-downgrade-to-v0' 2023-03-28 10:51:52 -07:00
fetch.c Merge branch 'ew/fetch-no-write-fetch-head-fix' 2023-03-19 15:03:13 -07:00
fmt-merge-msg.c
for-each-ref.c
for-each-repo.c for-each-repo: interpolate repo path arguments 2022-11-14 22:39:25 -05:00
fsck.c Merge branch 'jk/unused-post-2.39-part2' 2023-03-17 14:03:09 -07:00
fsmonitor--daemon.c alloc.h: move ALLOC_GROW() functions from cache.h 2023-02-23 17:25:28 -08:00
gc.c Merge branch 'jk/unused-post-2.39-part2' 2023-03-17 14:03:09 -07:00
get-tar-commit-id.c builtins: annotate always-empty prefix parameters 2023-03-28 14:11:24 -07:00
grep.c cache.h: remove dependence on hex.h; make other files include it explicitly 2023-02-23 17:25:29 -08:00
hash-object.c cache.h: remove dependence on hex.h; make other files include it explicitly 2023-02-23 17:25:29 -08:00
help.c Merge branch 'ab/doc-synopsis-and-cmd-usage' 2022-10-28 11:26:54 -07:00
hook.c hook: support a --to-stdin=<path> option 2023-02-08 12:50:03 -08:00
index-pack.c replace-object.h: move read_replace_refs declaration from cache.h to here 2023-02-23 17:25:30 -08:00
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 'jk/format-patch-ignore-noprefix' 2023-03-21 14:18:55 -07:00
ls-files.c Merge branch 'aj/ls-files-format-fix' 2023-03-21 14:18:55 -07:00
ls-remote.c cache.h: remove dependence on hex.h; make other files include it explicitly 2023-02-23 17:25:29 -08:00
ls-tree.c cache.h: remove dependence on hex.h; make other files include it explicitly 2023-02-23 17:25:29 -08:00
mailinfo.c
mailsplit.c builtins: annotate always-empty prefix parameters 2023-03-28 14:11:24 -07:00
merge-base.c cache.h: remove dependence on hex.h; make other files include it explicitly 2023-02-23 17:25:29 -08:00
merge-file.c merge-file: fix memory leaks on error path 2022-07-01 11:43:43 -07:00
merge-index.c cache.h: remove dependence on hex.h; make other files include it explicitly 2023-02-23 17:25:29 -08:00
merge-ours.c cocci: apply "pending" index-compatibility to some "builtin/*.c" 2022-11-21 12:06:15 +09:00
merge-recursive.c
merge-tree.c cache.h: remove dependence on hex.h; make other files include it explicitly 2023-02-23 17:25:29 -08:00
merge.c Merge branch 'jc/gpg-lazy-init' 2023-03-17 14:03:10 -07:00
mktag.c builtins: always pass prefix to parse_options() 2023-03-28 14:11:24 -07:00
mktree.c cache.h: remove dependence on hex.h; make other files include it explicitly 2023-02-23 17:25:29 -08:00
multi-pack-index.c multi-pack-index: avoid writing to global in option callback 2022-10-06 09:56:51 -07:00
mv.c alloc.h: move ALLOC_GROW() functions from cache.h 2023-02-23 17:25:28 -08:00
name-rev.c cache.h: remove dependence on hex.h; make other files include it explicitly 2023-02-23 17:25:29 -08:00
notes.c Merge branch 'jk/unused-post-2.39-part2' 2023-03-17 14:03:09 -07:00
pack-objects.c Merge branch 'jk/unused-post-2.39-part2' 2023-03-17 14:03:09 -07:00
pack-redundant.c cache.h: remove dependence on hex.h; make other files include it explicitly 2023-02-23 17:25:29 -08:00
pack-refs.c doc txt & -h consistency: add missing options and labels 2022-10-13 09:32:56 -07:00
patch-id.c cache.h: remove dependence on hex.h; make other files include it explicitly 2023-02-23 17:25:29 -08:00
prune-packed.c
prune.c Merge branch 'jk/unused-post-2.39-part2' 2023-03-17 14:03:09 -07:00
pull.c Merge branch 'jc/gpg-lazy-init' 2023-03-17 14:03:10 -07:00
push.c Merge branch 'jc/gpg-lazy-init' 2023-03-17 14:03:10 -07:00
range-diff.c diff: factor out add_diff_options() 2022-12-02 08:25:29 +09:00
read-tree.c Merge branch 'en/header-cleanup' 2023-03-17 14:03:09 -07:00
rebase.c Merge branch 'jk/format-patch-ignore-noprefix' 2023-03-21 14:18:55 -07:00
receive-pack.c Merge branch 'ps/receive-pack-unlock-before-die' 2023-03-21 14:18:55 -07:00
reflog.c refs: unify parse_worktree_ref() and ref_type() 2022-09-19 11:11:11 -07:00
remote-ext.c builtins: annotate always-empty prefix parameters 2023-03-28 14:11:24 -07:00
remote-fd.c builtins: annotate always-empty prefix parameters 2023-03-28 14:11:24 -07:00
remote.c Merge branch 'rs/no-more-run-command-v' 2022-11-08 17:15:12 -05:00
repack.c Merge branch 'jk/unused-post-2.39-part2' 2023-03-17 14:03:09 -07:00
replace.c replace-object.h: move read_replace_refs declaration from cache.h to here 2023-02-23 17:25:30 -08:00
rerere.c diff: mark unused parameters in callbacks 2022-12-13 22:16:23 +09:00
reset.c Merge branch 'jk/bundle-use-dash-for-stdfiles' 2023-03-19 15:03:12 -07:00
rev-list.c Merge branch 'ew/fetch-hiderefs' 2023-03-17 14:03:10 -07:00
rev-parse.c cache.h: remove dependence on hex.h; make other files include it explicitly 2023-02-23 17:25:29 -08:00
revert.c builtins: always pass prefix to parse_options() 2023-03-28 14:11:24 -07:00
rm.c alloc.h: move ALLOC_GROW() functions from cache.h 2023-02-23 17:25:28 -08:00
send-pack.c Merge branch 'jk/fix-proto-downgrade-to-v0' 2023-03-28 10:51:52 -07:00
shortlog.c shortlog: implement --group=committer in terms of --group=<format> 2022-10-24 14:48:05 -07:00
show-branch.c cache.h: remove dependence on hex.h; make other files include it explicitly 2023-02-23 17:25:29 -08:00
show-index.c cache.h: remove dependence on hex.h; make other files include it explicitly 2023-02-23 17:25:29 -08:00
show-ref.c cache.h: remove dependence on hex.h; make other files include it explicitly 2023-02-23 17:25:29 -08:00
sparse-checkout.c sparse-checkout: avoid using internal API of unpack-trees, take 2 2023-02-27 08:29:51 -08:00
stash.c cache.h: remove dependence on hex.h; make other files include it explicitly 2023-02-23 17:25:29 -08:00
stripspace.c
submodule--helper.c Merge branch 'jk/unused-post-2.39-part2' 2023-03-17 14:03:09 -07:00
symbolic-ref.c Merge branch 'ab/doc-synopsis-and-cmd-usage' 2022-10-28 11:26:54 -07:00
tag.c Merge branch 'jk/bundle-use-dash-for-stdfiles' 2023-03-19 15:03:12 -07:00
unpack-file.c cache.h: remove dependence on hex.h; make other files include it explicitly 2023-02-23 17:25:29 -08:00
unpack-objects.c replace-object.h: move read_replace_refs declaration from cache.h to here 2023-02-23 17:25:30 -08:00
update-index.c cache.h: remove dependence on hex.h; make other files include it explicitly 2023-02-23 17:25:29 -08: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 builtins: annotate always-empty prefix parameters 2023-03-28 14:11:24 -07:00
upload-pack.c replace-object.h: move read_replace_refs declaration from cache.h to here 2023-02-23 17:25:30 -08:00
var.c ident.h: move ident-related declarations out of cache.h 2023-02-23 17:25:29 -08:00
verify-commit.c drop pure pass-through config callbacks 2023-02-27 08:00:39 -08:00
verify-pack.c doc txt & -h consistency: add or fix optional "--" syntax 2022-10-13 09:32:56 -07:00
verify-tag.c drop pure pass-through config callbacks 2023-02-27 08:00:39 -08:00
worktree.c cache.h: remove dependence on hex.h; make other files include it explicitly 2023-02-23 17:25:29 -08:00
write-tree.c cache.h: remove dependence on hex.h; make other files include it explicitly 2023-02-23 17:25:29 -08:00