Add repository parameter to builtins
cover Add repository parameter to builtins
As part of the effort to remove global state of the_repository, add a repository parameter to builtins so that a repository variable can be passed down. The patches are ordered as follows:
1. Changes the signature of builtins and passes the_repository down in git.c to be called by all builtins.
2. Remove USE_THE_REPOSITORY_VARIABLE from builtin.h, and instead add it to each individual builtin. This paves the way for a migration process whereby each builtin can be migrated away from using the_repository.
3. As an example, migrate builtin/add.c to get rid of the_repository by instead passing the repository argument down into helper functions.
John Cai (3):
builtin: add a repository parameter for builtin functions
builtin: remove USE_THE_REPOSITORY_VARIABLE from builtin.h
add: pass in repo variable instead of global the_repository
builtin.h | 285 ++++++++++++++--------------- builtin/add.c | 99 +++++----- builtin/am.c | 3 +- builtin/annotate.c | 4 +- builtin/apply.c | 3 +- builtin/archive.c | 3 +- builtin/bisect.c | 3 +- builtin/blame.c | 4 +- builtin/branch.c | 5 +- builtin/bugreport.c | 3 +- builtin/bundle.c | 3 +- builtin/cat-file.c | 7 +- builtin/check-attr.c | 3 +- builtin/check-ignore.c | 3 +- builtin/check-mailmap.c | 3 +- builtin/check-ref-format.c | 2 +- builtin/checkout--worker.c | 3 +- builtin/checkout-index.c | 3 +- builtin/checkout.c | 7 +- builtin/clean.c | 4 +- builtin/clone.c | 5 +- builtin/column.c | 4 +- builtin/commit-graph.c | 3 +- builtin/commit-tree.c | 3 +- builtin/commit.c | 9 +- builtin/config.c | 3 +- builtin/count-objects.c | 4 +- builtin/credential-cache--daemon.c | 5 +- builtin/credential-cache.c | 2 +- builtin/credential-store.c | 3 +- builtin/credential.c | 4 +- builtin/describe.c | 5 +- builtin/diagnose.c | 2 +- builtin/diff-files.c | 3 +- builtin/diff-index.c | 3 +- builtin/diff-tree.c | 3 +- builtin/diff.c | 5 +- builtin/difftool.c | 5 +- builtin/fast-export.c | 4 +- builtin/fast-import.c | 3 +- builtin/fetch-pack.c | 3 +- builtin/fetch.c | 3 +- builtin/fmt-merge-msg.c | 3 +- builtin/for-each-ref.c | 3 +- builtin/for-each-repo.c | 3 +- builtin/fsck.c | 3 +- builtin/fsmonitor--daemon.c | 5 +- builtin/gc.c | 6 +- builtin/get-tar-commit-id.c | 2 +- builtin/grep.c | 3 +- builtin/hash-object.c | 4 +- builtin/help.c | 4 +- builtin/hook.c | 3 +- builtin/index-pack.c | 3 +- builtin/init-db.c | 2 +- builtin/interpret-trailers.c | 4 +- builtin/log.c | 13 +- builtin/ls-files.c | 3 +- builtin/ls-remote.c | 3 +- builtin/ls-tree.c | 4 +- builtin/mailinfo.c | 2 +- builtin/mailsplit.c | 2 +- builtin/merge-base.c | 3 +- builtin/merge-file.c | 3 +- builtin/merge-index.c | 3 +- builtin/merge-ours.c | 3 +- builtin/merge-recursive.c | 3 +- builtin/merge-tree.c | 3 +- builtin/merge.c | 9 +- builtin/mktag.c | 3 +- builtin/mktree.c | 4 +- builtin/multi-pack-index.c | 3 +- builtin/mv.c | 3 +- builtin/name-rev.c | 3 +- builtin/notes.c | 4 +- builtin/pack-objects.c | 3 +- builtin/pack-redundant.c | 3 +- builtin/pack-refs.c | 3 +- builtin/patch-id.c | 3 +- builtin/prune-packed.c | 2 +- builtin/prune.c | 3 +- builtin/pull.c | 3 +- builtin/push.c | 3 +- builtin/range-diff.c | 3 +- builtin/read-tree.c | 4 +- builtin/rebase.c | 5 +- builtin/receive-pack.c | 3 +- builtin/reflog.c | 7 +- builtin/refs.c | 3 +- builtin/remote-ext.c | 2 +- builtin/remote-fd.c | 2 +- builtin/remote.c | 3 +- builtin/repack.c | 3 +- builtin/replace.c | 3 +- builtin/replay.c | 3 +- builtin/rerere.c | 3 +- builtin/reset.c | 5 +- builtin/rev-list.c | 3 +- builtin/rev-parse.c | 5 +- builtin/revert.c | 5 +- builtin/rm.c | 4 +- builtin/send-pack.c | 3 +- builtin/shortlog.c | 3 +- builtin/show-branch.c | 3 +- builtin/show-index.c | 3 +- builtin/show-ref.c | 3 +- builtin/sparse-checkout.c | 3 +- builtin/stash.c | 3 +- builtin/stripspace.c | 3 +- builtin/submodule--helper.c | 3 +- builtin/symbolic-ref.c | 3 +- builtin/tag.c | 5 +- builtin/unpack-file.c | 3 +- builtin/unpack-objects.c | 3 +- builtin/update-index.c | 3 +- builtin/update-ref.c | 3 +- builtin/update-server-info.c | 3 +- builtin/upload-archive.c | 5 +- builtin/upload-pack.c | 2 +- builtin/var.c | 4 +- builtin/verify-commit.c | 3 +- builtin/verify-pack.c | 3 +- builtin/verify-tag.c | 4 +- builtin/worktree.c | 3 +- builtin/write-tree.c | 4 +- commit.h | 3 +- git.c | 14 +- help.c | 3 +- 128 files changed, 477 insertions(+), 366 deletions(-)
base-commit: 4590f2e9412378c61eac95966709c78766d326ba
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-git-1778%2Fjohn-cai%2Fjc%2Fadd-the-repository-to-builtin-signature-v1
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-git-1778/john-cai/jc/add-the-repository-to-builtin-signature-v1
Pull-Request: https://github.com/git/git/pull/1778
Signature · 1 line
gitgitgadget
PATCH 1/3 builtin: add a repository parameter for builtin functions
From: John Cai <[email protected]>
In order to reduce the usage of the global the_repository, add a parameter to builtin functions that will get passed a repository variable.
This commit uses UNUSED on most of the builtin functions, as subsequent commits will modify the actual builtins to pass the repository parameter down.
--- builtin.h | 277 +++++++++++++++-------------- builtin/add.c | 2 +- builtin/am.c | 2 +- builtin/annotate.c | 4 +- builtin/apply.c | 2 +- builtin/archive.c | 2 +- builtin/bisect.c | 2 +- builtin/blame.c | 2 +- builtin/branch.c | 2 +- builtin/bugreport.c | 2 +- builtin/bundle.c | 2 +- builtin/cat-file.c | 4 +- builtin/check-attr.c | 2 +- builtin/check-ignore.c | 2 +- builtin/check-mailmap.c | 2 +- builtin/check-ref-format.c | 2 +- builtin/checkout--worker.c | 2 +- builtin/checkout-index.c | 2 +- builtin/checkout.c | 6 +- builtin/clean.c | 2 +- builtin/clone.c | 2 +- builtin/column.c | 2 +- builtin/commit-graph.c | 2 +- builtin/commit-tree.c | 2 +- builtin/commit.c | 4 +- builtin/config.c | 2 +- builtin/count-objects.c | 2 +- builtin/credential-cache--daemon.c | 4 +- builtin/credential-cache.c | 2 +- builtin/credential-store.c | 2 +- builtin/credential.c | 2 +- builtin/describe.c | 4 +- builtin/diagnose.c | 2 +- builtin/diff-files.c | 2 +- builtin/diff-index.c | 2 +- builtin/diff-tree.c | 2 +- builtin/diff.c | 2 +- builtin/difftool.c | 2 +- builtin/fast-export.c | 2 +- builtin/fast-import.c | 2 +- builtin/fetch-pack.c | 2 +- builtin/fetch.c | 2 +- builtin/fmt-merge-msg.c | 2 +- builtin/for-each-ref.c | 2 +- builtin/for-each-repo.c | 2 +- builtin/fsck.c | 2 +- builtin/fsmonitor--daemon.c | 4 +- builtin/gc.c | 4 +- builtin/get-tar-commit-id.c | 2 +- builtin/grep.c | 2 +- builtin/hash-object.c | 2 +- builtin/help.c | 2 +- builtin/hook.c | 2 +- builtin/index-pack.c | 2 +- builtin/init-db.c | 2 +- builtin/interpret-trailers.c | 2 +- builtin/log.c | 12 +- builtin/ls-files.c | 2 +- builtin/ls-remote.c | 2 +- builtin/ls-tree.c | 2 +- builtin/mailinfo.c | 2 +- builtin/mailsplit.c | 2 +- builtin/merge-base.c | 2 +- builtin/merge-file.c | 2 +- builtin/merge-index.c | 2 +- builtin/merge-ours.c | 2 +- builtin/merge-recursive.c | 2 +- builtin/merge-tree.c | 2 +- builtin/merge.c | 6 +- builtin/mktag.c | 2 +- builtin/mktree.c | 2 +- builtin/multi-pack-index.c | 2 +- builtin/mv.c | 2 +- builtin/name-rev.c | 2 +- builtin/notes.c | 2 +- builtin/pack-objects.c | 2 +- builtin/pack-redundant.c | 2 +- builtin/pack-refs.c | 2 +- builtin/patch-id.c | 2 +- builtin/prune-packed.c | 2 +- builtin/prune.c | 2 +- builtin/pull.c | 2 +- builtin/push.c | 2 +- builtin/range-diff.c | 2 +- builtin/read-tree.c | 2 +- builtin/rebase.c | 2 +- builtin/receive-pack.c | 2 +- builtin/reflog.c | 6 +- builtin/refs.c | 2 +- builtin/remote-ext.c | 2 +- builtin/remote-fd.c | 2 +- builtin/remote.c | 2 +- builtin/repack.c | 2 +- builtin/replace.c | 2 +- builtin/replay.c | 2 +- builtin/rerere.c | 2 +- builtin/reset.c | 2 +- builtin/rev-list.c | 2 +- builtin/rev-parse.c | 2 +- builtin/revert.c | 4 +- builtin/rm.c | 2 +- builtin/send-pack.c | 2 +- builtin/shortlog.c | 2 +- builtin/show-branch.c | 2 +- builtin/show-index.c | 2 +- builtin/show-ref.c | 2 +- builtin/sparse-checkout.c | 2 +- builtin/stash.c | 2 +- builtin/stripspace.c | 2 +- builtin/submodule--helper.c | 2 +- builtin/symbolic-ref.c | 2 +- builtin/tag.c | 2 +- builtin/unpack-file.c | 2 +- builtin/unpack-objects.c | 2 +- builtin/update-index.c | 2 +- builtin/update-ref.c | 2 +- builtin/update-server-info.c | 2 +- builtin/upload-archive.c | 4 +- builtin/upload-pack.c | 2 +- builtin/var.c | 2 +- builtin/verify-commit.c | 2 +- builtin/verify-pack.c | 2 +- builtin/verify-tag.c | 2 +- builtin/worktree.c | 2 +- builtin/write-tree.c | 2 +- git.c | 14 +- help.c | 3 +- 127 files changed, 293 insertions(+), 289 deletions(-)
builtin.h +139 -138
@@ -10,6 +10,7 @@#define USE_THE_REPOSITORY_VARIABLE #include "git-compat-util.h" +#include "repository.h" /* * builtin API
@@ -122,143 +123,143 @@ int is_builtin(const char *s);BUG ("unexpected prefix in builtin: %s" , (prefix)); \ } while (0) -int cmd_add(int argc, const char **argv, const char *prefix); -int cmd_am (int argc,const char **argv,const char *prefix); -int cmd_annotate (int argc,const char **argv,const char *prefix); -int cmd_apply (int argc,const char **argv,const char *prefix); -int cmd_archive (int argc,const char **argv,const char *prefix); -int cmd_bisect (int argc,const char **argv,const char *prefix); -int cmd_blame (int argc,const char **argv,const char *prefix); -int cmd_branch (int argc,const char **argv,const char *prefix); -int cmd_bugreport (int argc,const char **argv,const char *prefix); -int cmd_bundle (int argc,const char **argv,const char *prefix); -int cmd_cat_file (int argc,const char **argv,const char *prefix); -int cmd_checkout (int argc,const char **argv,const char *prefix); -int cmd_checkout__worker (int argc,const char **argv,const char *prefix); -int cmd_checkout_index (int argc,const char **argv,const char *prefix); -int cmd_check_attr (int argc,const char **argv,const char *prefix); -int cmd_check_ignore (int argc,const char **argv,const char *prefix); -int cmd_check_mailmap (int argc,const char **argv,const char *prefix); -int cmd_check_ref_format (int argc,const char **argv,const char *prefix); -int cmd_cherry (int argc,const char **argv,const char *prefix); -int cmd_cherry_pick (int argc,const char **argv,const char *prefix); -int cmd_clone (int argc,const char **argv,const char *prefix); -int cmd_clean (int argc,const char **argv,const char *prefix); -int cmd_column (int argc,const char **argv,const char *prefix); -int cmd_commit (int argc,const char **argv,const char *prefix); -int cmd_commit_graph (int argc,const char **argv,const char *prefix); -int cmd_commit_tree (int argc,const char **argv,const char *prefix); -int cmd_config (int argc,const char **argv,const char *prefix); -int cmd_count_objects (int argc,const char **argv,const char *prefix); -int cmd_credential (int argc,const char **argv,const char *prefix); -int cmd_credential_cache (int argc,const char **argv,const char *prefix); -int cmd_credential_cache_daemon (int argc,const char **argv,const char *prefix); -int cmd_credential_store (int argc,const char **argv,const char *prefix); -int cmd_describe (int argc,const char **argv,const char *prefix); -int cmd_diagnose (int argc,const char **argv,const char *prefix); -int cmd_diff_files (int argc,const char **argv,const char *prefix); -int cmd_diff_index (int argc,const char **argv,const char *prefix); -int cmd_diff (int argc,const char **argv,const char *prefix); -int cmd_diff_tree (int argc,const char **argv,const char *prefix); -int cmd_difftool (int argc,const char **argv,const char *prefix); -int cmd_env__helper (int argc,const char **argv,const char *prefix); -int cmd_fast_export (int argc,const char **argv,const char *prefix); -int cmd_fast_import (int argc,const char **argv,const char *prefix); -int cmd_fetch (int argc,const char **argv,const char *prefix); -int cmd_fetch_pack (int argc,const char **argv,const char *prefix); -int cmd_fmt_merge_msg (int argc,const char **argv,const char *prefix); -int cmd_for_each_ref (int argc,const char **argv,const char *prefix); -int cmd_for_each_repo (int argc,const char **argv,const char *prefix); -int cmd_format_patch (int argc,const char **argv,const char *prefix); -int cmd_fsck (int argc,const char **argv,const char *prefix); -int cmd_fsmonitor__daemon (int argc,const char **argv,const char *prefix); -int cmd_gc (int argc,const char **argv,const char *prefix); -int cmd_get_tar_commit_id (int argc,const char **argv,const char *prefix); -int cmd_grep (int argc,const char **argv,const char *prefix); -int cmd_hash_object (int argc,const char **argv,const char *prefix); -int cmd_help (int argc,const char **argv,const char *prefix); -int cmd_hook (int argc,const char **argv,const char *prefix); -int cmd_index_pack (int argc,const char **argv,const char *prefix); -int cmd_init_db (int argc,const char **argv,const char *prefix); -int cmd_interpret_trailers (int argc,const char **argv,const char *prefix); -int cmd_log (int argc,const char **argv,const char *prefix); -int cmd_log_reflog (int argc,const char **argv,const char *prefix); -int cmd_ls_files (int argc,const char **argv,const char *prefix); -int cmd_ls_tree (int argc,const char **argv,const char *prefix); -int cmd_ls_remote (int argc,const char **argv,const char *prefix); -int cmd_mailinfo (int argc,const char **argv,const char *prefix); -int cmd_mailsplit (int argc,const char **argv,const char *prefix); -int cmd_maintenance (int argc,const char **argv,const char *prefix); -int cmd_merge (int argc,const char **argv,const char *prefix); -int cmd_merge_base (int argc,const char **argv,const char *prefix); -int cmd_merge_index (int argc,const char **argv,const char *prefix); -int cmd_merge_ours (int argc,const char **argv,const char *prefix); -int cmd_merge_file (int argc,const char **argv,const char *prefix); -int cmd_merge_recursive (int argc,const char **argv,const char *prefix); -int cmd_merge_tree (int argc,const char **argv,const char *prefix); -int cmd_mktag (int argc,const char **argv,const char *prefix); -int cmd_mktree (int argc,const char **argv,const char *prefix); -int cmd_multi_pack_index (int argc,const char **argv,const char *prefix); -int cmd_mv (int argc,const char **argv,const char *prefix); -int cmd_name_rev (int argc,const char **argv,const char *prefix); -int cmd_notes (int argc,const char **argv,const char *prefix); -int cmd_pack_objects (int argc,const char **argv,const char *prefix); -int cmd_pack_redundant (int argc,const char **argv,const char *prefix); -int cmd_patch_id (int argc,const char **argv,const char *prefix); -int cmd_prune (int argc,const char **argv,const char *prefix); -int cmd_prune_packed (int argc,const char **argv,const char *prefix); -int cmd_pull (int argc,const char **argv,const char *prefix); -int cmd_push (int argc,const char **argv,const char *prefix); -int cmd_range_diff (int argc,const char **argv,const char *prefix); -int cmd_read_tree (int argc,const char **argv,const char *prefix); -int cmd_rebase (int argc,const char **argv,const char *prefix); -int cmd_rebase__interactive (int argc,const char **argv,const char *prefix); -int cmd_receive_pack (int argc,const char **argv,const char *prefix); -int cmd_reflog (int argc,const char **argv,const char *prefix); -int cmd_refs (int argc,const char **argv,const char *prefix); -int cmd_remote (int argc,const char **argv,const char *prefix); -int cmd_remote_ext (int argc,const char **argv,const char *prefix); -int cmd_remote_fd (int argc,const char **argv,const char *prefix); -int cmd_repack (int argc,const char **argv,const char *prefix); -int cmd_replay (int argc,const char **argv,const char *prefix); -int cmd_rerere (int argc,const char **argv,const char *prefix); -int cmd_reset (int argc,const char **argv,const char *prefix); -int cmd_restore (int argc,const char **argv,const char *prefix); -int cmd_rev_list (int argc,const char **argv,const char *prefix); -int cmd_rev_parse (int argc,const char **argv,const char *prefix); -int cmd_revert (int argc,const char **argv,const char *prefix); -int cmd_rm (int argc,const char **argv,const char *prefix); -int cmd_send_pack (int argc,const char **argv,const char *prefix); -int cmd_shortlog (int argc,const char **argv,const char *prefix); -int cmd_show (int argc,const char **argv,const char *prefix); -int cmd_show_branch (int argc,const char **argv,const char *prefix); -int cmd_show_index (int argc,const char **argv,const char *prefix); -int cmd_sparse_checkout (int argc,const char **argv,const char *prefix); -int cmd_status (int argc,const char **argv,const char *prefix); -int cmd_stash (int argc,const char **argv,const char *prefix); -int cmd_stripspace (int argc,const char **argv,const char *prefix); -int cmd_submodule__helper (int argc,const char **argv,const char *prefix); -int cmd_switch (int argc,const char **argv,const char *prefix); -int cmd_symbolic_ref (int argc,const char **argv,const char *prefix); -int cmd_tag (int argc,const char **argv,const char *prefix); -int cmd_unpack_file (int argc,const char **argv,const char *prefix); -int cmd_unpack_objects (int argc,const char **argv,const char *prefix); -int cmd_update_index (int argc,const char **argv,const char *prefix); -int cmd_update_ref (int argc,const char **argv,const char *prefix); -int cmd_update_server_info (int argc,const char **argv,const char *prefix); -int cmd_upload_archive (int argc,const char **argv,const char *prefix); -int cmd_upload_archive_writer (int argc,const char **argv,const char *prefix); -int cmd_upload_pack (int argc,const char **argv,const char *prefix); -int cmd_var (int argc,const char **argv,const char *prefix); -int cmd_verify_commit (int argc,const char **argv,const char *prefix); -int cmd_verify_tag (int argc,const char **argv,const char *prefix); -int cmd_version (int argc,const char **argv,const char *prefix); -int cmd_whatchanged (int argc,const char **argv,const char *prefix); -int cmd_worktree (int argc,const char **argv,const char *prefix); -int cmd_write_tree (int argc,const char **argv,const char *prefix); -int cmd_verify_pack (int argc,const char **argv,const char *prefix); -int cmd_show_ref (int argc,const char **argv,const char *prefix); -int cmd_pack_refs (int argc,const char **argv,const char *prefix); -int cmd_replace (int argc,const char **argv,const char *prefix); +int cmd_add(int argc, const char **argv, const char *prefix, struct repository *repo); +int cmd_am (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_annotate (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_apply (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_archive (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_bisect (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_blame (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_branch (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_bugreport (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_bundle (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_cat_file (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_checkout (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_checkout__worker (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_checkout_index (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_check_attr (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_check_ignore (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_check_mailmap (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_check_ref_format (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_cherry (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_cherry_pick (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_clone (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_clean (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_column (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_commit (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_commit_graph (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_commit_tree (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_config (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_count_objects (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_credential (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_credential_cache (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_credential_cache_daemon (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_credential_store (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_describe (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_diagnose (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_diff_files (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_diff_index (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_diff (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_diff_tree (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_difftool (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_env__helper (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_fast_export (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_fast_import (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_fetch (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_fetch_pack (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_fmt_merge_msg (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_for_each_ref (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_for_each_repo (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_format_patch (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_fsck (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_fsmonitor__daemon (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_gc (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_get_tar_commit_id (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_grep (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_hash_object (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_help (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_hook (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_index_pack (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_init_db (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_interpret_trailers (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_log_reflog (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_log (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_ls_files (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_ls_tree (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_ls_remote (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_mailinfo (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_mailsplit (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_maintenance (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_merge (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_merge_base (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_merge_index (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_merge_ours (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_merge_file (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_merge_recursive (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_merge_tree (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_mktag (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_mktree (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_multi_pack_index (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_mv (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_name_rev (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_notes (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_pack_objects (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_pack_redundant (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_patch_id (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_prune (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_prune_packed (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_pull (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_push (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_range_diff (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_read_tree (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_rebase (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_rebase__interactive (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_receive_pack (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_reflog (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_refs (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_remote (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_remote_ext (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_remote_fd (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_repack (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_replay (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_rerere (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_reset (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_restore (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_rev_list (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_rev_parse (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_revert (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_rm (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_send_pack (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_shortlog (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_show (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_show_branch (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_show_index (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_sparse_checkout (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_status (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_stash (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_stripspace (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_submodule__helper (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_switch (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_symbolic_ref (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_tag (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_unpack_file (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_unpack_objects (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_update_index (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_update_ref (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_update_server_info (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_upload_archive (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_upload_archive_writer (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_upload_pack (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_var (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_verify_commit (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_verify_tag (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_version (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_whatchanged (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_worktree (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_write_tree (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_verify_pack (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_show_ref (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_pack_refs (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_replace (int argc,const char **argv,const char *prefix,struct repository *repo);#endif
builtin/add.c +1 -1
@@ -358,7 +358,7 @@ static int add_files(struct dir_struct *dir, int flags)return exit_status; } -int cmd_add (int argc,const char **argv,const char *prefix) +int cmd_add(int argc, const char **argv, const char *prefix, struct repository *repository UNUSED) {int exit_status =0 ;struct pathspec pathspec;
builtin/am.c +1 -1
@@ -2298,7 +2298,7 @@ static int parse_opt_show_current_patch(const struct option *opt, const char *arreturn 0 ; } -int cmd_am (int argc,const char **argv,const char *prefix) +int cmd_am(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {struct am_state state;int binary =-1 ;
builtin/annotate.c +2 -2
@@ -7,7 +7,7 @@#include "builtin.h" #include "strvec.h" -int cmd_annotate (int argc,const char **argv,const char *prefix) +int cmd_annotate (int argc,const char **argv,const char *prefix,struct repository *repo) {struct strvec args =STRVEC_INIT ;int i;
@@ -18,5 +18,5 @@ int cmd_annotate(int argc, const char **argv, const char *prefix)strvec_push (&args, argv[i]); } -return cmd_blame (args.nr, args.v, prefix); +return cmd_blame (args.nr, args.v, prefix, repo); }
builtin/apply.c +1 -1
@@ -9,7 +9,7 @@ static const char * const apply_usage[] = {NULL }; -int cmd_apply (int argc,const char **argv,const char *prefix) +int cmd_apply(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {int force_apply =0 ;int options =0 ;
builtin/archive.c +1 -1
@@ -76,7 +76,7 @@ static int run_remote_archiver(int argc, const char **argv, PARSE_OPT_KEEP_UNKNOWN_OPT | \ PARSE_OPT_NO_INTERNAL_HELP ) -int cmd_archive (int argc,const char **argv,const char *prefix) +int cmd_archive(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {const char *exec ="git-upload-archive" ;char *output =NULL ;
builtin/bisect.c +1 -1
@@ -1411,7 +1411,7 @@ static int cmd_bisect__run(int argc, const char **argv, const char *prefix UNUSEreturn res; } -int cmd_bisect (int argc,const char **argv,const char *prefix) +int cmd_bisect(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {int res =0 ;parse_opt_subcommand_fn *fn =NULL ;
builtin/blame.c +1 -1
@@ -864,7 +864,7 @@ static void build_ignorelist(struct blame_scoreboard *sb, } } -int cmd_blame (int argc,const char **argv,const char *prefix) +int cmd_blame(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {struct rev_info revs;char *path =NULL ;
builtin/branch.c +1 -1
@@ -704,7 +704,7 @@ static int edit_branch_description(const char *branch_name)return 0 ; } -int cmd_branch (int argc,const char **argv,const char *prefix) +int cmd_branch(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {/* possible actions */ int delete = 0, rename = 0, copy = 0, list = 0,
builtin/bugreport.c +1 -1
@@ -98,7 +98,7 @@ static void get_header(struct strbuf *buf, const char *title)strbuf_addf (buf,"\n\n[%s]\n" , title); } -int cmd_bugreport (int argc,const char **argv,const char *prefix) +int cmd_bugreport(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {struct strbuf buffer =STRBUF_INIT ;struct strbuf report_path =STRBUF_INIT ;
builtin/bundle.c +1 -1
@@ -226,7 +226,7 @@ cleanup:return ret; } -int cmd_bundle (int argc,const char **argv,const char *prefix) +int cmd_bundle(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {parse_opt_subcommand_fn *fn =NULL ;struct option options[] = {
builtin/cat-file.c +2 -2
@@ -191,7 +191,7 @@ static int cat_one_file(int opt, const char *exp_type, const char *obj_name,const char *ls_args[3 ] = {NULL }; ls_args[0 ] ="ls-tree" ; ls_args[1 ] = obj_name; - ret =cmd_ls_tree (2 , ls_args,NULL ); + ret =cmd_ls_tree (2 , ls_args,NULL , the_repository); goto cleanup; }
@@ -923,7 +923,7 @@ static int batch_option_callback(const struct option *opt,return 0 ; } -int cmd_cat_file (int argc,const char **argv,const char *prefix) +int cmd_cat_file(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {int opt =0 ;int opt_cw =0 ;
builtin/check-attr.c +1 -1
@@ -107,7 +107,7 @@ static NORETURN void error_with_usage(const char *msg)usage_with_options (check_attr_usage, check_attr_options); } -int cmd_check_attr (int argc,const char **argv,const char *prefix) +int cmd_check_attr(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {struct attr_check *check;struct object_id initialized_oid;
builtin/check-ignore.c +1 -1
@@ -151,7 +151,7 @@ static int check_ignore_stdin_paths(struct dir_struct *dir, const char *prefix)return num_ignored; } -int cmd_check_ignore (int argc,const char **argv,const char *prefix) +int cmd_check_ignore(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {int num_ignored;struct dir_struct dir =DIR_INIT ;
builtin/check-mailmap.c +1 -1
@@ -40,7 +40,7 @@ static void check_mailmap(struct string_list *mailmap, const char *contact)printf ("<%.*s>\n" , (int )maillen, mail); } -int cmd_check_mailmap (int argc,const char **argv,const char *prefix) +int cmd_check_mailmap(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {int i;struct string_list mailmap =STRING_LIST_INIT_NODUP ;
builtin/check-ref-format.c +1 -1
@@ -51,7 +51,7 @@ static int check_ref_format_branch(const char *arg)return 0 ; } -int cmd_check_ref_format (int argc,const char **argv,const char *prefix) +int cmd_check_ref_format(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {int i;int normalize =0 ;
builtin/checkout--worker.c +1 -1
@@ -113,7 +113,7 @@ static const char * const checkout_worker_usage[] = {NULL }; -int cmd_checkout__worker (int argc,const char **argv,const char *prefix) +int cmd_checkout__worker(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {struct checkout state =CHECKOUT_INIT ;struct option checkout_worker_options[] = {
builtin/checkout-index.c +1 -1
@@ -208,7 +208,7 @@ static int option_parse_stage(const struct option *opt,return 0 ; } -int cmd_checkout_index (int argc,const char **argv,const char *prefix) +int cmd_checkout_index(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {int i;struct lock_file lock_file =LOCK_INIT ;
builtin/checkout.c +3 -3
@@ -1953,7 +1953,7 @@ static int checkout_main(int argc, const char **argv, const char *prefix,return ret; } -int cmd_checkout (int argc,const char **argv,const char *prefix) +int cmd_checkout(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {struct checkout_opts opts =CHECKOUT_OPTS_INIT ;struct option *options;
@@ -2000,7 +2000,7 @@ int cmd_checkout(int argc, const char **argv, const char *prefix) checkout_usage); } -int cmd_switch (int argc,const char **argv,const char *prefix) +int cmd_switch(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {struct checkout_opts opts =CHECKOUT_OPTS_INIT ;struct option *options =NULL ;
@@ -2036,7 +2036,7 @@ int cmd_switch(int argc, const char **argv, const char *prefix) switch_branch_usage); } -int cmd_restore (int argc,const char **argv,const char *prefix) +int cmd_restore(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {struct checkout_opts opts =CHECKOUT_OPTS_INIT ;struct option *options;
builtin/clean.c +1 -1
@@ -915,7 +915,7 @@ static void correct_untracked_entries(struct dir_struct *dir) dir->nr = dst; } -int cmd_clean (int argc,const char **argv,const char *prefix) +int cmd_clean(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {int i, res;int dry_run =0 , remove_directories =0 , quiet =0 , ignored =0 ;
builtin/clone.c +1 -1
@@ -956,7 +956,7 @@ static int path_exists(const char *path)return !stat (path, &sb); } -int cmd_clone (int argc,const char **argv,const char *prefix) +int cmd_clone(int argc, const char **argv, const char *prefix, struct repository *repository UNUSED) {int is_bundle =0 , is_local;int reject_shallow =0 ;
builtin/column.c +1 -1
@@ -18,7 +18,7 @@ static int column_config(const char *var, const char *value,return git_column_config (var, value, cb, &colopts); } -int cmd_column (int argc,const char **argv,const char *prefix) +int cmd_column(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {struct string_list list =STRING_LIST_INIT_DUP ;struct strbuf sb =STRBUF_INIT ;
builtin/commit-graph.c +1 -1
@@ -331,7 +331,7 @@ cleanup:return result; } -int cmd_commit_graph (int argc,const char **argv,const char *prefix) +int cmd_commit_graph(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {parse_opt_subcommand_fn *fn =NULL ;struct option builtin_commit_graph_options[] = {
builtin/commit-tree.c +1 -1
@@ -90,7 +90,7 @@ static int parse_file_arg_callback(const struct option *opt,return 0 ; } -int cmd_commit_tree (int argc,const char **argv,const char *prefix) +int cmd_commit_tree(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {static struct strbuf buffer =STRBUF_INIT ;struct commit_list *parents =NULL ;
builtin/commit.c +2 -2
@@ -1502,7 +1502,7 @@ static int git_status_config(const char *k, const char *v,return git_diff_ui_config (k, v, ctx,NULL ); } -int cmd_status (int argc,const char **argv,const char *prefix) +int cmd_status(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {static int no_renames =-1 ;static const char *rename_score_arg = (const char *)-1 ;
@@ -1641,7 +1641,7 @@ static int git_commit_config(const char *k, const char *v,return git_status_config (k, v, ctx, s); } -int cmd_commit (int argc,const char **argv,const char *prefix) +int cmd_commit(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {static struct wt_status s;static struct option builtin_commit_options[] = {
builtin/config.c +1 -1
@@ -1392,7 +1392,7 @@ out:return ret; } -int cmd_config (int argc,const char **argv,const char *prefix) +int cmd_config(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {parse_opt_subcommand_fn *subcommand =NULL ;struct option subcommand_opts[] = {
builtin/count-objects.c +1 -1
@@ -95,7 +95,7 @@ static char const * const count_objects_usage[] = {NULL }; -int cmd_count_objects (int argc,const char **argv,const char *prefix) +int cmd_count_objects(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {int human_readable =0 ;struct option opts[] = {
builtin/credential-cache--daemon.c +2 -2
@@ -287,7 +287,7 @@ static void init_socket_directory(const char *path)free (path_copy); } -int cmd_credential_cache_daemon (int argc,const char **argv,const char *prefix) +int cmd_credential_cache_daemon(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {struct tempfile *socket_file;const char *socket_path;
@@ -330,7 +330,7 @@ int cmd_credential_cache_daemon(int argc, const char **argv, const char *prefix) #else -int cmd_credential_cache_daemon(int argc, const char **argv, const char *prefix) +int cmd_credential_cache_daemon(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) { const char * const usage[] = { "git credential-cache--daemon [--debug] <socket-path>",
builtin/credential-cache.c +1 -1
@@ -137,7 +137,7 @@ static void announce_capabilities(void)credential_announce_capabilities (&c, stdout); } -int cmd_credential_cache (int argc,const char **argv,const char *prefix) +int cmd_credential_cache(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {const char *socket_path_arg =NULL ;char *socket_path;
builtin/credential-store.c +1 -1
@@ -170,7 +170,7 @@ static void lookup_credential(const struct string_list *fns, struct credential *return ;/* Found credential */ } -int cmd_credential_store (int argc,const char **argv,const char *prefix) +int cmd_credential_store(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {const char *const usage[] = {"git credential-store [<options>] <action>" ,
builtin/credential.c +1 -1
@@ -6,7 +6,7 @@static const char usage_msg[] ="git credential (fill|approve|reject)" ; -int cmd_credential(int argc, const char **argv, const char *prefix UNUSED) +int cmd_credential(int argc, const char **argv, const char *prefix UNUSED, struct repository *repo UNUSED) {const char *op;struct credential c =CREDENTIAL_INIT ;
builtin/describe.c +2 -2
@@ -571,7 +571,7 @@ static int option_parse_exact_match(const struct option *opt, const char *arg,return 0 ; } -int cmd_describe (int argc,const char **argv,const char *prefix) +int cmd_describe(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED ) {int contains =0 ;struct option options[] = {
@@ -650,7 +650,7 @@ int cmd_describe(int argc, const char **argv, const char *prefix) argv_copy[i] = args.v[i]; argv_copy[args.nr] =NULL ; - ret =cmd_name_rev (args.nr, argv_copy, prefix); + ret =cmd_name_rev (args.nr, argv_copy, prefix, the_repository);strvec_clear (&args);free (argv_copy);
builtin/diagnose.c +1 -1
@@ -11,7 +11,7 @@ static const char * const diagnose_usage[] = {NULL }; -int cmd_diagnose (int argc,const char **argv,const char *prefix) +int cmd_diagnose(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {struct strbuf zip_path =STRBUF_INIT ;time_t now =time (NULL );
builtin/diff-files.c +1 -1
@@ -17,7 +17,7 @@ static const char diff_files_usage[] ="\n" COMMON_DIFF_OPTIONS_HELP ; -int cmd_diff_files (int argc,const char **argv,const char *prefix) +int cmd_diff_files(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {struct rev_info rev;int result;
builtin/diff-index.c +1 -1
@@ -14,7 +14,7 @@ static const char diff_cache_usage[] ="\n" COMMON_DIFF_OPTIONS_HELP ; -int cmd_diff_index (int argc,const char **argv,const char *prefix) +int cmd_diff_index(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {struct rev_info rev;unsigned int option =0 ;
builtin/diff-tree.c +1 -1
@@ -108,7 +108,7 @@ static void diff_tree_tweak_rev(struct rev_info *rev) } } -int cmd_diff_tree (int argc,const char **argv,const char *prefix) +int cmd_diff_tree(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {char line[1000 ];struct object *tree1, *tree2;
builtin/diff.c +1 -1
@@ -393,7 +393,7 @@ static void symdiff_release(struct symdiff *sdiff)bitmap_free (sdiff->skip); } -int cmd_diff (int argc,const char **argv,const char *prefix) +int cmd_diff(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {int i;struct rev_info rev;
builtin/difftool.c +1 -1
@@ -690,7 +690,7 @@ static int run_file_diff(int prompt, const char *prefix,return run_command (child); } -int cmd_difftool (int argc,const char **argv,const char *prefix) +int cmd_difftool(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {int use_gui_tool =-1 , dir_diff =0 , prompt =-1 , symlinks =0 , tool_help =0 , no_index =0 ;
builtin/fast-export.c +1 -1
@@ -1180,7 +1180,7 @@ static int parse_opt_anonymize_map(const struct option *opt,return 0 ; } -int cmd_fast_export (int argc,const char **argv,const char *prefix) +int cmd_fast_export(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {struct rev_info revs;struct commit *commit;
builtin/fast-import.c +1 -1
@@ -3537,7 +3537,7 @@ static void parse_argv(void)build_mark_map (&sub_marks_from, &sub_marks_to); } -int cmd_fast_import (int argc,const char **argv,const char *prefix) +int cmd_fast_import(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {unsigned int i;
builtin/fetch-pack.c +1 -1
@@ -43,7 +43,7 @@ static void add_sought_entry(struct ref ***sought, int *nr, int *alloc, (*sought)[*nr -1 ] = ref; } -int cmd_fetch_pack(int argc, const char **argv, const char *prefix UNUSED) +int cmd_fetch_pack(int argc, const char **argv, const char *prefix UNUSED, struct repository *repo UNUSED) {int i, ret;struct ref *ref =NULL ;
builtin/fetch.c +1 -1
@@ -2138,7 +2138,7 @@ static int fetch_one(struct remote *remote, int argc, const char **argv,return exit_code; } -int cmd_fetch (int argc,const char **argv,const char *prefix) +int cmd_fetch(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {struct fetch_config config = { .display_format =DISPLAY_FORMAT_FULL ,
builtin/fmt-merge-msg.c +1 -1
@@ -9,7 +9,7 @@ static const char * const fmt_merge_msg_usage[] = {NULL }; -int cmd_fmt_merge_msg (int argc,const char **argv,const char *prefix) +int cmd_fmt_merge_msg(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {char *inpath =NULL ;const char *message =NULL ;
builtin/for-each-ref.c +1 -1
@@ -16,7 +16,7 @@ static char const * const for_each_ref_usage[] = {NULL }; -int cmd_for_each_ref (int argc,const char **argv,const char *prefix) +int cmd_for_each_ref(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {struct ref_sorting *sorting;struct string_list sorting_options =STRING_LIST_INIT_DUP ;
builtin/for-each-repo.c +1 -1
@@ -29,7 +29,7 @@ static int run_command_on_repo(const char *path, int argc, const char ** argv)return run_command (&child); } -int cmd_for_each_repo (int argc,const char **argv,const char *prefix) +int cmd_for_each_repo(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {static const char *config_key =NULL ;int keep_going =0 ;
builtin/fsck.c +1 -1
@@ -925,7 +925,7 @@ static struct option fsck_opts[] = { OPT_END(), }; -int cmd_fsck (int argc,const char **argv,const char *prefix) +int cmd_fsck(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {int i;struct object_directory *odb;
builtin/fsmonitor--daemon.c +2 -2
@@ -1521,7 +1521,7 @@ static int try_to_start_background_daemon(void) } } -int cmd_fsmonitor__daemon (int argc,const char **argv,const char *prefix) +int cmd_fsmonitor__daemon(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {const char *subcmd;enum fsmonitor_reason reason;
@@ -1584,7 +1584,7 @@ int cmd_fsmonitor__daemon(int argc, const char **argv, const char *prefix) }#else -int cmd_fsmonitor__daemon(int argc, const char **argv, const char *prefix UNUSED) +int cmd_fsmonitor__daemon(int argc, const char **argv, const char *prefix UNUSED, struct repository *repo UNUSED) {struct option options[] = { OPT_END()
builtin/gc.c +2 -2
@@ -657,7 +657,7 @@ static void gc_before_repack(struct maintenance_run_opts *opts, } } -int cmd_gc (int argc,const char **argv,const char *prefix) +int cmd_gc(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {int aggressive =0 ;int quiet =0 ;
@@ -2890,7 +2890,7 @@ static const char * const builtin_maintenance_usage[] = { NULL, }; -int cmd_maintenance (int argc,const char **argv,const char *prefix) +int cmd_maintenance(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {parse_opt_subcommand_fn *fn =NULL ;struct option builtin_maintenance_options[] = {
builtin/get-tar-commit-id.c +1 -1
@@ -12,7 +12,7 @@ static const char builtin_get_tar_commit_id_usage[] =#define RECORDSIZE (512)#define HEADERSIZE (2 * RECORDSIZE) -int cmd_get_tar_commit_id(int argc, const char **argv UNUSED, const char *prefix) +int cmd_get_tar_commit_id(int argc, const char **argv UNUSED, const char *prefix, struct repository *repo UNUSED) {char buffer[HEADERSIZE ];struct ustar_header *header = (struct ustar_header *)buffer;
builtin/grep.c +1 -1
@@ -888,7 +888,7 @@ static int pattern_callback(const struct option *opt, const char *arg,return 0 ; } -int cmd_grep (int argc,const char **argv,const char *prefix) +int cmd_grep(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {int hit =0 ;int cached =0 , untracked =0 , opt_exclude =-1 ;
builtin/hash-object.c +1 -1
@@ -84,7 +84,7 @@ static void hash_stdin_paths(const char *type, int no_filters, unsigned flags,strbuf_release (&unquoted); } -int cmd_hash_object(int argc, const char **argv, const char *prefix) +int cmd_hash_object(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) { static const char * const hash_object_usage[] = { N_("git hash-object [-t <type>] [-w] [--path=<file> | --no-filters]\n"
builtin/help.c +1 -1
@@ -631,7 +631,7 @@ static void opt_mode_usage(int argc, const char *opt_mode,no_help_format (opt_mode, fmt); } -int cmd_help (int argc,const char **argv,const char *prefix) +int cmd_help(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {int nongit;enum help_format parsed_help_format;
builtin/hook.c +1 -1
@@ -66,7 +66,7 @@ usage:usage_with_options (builtin_hook_run_usage, run_options); } -int cmd_hook (int argc,const char **argv,const char *prefix) +int cmd_hook(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {parse_opt_subcommand_fn *fn =NULL ;struct option builtin_hook_options[] = {
builtin/index-pack.c +1 -1
@@ -1718,7 +1718,7 @@ static void show_pack_info(int stat_only)free (chain_histogram); } -int cmd_index_pack (int argc,const char **argv,const char *prefix) +int cmd_index_pack(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {int i, fix_thin_pack =0 , verify =0 , stat_only =0 , rev_index;const char *curr_index;
builtin/init-db.c +1 -1
@@ -70,7 +70,7 @@ static const char *const init_db_usage[] = {* On the other hand, it might just make lookup slower and messier. You * be the judge. The default case is to have one DB per managed directory. */ -int cmd_init_db (int argc,const char **argv,const char *prefix) +int cmd_init_db(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {const char *git_dir;const char *real_git_dir =NULL ;
builtin/interpret-trailers.c +1 -1
@@ -188,7 +188,7 @@ static void interpret_trailers(const struct process_trailer_options *opts,strbuf_release (&sb); } -int cmd_interpret_trailers (int argc,const char **argv,const char *prefix) +int cmd_interpret_trailers(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {struct process_trailer_options opts =PROCESS_TRAILER_OPTIONS_INIT ;LIST_HEAD (trailers);
builtin/log.c +6 -6
@@ -637,7 +637,7 @@ static int git_log_config(const char *var, const char *value,return git_diff_ui_config (var, value, ctx, cb); } -int cmd_whatchanged (int argc,const char **argv,const char *prefix) +int cmd_whatchanged(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {struct log_config cfg;struct rev_info rev;
@@ -758,7 +758,7 @@ static void show_setup_revisions_tweak(struct rev_info *rev) rev->diffopt.output_format =DIFF_FORMAT_PATCH ; } -int cmd_show (int argc,const char **argv,const char *prefix) +int cmd_show(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {struct log_config cfg;struct rev_info rev;
@@ -874,7 +874,7 @@ int cmd_show(int argc, const char **argv, const char *prefix)/* * This is equivalent to "git log -g --abbrev-commit --pretty=oneline" */ -int cmd_log_reflog (int argc,const char **argv,const char *prefix) +int cmd_log_reflog(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {struct log_config cfg;struct rev_info rev;
@@ -916,7 +916,7 @@ static void log_setup_revisions_tweak(struct rev_info *rev)diff_merges_default_to_first_parent (rev); } -int cmd_log (int argc,const char **argv,const char *prefix) +int cmd_log(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {struct log_config cfg;struct rev_info rev;
@@ -1986,7 +1986,7 @@ static void infer_range_diff_ranges(struct strbuf *r1, } } -int cmd_format_patch (int argc,const char **argv,const char *prefix) +int cmd_format_patch(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {struct format_config cfg;struct commit *commit;
@@ -2619,7 +2619,7 @@ static void print_commit(char sign, struct commit *commit, int verbose, } } -int cmd_cherry (int argc,const char **argv,const char *prefix) +int cmd_cherry(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {struct rev_info revs;struct patch_ids ids;
builtin/ls-files.c +1 -1
@@ -561,7 +561,7 @@ static int option_parse_exclude_standard(const struct option *opt,return 0 ; } -int cmd_ls_files (int argc,const char **argv,const char *cmd_prefix) +int cmd_ls_files(int argc, const char **argv, const char *cmd_prefix, struct repository *repo UNUSED) {int require_work_tree =0 , show_tag =0 , i;char *max_prefix;
builtin/ls-remote.c +1 -1
@@ -37,7 +37,7 @@ static int tail_match(const struct strvec *pattern, const char *path)return 0 ; } -int cmd_ls_remote (int argc,const char **argv,const char *prefix) +int cmd_ls_remote(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {const char *dest =NULL ;unsigned flags =0 ;
builtin/ls-tree.c +1 -1
@@ -329,7 +329,7 @@ static struct ls_tree_cmdmode_to_fmt ls_tree_cmdmode_format[] = { }, }; -int cmd_ls_tree (int argc,const char **argv,const char *prefix) +int cmd_ls_tree(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {struct object_id oid;struct tree *tree;
builtin/mailinfo.c +1 -1
@@ -48,7 +48,7 @@ static int parse_opt_quoted_cr(const struct option *opt, const char *arg, int unreturn 0 ; } -int cmd_mailinfo (int argc,const char **argv,const char *prefix) +int cmd_mailinfo(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {struct metainfo_charset meta_charset;struct mailinfo mi;
builtin/mailsplit.c +1 -1
@@ -269,7 +269,7 @@ out:return ret; } -int cmd_mailsplit (int argc,const char **argv,const char *prefix) +int cmd_mailsplit(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {int nr =0 , nr_prec =4 , num =0 ;int allow_bare =0 ;
builtin/merge-base.c +1 -1
@@ -143,7 +143,7 @@ static int handle_fork_point(int argc, const char **argv)return 0 ; } -int cmd_merge_base (int argc,const char **argv,const char *prefix) +int cmd_merge_base(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {struct commit **rev;int rev_nr =0 ;
builtin/merge-file.c +1 -1
@@ -53,7 +53,7 @@ static int diff_algorithm_cb(const struct option *opt,return 0 ; } -int cmd_merge_file (int argc,const char **argv,const char *prefix) +int cmd_merge_file(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {const char *names[3 ] = {0 };mmfile_t mmfs[3 ] = {0 };
builtin/merge-index.c +1 -1
@@ -73,7 +73,7 @@ static void merge_all(void) } } -int cmd_merge_index(int argc, const char **argv, const char *prefix UNUSED) +int cmd_merge_index(int argc, const char **argv, const char *prefix UNUSED, struct repository *repo UNUSED) {int i, force_file =0 ;
builtin/merge-ours.c +1 -1
@@ -15,7 +15,7 @@static const char builtin_merge_ours_usage[] ="git merge-ours <base>... -- HEAD <remote>..." ; -int cmd_merge_ours(int argc, const char **argv, const char *prefix UNUSED) +int cmd_merge_ours(int argc, const char **argv, const char *prefix UNUSED, struct repository *repo UNUSED) {if (argc ==2 && !strcmp (argv[1 ],"-h" ))usage (builtin_merge_ours_usage);
builtin/merge-recursive.c +1 -1
@@ -21,7 +21,7 @@ static char *better_branch_name(const char *branch)return xstrdup (name ? name : branch); } -int cmd_merge_recursive(int argc, const char **argv, const char *prefix UNUSED) +int cmd_merge_recursive(int argc, const char **argv, const char *prefix UNUSED, struct repository *repo UNUSED) {struct object_id bases[21 ];unsigned bases_count =0 ;
builtin/merge-tree.c +1 -1
@@ -526,7 +526,7 @@ static int real_merge(struct merge_tree_options *o,return !result.clean;/* result.clean < 0 handled above */ } -int cmd_merge_tree (int argc,const char **argv,const char *prefix) +int cmd_merge_tree(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {struct merge_tree_options o = { .show_messages =-1 };struct strvec xopts =STRVEC_INIT ;
builtin/merge.c +3 -3
@@ -1275,7 +1275,7 @@ static int merging_a_throwaway_tag(struct commit *commit)return is_throwaway_tag; } -int cmd_merge (int argc,const char **argv,const char *prefix) +int cmd_merge(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {struct object_id result_tree, stash, head_oid;struct commit *head_commit;
@@ -1347,7 +1347,7 @@ int cmd_merge(int argc, const char **argv, const char *prefix) REF_NO_DEREF);/* Invoke 'git reset --merge' */ - ret =cmd_reset (nargc, nargv, prefix); + ret =cmd_reset (nargc, nargv, prefix, the_repository);if (!is_null_oid (&stash_oid)) {oid_to_hex_r (stash_oid_hex, &stash_oid);
@@ -1379,7 +1379,7 @@ int cmd_merge(int argc, const char **argv, const char *prefix)die (_ ("There is no merge in progress (MERGE_HEAD missing)." ));/* Invoke 'git commit' */ - ret =cmd_commit (nargc, nargv, prefix); + ret =cmd_commit (nargc, nargv, prefix, the_repository); goto done; }
builtin/mktag.c +1 -1
@@ -71,7 +71,7 @@ static int verify_object_in_tag(struct object_id *tagged_oid, int *tagged_type)return ret; } -int cmd_mktag(int argc, const char **argv, const char *prefix) +int cmd_mktag(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) { static struct option builtin_mktag_options[] = { OPT_BOOL(0, "strict", &option_strict,
builtin/mktree.c +1 -1
@@ -150,7 +150,7 @@ static void mktree_line(char *buf, int nul_term_line, int allow_missing)free (to_free); } -int cmd_mktree (int ac,const char **av,const char *prefix) +int cmd_mktree(int ac, const char **av, const char *prefix, struct repository *repo UNUSED) {struct strbuf sb =STRBUF_INIT ;struct object_id oid;
builtin/multi-pack-index.c +1 -1
@@ -268,7 +268,7 @@ static int cmd_multi_pack_index_repack(int argc, const char **argv, }int cmd_multi_pack_index (int argc,const char **argv, -const char *prefix) + const char *prefix, struct repository *repo UNUSED) {int res;parse_opt_subcommand_fn *fn =NULL ;
builtin/mv.c +1 -1
@@ -178,7 +178,7 @@ static void remove_empty_src_dirs(const char **src_dir, size_t src_dir_nr)strbuf_release (&a_src_dir); } -int cmd_mv (int argc,const char **argv,const char *prefix) +int cmd_mv(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {int i, flags, gitmodules_modified =0 ;int verbose =0 , show_only =0 , force =0 , ignore_errors =0 , ignore_sparse =0 ;
builtin/name-rev.c +1 -1
@@ -558,7 +558,7 @@ static void name_rev_line(char *p, struct name_ref_data *data)strbuf_release (&buf); } -int cmd_name_rev (int argc,const char **argv,const char *prefix) +int cmd_name_rev(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {struct mem_pool string_pool;struct object_array revs =OBJECT_ARRAY_INIT ;
builtin/notes.c +1 -1
@@ -1096,7 +1096,7 @@ static int get_ref(int argc, const char **argv, const char *prefix)return 0 ; } -int cmd_notes (int argc,const char **argv,const char *prefix) +int cmd_notes(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {const char *override_notes_ref =NULL ;parse_opt_subcommand_fn *fn =NULL ;
builtin/pack-objects.c +1 -1
@@ -4284,7 +4284,7 @@ static int option_parse_cruft_expiration(const struct option *opt UNUSED,return 0 ; } -int cmd_pack_objects (int argc,const char **argv,const char *prefix) +int cmd_pack_objects(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {int use_internal_rev_list =0 ;int shallow =0 ;
builtin/pack-redundant.c +1 -1
@@ -561,7 +561,7 @@ static void load_all(void) } } -int cmd_pack_redundant(int argc, const char **argv, const char *prefix UNUSED) +int cmd_pack_redundant(int argc, const char **argv, const char *prefix UNUSED, struct repository *repo UNUSED) {int i;int i_still_use_this =0 ;
builtin/pack-refs.c +1 -1
@@ -11,7 +11,7 @@ static char const * const pack_refs_usage[] = {NULL }; -int cmd_pack_refs (int argc,const char **argv,const char *prefix) +int cmd_pack_refs(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {struct ref_exclusions excludes =REF_EXCLUSIONS_INIT ;struct string_list included_refs =STRING_LIST_INIT_NODUP ;
builtin/patch-id.c +1 -1
@@ -260,7 +260,7 @@ static int git_patch_id_config(const char *var, const char *value,return git_default_config (var, value, ctx, cb); } -int cmd_patch_id (int argc,const char **argv,const char *prefix) +int cmd_patch_id(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {/* if nothing is set, default to unstable */ struct patch_id_opts config = {0 ,0 };
builtin/prune-packed.c +1 -1
@@ -8,7 +8,7 @@ static const char * const prune_packed_usage[] = {NULL }; -int cmd_prune_packed (int argc,const char **argv,const char *prefix) +int cmd_prune_packed(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {int opts =isatty (2 ) ?PRUNE_PACKED_VERBOSE :0 ;const struct option prune_packed_options[] = {
builtin/prune.c +1 -1
@@ -147,7 +147,7 @@ static void remove_temporary_files(const char *path)closedir (dir); } -int cmd_prune (int argc,const char **argv,const char *prefix) +int cmd_prune(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {struct rev_info revs;int exclude_promisor_objects =0 ;
builtin/pull.c +1 -1
@@ -977,7 +977,7 @@ static void show_advice_pull_non_ff(void) "invocation.\n")); } -int cmd_pull (int argc,const char **argv,const char *prefix) +int cmd_pull(int argc, const char **argv, const char *prefix, struct repository *repository UNUSED) {const char *repo, **refspecs;struct oid_array merge_heads =OID_ARRAY_INIT ;
builtin/push.c +1 -1
@@ -546,7 +546,7 @@ static int git_push_config(const char *k, const char *v,return git_default_config (k, v, ctx,NULL ); } -int cmd_push (int argc,const char **argv,const char *prefix) +int cmd_push(int argc, const char **argv, const char *prefix, struct repository *repository UNUSED) {int flags =0 ;int tags =0 ;
builtin/range-diff.c +1 -1
@@ -13,7 +13,7 @@ N_("git range-diff [<options>] <base> <old-tip> <new-tip>"),NULL }; -int cmd_range_diff (int argc,const char **argv,const char *prefix) +int cmd_range_diff(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {struct diff_options diffopt = {NULL };struct strvec other_arg =STRVEC_INIT ;
builtin/read-tree.c +1 -1
@@ -108,7 +108,7 @@ static int git_read_tree_config(const char *var, const char *value,return git_default_config (var, value, ctx, cb); } -int cmd_read_tree (int argc,const char **argv,const char *cmd_prefix) +int cmd_read_tree(int argc, const char **argv, const char *cmd_prefix, struct repository *repo UNUSED) {int i, stage =0 ;struct object_id oid;
builtin/rebase.c +1 -1
@@ -1063,7 +1063,7 @@ static int check_exec_cmd(const char *cmd)return 0 ; } -int cmd_rebase (int argc,const char **argv,const char *prefix) +int cmd_rebase(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {struct rebase_options options =REBASE_OPTIONS_INIT ;const char *branch_name;
builtin/receive-pack.c +1 -1
@@ -2480,7 +2480,7 @@ static int delete_only(struct command *commands)return 1 ; } -int cmd_receive_pack (int argc,const char **argv,const char *prefix) +int cmd_receive_pack(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {int advertise_refs =0 ;struct command *commands;
builtin/reflog.c +3 -3
@@ -244,7 +244,7 @@ static int cmd_reflog_show(int argc, const char **argv, const char *prefix)PARSE_OPT_KEEP_DASHDASH |PARSE_OPT_KEEP_ARGV0 | PARSE_OPT_KEEP_UNKNOWN_OPT); -return cmd_log_reflog (argc, argv, prefix); +return cmd_log_reflog (argc, argv, prefix, the_repository); } static int show_reflog(const char *refname, void *cb_data UNUSED)
@@ -447,7 +447,7 @@ static int cmd_reflog_exists(int argc, const char **argv, const char *prefix)* main "reflog" */ -int cmd_reflog (int argc,const char **argv,const char *prefix) +int cmd_reflog (int argc,const char **argv,const char *prefix,struct repository *repository) {parse_opt_subcommand_fn *fn =NULL ;struct option options[] = {
@@ -466,5 +466,5 @@ int cmd_reflog(int argc, const char **argv, const char *prefix)if (fn)return fn (argc -1 , argv +1 , prefix);else -return cmd_log_reflog (argc, argv, prefix); +return cmd_log_reflog (argc, argv, prefix, repository); }
builtin/refs.c +1 -1
@@ -90,7 +90,7 @@ static int cmd_refs_verify(int argc, const char **argv, const char *prefix)return ret; } -int cmd_refs (int argc,const char **argv,const char *prefix) +int cmd_refs(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {const char *const refs_usage[] = {REFS_MIGRATE_USAGE ,
builtin/remote-ext.c +1 -1
@@ -195,7 +195,7 @@ static int command_loop(const char *child) } } -int cmd_remote_ext (int argc,const char **argv,const char *prefix) +int cmd_remote_ext(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {BUG_ON_NON_EMPTY_PREFIX (prefix);
builtin/remote-fd.c +1 -1
@@ -53,7 +53,7 @@ static void command_loop(int input_fd, int output_fd) } } -int cmd_remote_fd (int argc,const char **argv,const char *prefix) +int cmd_remote_fd(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {int input_fd =-1 ;int output_fd =-1 ;
builtin/remote.c +1 -1
@@ -1754,7 +1754,7 @@ out:return 0 ; } -int cmd_remote (int argc,const char **argv,const char *prefix) +int cmd_remote(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {parse_opt_subcommand_fn *fn =NULL ;struct option options[] = {
builtin/repack.c +1 -1
@@ -1116,7 +1116,7 @@ static const char *find_pack_prefix(const char *packdir, const char *packtmp)return pack_prefix; } -int cmd_repack (int argc,const char **argv,const char *prefix) +int cmd_repack(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {struct child_process cmd =CHILD_PROCESS_INIT ;struct string_list_item *item;
builtin/replace.c +1 -1
@@ -545,7 +545,7 @@ static int convert_graft_file(int force)return -1 ; } -int cmd_replace (int argc,const char **argv,const char *prefix) +int cmd_replace(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {int force =0 ;int raw =0 ;
builtin/replay.c +1 -1
@@ -274,7 +274,7 @@ static struct commit *pick_regular_commit(struct commit *pickme,return create_commit (result->tree, pickme, replayed_base); } -int cmd_replay (int argc,const char **argv,const char *prefix) +int cmd_replay(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {const char *advance_name_opt =NULL ;char *advance_name =NULL ;
builtin/rerere.c +1 -1
@@ -48,7 +48,7 @@ static int diff_two(const char *file1, const char *label1,return ret; } -int cmd_rerere (int argc,const char **argv,const char *prefix) +int cmd_rerere(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {struct string_list merge_rr =STRING_LIST_INIT_DUP ;int i, autoupdate =-1 , flags =0 ;
builtin/reset.c +1 -1
@@ -330,7 +330,7 @@ static int git_reset_config(const char *var, const char *value,return git_default_config (var, value, ctx, cb); } -int cmd_reset (int argc,const char **argv,const char *prefix) +int cmd_reset(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {int reset_type =NONE , update_ref_status =0 , quiet =0 ;int no_refresh =0 ;
builtin/rev-list.c +1 -1
@@ -513,7 +513,7 @@ static int try_bitmap_disk_usage(struct rev_info *revs,return 0 ; } -int cmd_rev_list (int argc,const char **argv,const char *prefix) +int cmd_rev_list(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {struct rev_info revs;struct rev_list_info info;
builtin/rev-parse.c +1 -1
@@ -688,7 +688,7 @@ static void print_path(const char *path, const char *prefix, enum format_type fofree (cwd); } -int cmd_rev_parse (int argc,const char **argv,const char *prefix) +int cmd_rev_parse(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {int i, as_is =0 , verify =0 , quiet =0 , revs_count =0 , type =0 ;const struct git_hash_algo *output_algo =NULL ;
builtin/revert.c +2 -2
@@ -261,7 +261,7 @@ static int run_sequencer(int argc, const char **argv, const char *prefix,return sequencer_pick_revisions (the_repository, opts); } -int cmd_revert (int argc,const char **argv,const char *prefix) +int cmd_revert(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {struct replay_opts opts =REPLAY_OPTS_INIT ;int res;
@@ -275,7 +275,7 @@ int cmd_revert(int argc, const char **argv, const char *prefix)return res; } -int cmd_cherry_pick (int argc,const char **argv,const char *prefix) +int cmd_cherry_pick(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {struct replay_opts opts =REPLAY_OPTS_INIT ;int res;
builtin/rm.c +1 -1
@@ -261,7 +261,7 @@ static struct option builtin_rm_options[] = { OPT_END(), }; -int cmd_rm (int argc,const char **argv,const char *prefix) +int cmd_rm(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {struct lock_file lock_file =LOCK_INIT ;int i, ret =0 ;
builtin/send-pack.c +1 -1
@@ -147,7 +147,7 @@ static int send_pack_config(const char *k, const char *v,return git_default_config (k, v, ctx, cb); } -int cmd_send_pack (int argc,const char **argv,const char *prefix) +int cmd_send_pack(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {struct refspec rs =REFSPEC_INIT_PUSH ;const char *remote_name =NULL ;
builtin/shortlog.c +1 -1
@@ -378,7 +378,7 @@ void shortlog_finish_setup(struct shortlog *log)string_list_sort (&log->trailers); } -int cmd_shortlog (int argc,const char **argv,const char *prefix) +int cmd_shortlog(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {struct shortlog log = {STRING_LIST_INIT_NODUP };struct rev_info rev;
builtin/show-branch.c +1 -1
@@ -632,7 +632,7 @@ static int parse_reflog_param(const struct option *opt, const char *arg,return 0 ; } -int cmd_show_branch (int ac,const char **av,const char *prefix) +int cmd_show_branch(int ac, const char **av, const char *prefix, struct repository *repo UNUSED) {struct commit *rev[MAX_REVS ], *commit;char *reflog_msg[MAX_REVS ] = {0 };
builtin/show-index.c +1 -1
@@ -11,7 +11,7 @@ static const char *const show_index_usage[] = {NULL }; -int cmd_show_index (int argc,const char **argv,const char *prefix) +int cmd_show_index(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {int i;unsigned nr;
builtin/show-ref.c +1 -1
@@ -287,7 +287,7 @@ static int exclude_existing_callback(const struct option *opt, const char *arg,return 0 ; } -int cmd_show_ref (int argc,const char **argv,const char *prefix) +int cmd_show_ref(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {struct exclude_existing_options exclude_existing_opts = {0 };struct patterns_options patterns_opts = {0 };
builtin/sparse-checkout.c +1 -1
@@ -1030,7 +1030,7 @@ static int sparse_checkout_check_rules(int argc, const char **argv, const char *return ret; } -int cmd_sparse_checkout (int argc,const char **argv,const char *prefix) +int cmd_sparse_checkout(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {parse_opt_subcommand_fn *fn =NULL ;struct option builtin_sparse_checkout_options[] = {
builtin/stash.c +1 -1
@@ -1871,7 +1871,7 @@ static int save_stash(int argc, const char **argv, const char *prefix)return ret; } -int cmd_stash (int argc,const char **argv,const char *prefix) +int cmd_stash(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {pid_t pid =getpid ();const char *index_file;
builtin/stripspace.c +1 -1
@@ -29,7 +29,7 @@ enum stripspace_mode {COMMENT_LINES }; -int cmd_stripspace (int argc,const char **argv,const char *prefix) +int cmd_stripspace(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {struct strbuf buf =STRBUF_INIT ;enum stripspace_mode mode =STRIP_DEFAULT ;
builtin/submodule--helper.c +1 -1
@@ -3528,7 +3528,7 @@ cleanup:return ret; } -int cmd_submodule__helper (int argc,const char **argv,const char *prefix) +int cmd_submodule__helper(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {parse_opt_subcommand_fn *fn =NULL ;const char *const usage[] = {
builtin/symbolic-ref.c +1 -1
@@ -41,7 +41,7 @@ static int check_symref(const char *HEAD, int quiet, int shorten, int recurse, ireturn 0 ; } -int cmd_symbolic_ref (int argc,const char **argv,const char *prefix) +int cmd_symbolic_ref(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {int quiet =0 , delete =0 , shorten =0 , recurse =1 , ret =0 ;const char *msg =NULL ;
builtin/tag.c +1 -1
@@ -457,7 +457,7 @@ static int strbuf_check_tag_ref(struct strbuf *sb, const char *name)return check_refname_format (sb->buf,0 ); } -int cmd_tag (int argc,const char **argv,const char *prefix) +int cmd_tag(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {struct strbuf buf =STRBUF_INIT ;struct strbuf ref =STRBUF_INIT ;
builtin/unpack-file.c +1 -1
@@ -25,7 +25,7 @@ static char *create_temp_file(struct object_id *oid)return path; } -int cmd_unpack_file(int argc, const char **argv, const char *prefix UNUSED) +int cmd_unpack_file(int argc, const char **argv, const char *prefix UNUSED, struct repository *repo UNUSED) {struct object_id oid;
builtin/unpack-objects.c +1 -1
@@ -601,7 +601,7 @@ static void unpack_all(void)die ("unresolved deltas left after unpacking" ); } -int cmd_unpack_objects(int argc, const char **argv, const char *prefix UNUSED) +int cmd_unpack_objects(int argc, const char **argv, const char *prefix UNUSED, struct repository *repo UNUSED) {int i;struct object_id oid;
builtin/update-index.c +1 -1
@@ -917,7 +917,7 @@ static enum parse_opt_result reupdate_callback(return 0 ; } -int cmd_update_index (int argc,const char **argv,const char *prefix) +int cmd_update_index(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {int newfd, entries, has_errors =0 , nul_term_line =0 ;enum uc_mode untracked_cache =UC_UNSPECIFIED ;
builtin/update-ref.c +1 -1
@@ -713,7 +713,7 @@ static void update_refs_stdin(void)strbuf_release (&input); } -int cmd_update_ref (int argc,const char **argv,const char *prefix) +int cmd_update_ref(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {const char *refname, *oldval;struct object_id oid, oldoid;
builtin/update-server-info.c +1 -1
@@ -9,7 +9,7 @@ static const char * const update_server_info_usage[] = {NULL }; -int cmd_update_server_info (int argc,const char **argv,const char *prefix) +int cmd_update_server_info(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {int force =0 ;struct option options[] = {
builtin/upload-archive.c +2 -2
@@ -18,7 +18,7 @@ static const char deadchild[] =#define MAX_ARGS (64) -int cmd_upload_archive_writer (int argc,const char **argv,const char *prefix) +int cmd_upload_archive_writer(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {struct strvec sent_argv =STRVEC_INIT ;const char *arg_cmd ="argument " ;
@@ -76,7 +76,7 @@ static ssize_t process_input(int child_fd, int band)return sz; } -int cmd_upload_archive (int argc,const char **argv,const char *prefix) +int cmd_upload_archive(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {struct child_process writer =CHILD_PROCESS_INIT ;
builtin/upload-pack.c +1 -1
@@ -17,7 +17,7 @@ static const char * const upload_pack_usage[] = {NULL }; -int cmd_upload_pack (int argc,const char **argv,const char *prefix) +int cmd_upload_pack(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {const char *dir;int strict =0 ;
builtin/var.c +1 -1
@@ -210,7 +210,7 @@ static int show_config(const char *var, const char *value,return git_default_config (var, value, ctx, cb); } -int cmd_var(int argc, const char **argv, const char *prefix UNUSED) +int cmd_var(int argc, const char **argv, const char *prefix UNUSED, struct repository *repo UNUSED) {const struct git_var *git_var;char *val;
builtin/verify-commit.c +1 -1
@@ -51,7 +51,7 @@ static int verify_commit(const char *name, unsigned flags)return run_gpg_verify ((struct commit *)obj, flags); } -int cmd_verify_commit (int argc,const char **argv,const char *prefix) +int cmd_verify_commit(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {int i =1 , verbose =0 , had_error =0 ;unsigned flags =0 ;
builtin/verify-pack.c +1 -1
@@ -61,7 +61,7 @@ static const char * const verify_pack_usage[] = {NULL }; -int cmd_verify_pack (int argc,const char **argv,const char *prefix) +int cmd_verify_pack(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {int err =0 ;unsigned int flags =0 ;
builtin/verify-tag.c +1 -1
@@ -19,7 +19,7 @@ static const char * const verify_tag_usage[] = {NULL }; -int cmd_verify_tag (int argc,const char **argv,const char *prefix) +int cmd_verify_tag(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) {int i =1 , verbose =0 , had_error =0 ;unsigned flags =0 ;
builtin/worktree.c +1 -1
@@ -1392,7 +1392,7 @@ static int repair(int ac, const char **av, const char *prefix)return rc; } -int cmd_worktree (int ac,const char **av,const char *prefix) +int cmd_worktree(int ac, const char **av, const char *prefix, struct repository *repo UNUSED) {parse_opt_subcommand_fn *fn =NULL ;struct option options[] = {
builtin/write-tree.c +1 -1
@@ -19,7 +19,7 @@ static const char * const write_tree_usage[] = {NULL }; -int cmd_write_tree (int argc,const char **argv,const char *cmd_prefix) +int cmd_write_tree(int argc, const char **argv, const char *cmd_prefix, struct repository *repo UNUSED) {int flags =0 , ret;const char *tree_prefix =NULL ;
git.c +8 -6
@@ -31,7 +31,7 @@struct cmd_struct {const char *cmd; -int (*fn)(int ,const char **,const char *); +int (*fn)(int ,const char **,const char *,struct repository *);unsigned int option; };
@@ -441,7 +441,7 @@ static int handle_alias(int *argcp, const char ***argv)return ret; } -static int run_builtin (struct cmd_struct *p,int argc,const char **argv) +static int run_builtin (struct cmd_struct *p,int argc,const char **argv,struct repository *repo) {int status, help;struct stat st;
@@ -479,9 +479,11 @@ static int run_builtin(struct cmd_struct *p, int argc, const char **argv)trace_argv_printf (argv,"trace: built-in: git" );trace2_cmd_name (p->cmd); -validate_cache_entries (the_repository->index); - status = p->fn (argc, argv, prefix); -validate_cache_entries (the_repository->index); +validate_cache_entries (repo->index); + + status = p->fn (argc, argv, prefix, startup_info->have_repository? repo:NULL ) ; + +validate_cache_entries (repo->index);if (status)return status;
@@ -736,7 +738,7 @@ static void handle_builtin(int argc, const char **argv) builtin =get_builtin (cmd);if (builtin) -exit (run_builtin (builtin, argc, argv)); +exit (run_builtin (builtin, argc, argv, the_repository));strvec_clear (&args); }
help.c +2 -1
@@ -16,6 +16,7 @@#include "parse-options.h" #include "prompt.h" #include "fsmonitor-ipc.h" +#include "repository.h" #ifndef NO_CURL #include "git-curl-compat.h" /* For LIBCURL_VERSION only */
@@ -775,7 +776,7 @@ void get_version_info(struct strbuf *buf, int show_build_options) } } -int cmd_version (int argc,const char **argv,const char *prefix) +int cmd_version(int argc, const char **argv, const char *prefix, struct repository *repository UNUSED) {struct strbuf buf =STRBUF_INIT ;int build_options =0 ;
Signature · 1 line
gitgitgadget
Re: [PATCH 1/3] builtin: add a repository parameter for builtin functions
Quoted 6 lines · John Cai via GitGitGadget
From: John Cai <[email protected]>
builtin/add.c +0
-0
builtin/add.c static int add_files(struct dir_struct *dir, int flags) · line 364
Quoted 8 lines
builtin/add.c +1
-1@@ -358,7 +358,7 @@ static int add_files(struct dir_struct *dir, int flags)return exit_status; } -int cmd_add (int argc,const char **argv,const char *prefix) +int cmd_add(int argc, const char **argv, const char *prefix, struct repository *repository UNUSED) {int exit_status =0 ;struct pathspec pathspec;
Nit: all of these are now overly long as we typically wrap at 80 characters.
Quoted 27 lines
git.c +2
-3@@ -31,7 +31,7 @@struct cmd_struct {const char *cmd; -int (*fn)(int ,const char **,const char *); +int (*fn)(int ,const char **,const char *,struct repository *);unsigned int option; };@@ -441,7 +441,7 @@ static int handle_alias(int *argcp, const char ***argv)return ret; } -static int run_builtin (struct cmd_struct *p,int argc,const char **argv) +static int run_builtin (struct cmd_struct *p,int argc,const char **argv,struct repository *repo) {int status, help;struct stat st;@@ -479,9 +479,11 @@ static int run_builtin(struct cmd_struct *p, int argc, const char **argv)trace_argv_printf (argv,"trace: built-in: git" );trace2_cmd_name (p->cmd); -validate_cache_entries (the_repository->index);
git.c static int run_builtin(struct cmd_struct *p, int argc, const char **argv) · line 489
Quoted 10 lines
git.c +5
-2- status = p->fn (argc, argv, prefix); -validate_cache_entries (the_repository->index); +validate_cache_entries (repo->index); + + status = p->fn (argc, argv, prefix, startup_info->have_repository? repo:NULL ) ; + +validate_cache_entries (repo->index);if (status)return status;
Looks sensible.
git.c static void handle_builtin(int argc, const char **argv) · line 744
Quoted 9 lines
git.c +1
-1@@ -736,7 +738,7 @@ static void handle_builtin(int argc, const char **argv) builtin =get_builtin (cmd);if (builtin) -exit (run_builtin (builtin, argc, argv)); +exit (run_builtin (builtin, argc, argv, the_repository));strvec_clear (&args); }
Why don't we need a check for startup_info->have_repository here?
help.c line 22
Quoted 12 lines
help.c +1
-0@@ -16,6 +16,7 @@#include "parse-options.h" #include "prompt.h" #include "fsmonitor-ipc.h" +#include "repository.h" #ifndef NO_CURL #include "git-curl-compat.h" /* For LIBCURL_VERSION only */
The include shouldn't be necessary. You can instead add a forward declaration.
help.c void get_version_info(struct strbuf *buf, int show_build_options) · line 782
Quoted 9 lines
help.c +1
-1@@ -775,7 +776,7 @@ void get_version_info(struct strbuf *buf, int show_build_options) } } -int cmd_version (int argc,const char **argv,const char *prefix) +int cmd_version(int argc, const char **argv, const char *prefix, struct repository *repository UNUSED) {struct strbuf buf =STRBUF_INIT ;int build_options =0 ;
Patrick
Re: [PATCH 1/3] builtin: add a repository parameter for builtin functions
Hi Patrick,
Quoted 62 lines · Patrick Steinhardt
Quoted 6 lines · John Cai via GitGitGadget
From: John Cai <[email protected]>
builtin/add.c +0
-0builtin/add.c static int add_files(struct dir_struct *dir, int flags) · line 364
Quoted 8 lines
builtin/add.c +1
-1@@ -358,7 +358,7 @@ static int add_files(struct dir_struct *dir, int flags)return exit_status; } -int cmd_add (int argc,const char **argv,const char *prefix) +int cmd_add(int argc, const char **argv, const char *prefix, struct repository *repository UNUSED) {int exit_status =0 ;struct pathspec pathspec;Nit: all of these are now overly long as we typically wrap at 80 characters.
Quoted 27 lines
git.c +2
-3@@ -31,7 +31,7 @@struct cmd_struct {const char *cmd; -int (*fn)(int ,const char **,const char *); +int (*fn)(int ,const char **,const char *,struct repository *);unsigned int option; };@@ -441,7 +441,7 @@ static int handle_alias(int *argcp, const char ***argv)return ret; } -static int run_builtin (struct cmd_struct *p,int argc,const char **argv) +static int run_builtin (struct cmd_struct *p,int argc,const char **argv,struct repository *repo) {int status, help;struct stat st;@@ -479,9 +479,11 @@ static int run_builtin(struct cmd_struct *p, int argc, const char **argv)trace_argv_printf (argv,"trace: built-in: git" );trace2_cmd_name (p->cmd); -validate_cache_entries (the_repository->index);git.c static int run_builtin(struct cmd_struct *p, int argc, const char **argv) · line 489
Quoted 10 lines
git.c +5
-2- status = p->fn (argc, argv, prefix); -validate_cache_entries (the_repository->index); +validate_cache_entries (repo->index); + + status = p->fn (argc, argv, prefix, startup_info->have_repository? repo:NULL ) ; + +validate_cache_entries (repo->index);if (status)return status;Looks sensible.
Quoted 2 lines
git.c +0
-0@@ -736,7 +738,7 @@ static void handle_builtin(int argc, const char **argv)
Quoted 9 lines
git.c static void handle_builtin(int argc, const char **argv) · line 744
Quoted 7 lines
git.c +1
-1builtin =get_builtin (cmd);if (builtin) -exit (run_builtin (builtin, argc, argv)); +exit (run_builtin (builtin, argc, argv, the_repository));strvec_clear (&args); }Why don't we need a check for
startup_info->have_repositoryhere?
We do the check inside of run_builtin(), which calls the fn() directly. There's a call to validate_cache_entries(repo->index) in run_builtin(), so if we passed in NULL then we would need another guard to prevent a segfault in run_builtin().
Quoted 11 lines
Quoted 11 lines
help.c +1
-0@@ -16,6 +16,7 @@#include "parse-options.h" #include "prompt.h" #include "fsmonitor-ipc.h" +#include "repository.h"
Quoted 4 lines
help.c line 22
Quoted 2 lines
help.c +0
-0#ifndef NO_CURL #include "git-curl-compat.h" /* For LIBCURL_VERSION only */ The include shouldn't be necessary. You can instead add a forward declaration.
indeed, I'll remove this in the next version.
Quoted 12 lines
help.c void get_version_info(struct strbuf *buf, int show_build_options) · line 782
Quoted 10 lines
help.c +1
-1@@ -775,7 +776,7 @@ void get_version_info(struct strbuf *buf, int show_build_options) } } -int cmd_version (int argc,const char **argv,const char *prefix) +int cmd_version(int argc, const char **argv, const char *prefix, struct repository *repository UNUSED) {struct strbuf buf =STRBUF_INIT ;int build_options =0 ;Patrick
PATCH 2/3 builtin: remove USE_THE_REPOSITORY_VARIABLE from builtin.h
In reply to John Cai via GitGitGadgetFrom: John Cai <[email protected]>
Instead of including USE_THE_REPOSITORY_VARIABLE by default on every builtin, remove it from builtin.h and add it where necessary to individual builtins/*. The next step will be to migrate each builtin from having to use the_repository.
--- builtin.h | 8 -------- builtin/add.c | 2 +- builtin/am.c | 1 + builtin/apply.c | 1 + builtin/archive.c | 1 + builtin/bisect.c | 1 + builtin/blame.c | 2 +- builtin/branch.c | 3 ++- builtin/bugreport.c | 1 + builtin/bundle.c | 1 + builtin/cat-file.c | 3 ++- builtin/check-attr.c | 1 + builtin/check-ignore.c | 1 + builtin/check-mailmap.c | 1 + builtin/checkout--worker.c | 1 + builtin/checkout-index.c | 1 + builtin/checkout.c | 1 + builtin/clean.c | 2 +- builtin/clone.c | 3 ++- builtin/column.c | 2 ++ builtin/commit-graph.c | 1 + builtin/commit-tree.c | 1 + builtin/commit.c | 3 ++- builtin/config.c | 1 + builtin/count-objects.c | 2 +- builtin/credential-cache--daemon.c | 1 + builtin/credential-store.c | 1 + builtin/credential.c | 2 ++ builtin/describe.c | 1 + builtin/diff-files.c | 1 + builtin/diff-index.c | 1 + builtin/diff-tree.c | 1 + builtin/diff.c | 3 ++- builtin/difftool.c | 3 ++- builtin/fast-export.c | 2 ++ builtin/fast-import.c | 1 + builtin/fetch-pack.c | 1 + builtin/fetch.c | 1 + builtin/fmt-merge-msg.c | 1 + builtin/for-each-ref.c | 1 + builtin/for-each-repo.c | 1 + builtin/fsck.c | 1 + builtin/fsmonitor--daemon.c | 1 + builtin/gc.c | 2 +- builtin/grep.c | 1 + builtin/hash-object.c | 2 ++ builtin/help.c | 2 ++ builtin/hook.c | 1 + builtin/index-pack.c | 1 + builtin/interpret-trailers.c | 2 +- builtin/log.c | 1 + builtin/ls-files.c | 1 + builtin/ls-remote.c | 1 + builtin/ls-tree.c | 2 ++ builtin/merge-base.c | 1 + builtin/merge-file.c | 1 + builtin/merge-index.c | 1 + builtin/merge-ours.c | 1 + builtin/merge-recursive.c | 1 + builtin/merge-tree.c | 1 + builtin/merge.c | 3 ++- builtin/mktag.c | 1 + builtin/mktree.c | 2 ++ builtin/multi-pack-index.c | 1 + builtin/mv.c | 1 + builtin/name-rev.c | 1 + builtin/notes.c | 2 +- builtin/pack-objects.c | 1 + builtin/pack-redundant.c | 1 + builtin/pack-refs.c | 1 + builtin/patch-id.c | 1 + builtin/prune.c | 1 + builtin/pull.c | 1 + builtin/push.c | 1 + builtin/range-diff.c | 1 + builtin/read-tree.c | 2 +- builtin/rebase.c | 3 ++- builtin/receive-pack.c | 1 + builtin/reflog.c | 1 + builtin/refs.c | 1 + builtin/remote.c | 1 + builtin/repack.c | 1 + builtin/replace.c | 1 + builtin/replay.c | 1 + builtin/rerere.c | 1 + builtin/reset.c | 3 ++- builtin/rev-list.c | 1 + builtin/rev-parse.c | 3 ++- builtin/revert.c | 1 + builtin/rm.c | 2 +- builtin/send-pack.c | 1 + builtin/shortlog.c | 1 + builtin/show-branch.c | 1 + builtin/show-index.c | 1 + builtin/show-ref.c | 1 + builtin/sparse-checkout.c | 1 + builtin/stash.c | 1 + builtin/stripspace.c | 1 + builtin/submodule--helper.c | 1 + builtin/symbolic-ref.c | 1 + builtin/tag.c | 3 ++- builtin/unpack-file.c | 1 + builtin/unpack-objects.c | 1 + builtin/update-index.c | 1 + builtin/update-ref.c | 1 + builtin/update-server-info.c | 1 + builtin/upload-archive.c | 1 + builtin/var.c | 2 ++ builtin/verify-commit.c | 1 + builtin/verify-pack.c | 1 + builtin/verify-tag.c | 2 ++ builtin/worktree.c | 1 + builtin/write-tree.c | 2 +- 113 files changed, 132 insertions(+), 29 deletions(-)
builtin.h +0 -8
@@ -1,14 +1,6 @@#ifndef BUILTIN_H #define BUILTIN_H -/* -* TODO: Almost all of our builtins access `the_repository` by necessity -* because they do not get passed a pointer to it. We should adapt the function -* signature of those main functions to accept a `struct repository *` and then -* remove the macro here. -*/ -#define USE_THE_REPOSITORY_VARIABLE -#include "git-compat-util.h" #include "repository.h"
builtin/add.c +1 -1
@@ -3,7 +3,7 @@* * Copyright (C) 2006 Linus Torvalds */ - +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "advice.h" #include "config.h"
builtin/am.c +1 -0
@@ -4,6 +4,7 @@* Based on git-am.sh by Junio C Hamano. */ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "abspath.h" #include "advice.h"
builtin/apply.c +1 -0
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "gettext.h" #include "repository.h"
builtin/archive.c +1 -0
@@ -2,6 +2,7 @@* Copyright (c) 2006 Franck Bui-Huu * Copyright (c) 2006 Rene Scharfe */ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "archive.h" #include "gettext.h"
builtin/bisect.c +1 -0
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "copy.h" #include "environment.h"
builtin/blame.c +1 -1
@@ -4,7 +4,7 @@* Copyright (c) 2006, 2014 by its authors * See COPYING for licensing conditions */ - +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "config.h" #include "color.h"
builtin/branch.c +2 -1
@@ -4,8 +4,9 @@* Copyright (c) 2006 Kristian Høgsberg <[email protected]> * Based on git-branch.sh by Junio C Hamano. */ - +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" +#include "repository.h" #include "config.h" #include "color.h" #include "editor.h"
builtin/bugreport.c +1 -0
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "abspath.h" #include "editor.h"
builtin/bundle.c +1 -0
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "abspath.h" #include "gettext.h"
builtin/cat-file.c +2 -1
@@ -3,8 +3,9 @@* * Copyright (C) Linus Torvalds, 2005 */ - +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" +#include "repository.h" #include "config.h" #include "convert.h" #include "diff.h"
builtin/check-attr.c +1 -0
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "config.h" #include "attr.h"
builtin/check-ignore.c +1 -0
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "config.h" #include "dir.h"
builtin/check-mailmap.c +1 -0
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "config.h" #include "gettext.h"
builtin/checkout--worker.c +1 -0
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "config.h" #include "entry.h"
builtin/checkout-index.c +1 -0
@@ -4,6 +4,7 @@* Copyright (C) 2005 Linus Torvalds * */ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "config.h"
builtin/checkout.c +1 -0
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "advice.h" #include "branch.h"
builtin/clean.c +1 -1
@@ -5,7 +5,7 @@* * Based on git-clean.sh by Pavel Roskin */ - +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "abspath.h" #include "config.h"
builtin/clone.c +2 -1
@@ -7,8 +7,9 @@* * Clone a repository into a different directory that does not yet exist. */ - +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" +#include "repository.h" #include "abspath.h" #include "advice.h" #include "config.h"
builtin/column.c +2 -0
@@ -1,3 +1,5 @@ +#define USE_THE_REPOSITORY_VARIABLE +#include "builtin.h" #include "config.h" #include "gettext.h"
builtin/commit-graph.c +1 -0
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "commit.h" #include "config.h"
builtin/commit-tree.c +1 -0
@@ -3,6 +3,7 @@* * Copyright (C) Linus Torvalds, 2005 */ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "config.h" #include "gettext.h"
builtin/commit.c +2 -1
@@ -4,8 +4,9 @@* Copyright (c) 2007 Kristian Høgsberg <[email protected]> * Based on git-commit.sh by Junio C Hamano and Linus Torvalds */ - +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" +#include "repository.h" #include "advice.h" #include "config.h" #include "lockfile.h"
builtin/config.c +1 -0
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "abspath.h" #include "config.h"
builtin/count-objects.c +1 -1
@@ -3,7 +3,7 @@* * Copyright (c) 2006 Junio C Hamano */ - +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "config.h" #include "dir.h"
builtin/credential-cache--daemon.c +1 -0
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "abspath.h" #include "gettext.h"
builtin/credential-store.c +1 -0
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "config.h" #include "gettext.h"
builtin/credential.c +2 -0
@@ -1,3 +1,5 @@ +#define USE_THE_REPOSITORY_VARIABLE +#include "git-compat-util.h" #include "credential.h" #include "builtin.h"
builtin/describe.c +1 -0
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "config.h" #include "environment.h"
builtin/diff-files.c +1 -0
@@ -3,6 +3,7 @@* * Copyright (C) Linus Torvalds, 2005 */ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "config.h" #include "diff.h"
builtin/diff-index.c +1 -0
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "config.h" #include "diff.h"
builtin/diff-tree.c +1 -0
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "config.h" #include "diff.h"
builtin/diff.c +2 -1
@@ -3,8 +3,9 @@* * Copyright (c) 2006 Junio C Hamano */ - +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" +#include "repository.h" #include "config.h" #include "ewah/ewok.h" #include "lockfile.h"
builtin/difftool.c +2 -1
@@ -11,8 +11,9 @@* * Copyright (C) 2016 Johannes Schindelin */ - +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" +#include "repository.h" #include "abspath.h" #include "config.h" #include "copy.h"
builtin/fast-export.c +2 -0
@@ -3,7 +3,9 @@* * Copyright (C) 2007 Johannes E. Schindelin */ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" +#include "repository.h" #include "config.h" #include "gettext.h" #include "hex.h"
builtin/fast-import.c +1 -0
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "abspath.h" #include "environment.h"
builtin/fetch-pack.c +1 -0
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "gettext.h" #include "hex.h"
builtin/fetch.c +1 -0
@@ -1,6 +1,7 @@/* * "git fetch" */ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "advice.h" #include "config.h"
builtin/fmt-merge-msg.c +1 -0
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "config.h" #include "fmt-merge-msg.h"
builtin/for-each-ref.c +1 -0
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "commit.h" #include "config.h"
builtin/for-each-repo.c +1 -0
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "config.h" #include "gettext.h"
builtin/fsck.c +1 -0
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "gettext.h" #include "hex.h"
builtin/fsmonitor--daemon.c +1 -0
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "abspath.h" #include "config.h"
builtin/gc.c +1 -1
@@ -9,7 +9,7 @@* * Copyright (c) 2006 Shawn O. Pearce */ - +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "abspath.h" #include "date.h"
builtin/grep.c +1 -0
@@ -3,6 +3,7 @@* * Copyright (c) 2006 Junio C Hamano */ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "abspath.h" #include "gettext.h"
builtin/hash-object.c +2 -0
@@ -4,7 +4,9 @@* Copyright (C) Linus Torvalds, 2005 * Copyright (C) Junio C Hamano, 2005 */ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" +#include "repository.h" #include "abspath.h" #include "config.h" #include "gettext.h"
builtin/help.c +2 -0
@@ -1,6 +1,8 @@ +/* * Builtin help command */ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "config.h" #include "exec-cmd.h"
builtin/hook.c +1 -0
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "config.h" #include "gettext.h"
builtin/index-pack.c +1 -0
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "config.h" #include "delta.h"
builtin/interpret-trailers.c +1 -1
@@ -4,7 +4,7 @@* Copyright (c) 2013, 2014 Christian Couder <[email protected]> * */ - +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "gettext.h" #include "parse-options.h"
builtin/log.c +1 -0
@@ -4,6 +4,7 @@* (C) Copyright 2006 Linus Torvalds * 2006 Junio Hamano */ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "abspath.h" #include "config.h"
builtin/ls-files.c +1 -0
@@ -5,6 +5,7 @@* * Copyright (C) Linus Torvalds, 2005 */ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "repository.h" #include "config.h"
builtin/ls-remote.c +1 -0
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "gettext.h" #include "hex.h"
builtin/ls-tree.c +2 -0
@@ -3,7 +3,9 @@* * Copyright (C) Linus Torvalds, 2005 */ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" +#include "repository.h" #include "config.h" #include "gettext.h" #include "hex.h"
builtin/merge-base.c +1 -0
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "config.h" #include "commit.h"
builtin/merge-file.c +1 -0
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "abspath.h" #include "diff.h"
builtin/merge-index.c +1 -0
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "hex.h" #include "read-cache-ll.h"
builtin/merge-ours.c +1 -0
@@ -7,6 +7,7 @@* * Pretend we resolved the heads, but declare our tree trumps everybody else. */ +#define USE_THE_REPOSITORY_VARIABLE #include "git-compat-util.h" #include "builtin.h" #include "diff.h"
builtin/merge-recursive.c +1 -0
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "advice.h" #include "gettext.h"
builtin/merge-tree.c +1 -0
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "tree-walk.h" #include "xdiff-interface.h"
builtin/merge.c +2 -1
@@ -5,8 +5,9 @@* * Based on git-merge.sh by Junio C Hamano. */ - +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" +#include "repository.h" #include "abspath.h" #include "advice.h" #include "config.h"
builtin/mktag.c +1 -0
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "gettext.h" #include "hex.h"
builtin/mktree.c +2 -0
@@ -3,7 +3,9 @@* * Copyright (c) Junio C Hamano, 2006, 2009 */ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" +#include "repository.h" #include "gettext.h" #include "hex.h" #include "quote.h"
builtin/multi-pack-index.c +1 -0
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "abspath.h" #include "config.h"
builtin/mv.c +1 -0
@@ -3,6 +3,7 @@* * Copyright (C) 2006 Johannes Schindelin */ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "abspath.h"
builtin/name-rev.c +1 -0
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "environment.h" #include "gettext.h"
builtin/notes.c +1 -1
@@ -6,7 +6,7 @@* Based on git-notes.sh by Johannes Schindelin, * and builtin/tag.c by Kristian Høgsberg and Carlos Rica. */ - +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "config.h" #include "editor.h"
builtin/pack-objects.c +1 -0
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "environment.h" #include "gettext.h"
builtin/pack-redundant.c +1 -0
@@ -5,6 +5,7 @@* This file is licensed under the GPL v2. * */ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "gettext.h"
builtin/pack-refs.c +1 -0
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "config.h" #include "gettext.h"
builtin/patch-id.c +1 -0
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "config.h" #include "diff.h"
builtin/prune.c +1 -0
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "commit.h" #include "diff.h"
builtin/pull.c +1 -0
@@ -6,6 +6,7 @@* Fetch one or more remote refs and merge it/them into the current HEAD. */ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "advice.h" #include "config.h"
builtin/push.c +1 -0
@@ -1,6 +1,7 @@/* * "git push" */ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "advice.h" #include "branch.h"
builtin/range-diff.c +1 -0
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "gettext.h" #include "object-name.h"
builtin/read-tree.c +1 -1
@@ -3,7 +3,7 @@* * Copyright (C) Linus Torvalds, 2005 */ - +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "config.h" #include "gettext.h"
builtin/rebase.c +2 -1
@@ -3,8 +3,9 @@* * Copyright (c) 2018 Pratik Karki */ - +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" +#include "repository.h" #include "abspath.h" #include "environment.h" #include "gettext.h"
builtin/receive-pack.c +1 -0
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "abspath.h" #include "repository.h"
builtin/reflog.c +1 -0
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "config.h" #include "gettext.h"
builtin/refs.c +1 -0
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "config.h" #include "fsck.h"
builtin/remote.c +1 -0
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "config.h" #include "gettext.h"
builtin/repack.c +1 -0
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "config.h" #include "dir.h"
builtin/replace.c +1 -0
@@ -7,6 +7,7 @@* and Carlos Rica <[email protected]> that was itself based on * git-tag.sh and mktag.c by Linus Torvalds. */ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "config.h"
builtin/replay.c +1 -0
@@ -4,6 +4,7 @@#include "git-compat-util.h" +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "environment.h" #include "hex.h"
builtin/rerere.c +1 -0
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "config.h" #include "gettext.h"
builtin/reset.c +2 -1
@@ -7,8 +7,9 @@* * Copyright (c) 2005, 2006 Linus Torvalds and Junio C Hamano */ - +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" +#include "repository.h" #include "advice.h" #include "config.h" #include "environment.h"
builtin/rev-list.c +1 -0
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "config.h" #include "commit.h"
builtin/rev-parse.c +2 -1
@@ -3,8 +3,9 @@* * Copyright (C) Linus Torvalds, 2005 */ - +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" +#include "repository.h" #include "abspath.h" #include "config.h" #include "commit.h"
builtin/revert.c +1 -0
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "git-compat-util.h" #include "builtin.h" #include "parse-options.h"
builtin/rm.c +1 -1
@@ -3,7 +3,7 @@* * Copyright (C) Linus Torvalds 2006 */ - +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "advice.h" #include "config.h"
builtin/send-pack.c +1 -0
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "config.h" #include "hex.h"
builtin/shortlog.c +1 -0
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "config.h" #include "commit.h"
builtin/show-branch.c +1 -0
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "config.h" #include "environment.h"
builtin/show-index.c +1 -0
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "gettext.h" #include "hash.h"
builtin/show-ref.c +1 -0
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "config.h" #include "gettext.h"
builtin/sparse-checkout.c +1 -0
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "config.h" #include "dir.h"
builtin/stash.c +1 -0
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "abspath.h" #include "config.h"
builtin/stripspace.c +1 -0
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "config.h" #include "environment.h"
builtin/submodule--helper.c +1 -0
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "abspath.h" #include "environment.h"
builtin/symbolic-ref.c +1 -0
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "config.h" #include "gettext.h"
builtin/tag.c +2 -1
@@ -5,8 +5,9 @@* Carlos Rica <[email protected]> * Based on git-tag.sh and mktag.c by Linus Torvalds. */ - +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" +#include "repository.h" #include "advice.h" #include "config.h" #include "editor.h"
builtin/unpack-file.c +1 -0
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "config.h" #include "hex.h"
builtin/unpack-objects.c +1 -0
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "bulk-checkin.h" #include "config.h"
builtin/update-index.c +1 -0
@@ -3,6 +3,7 @@* * Copyright (C) Linus Torvalds, 2005 */ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "bulk-checkin.h"
builtin/update-ref.c +1 -0
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "config.h" #include "gettext.h"
builtin/update-server-info.c +1 -0
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "config.h" #include "gettext.h"
builtin/upload-archive.c +1 -0
@@ -1,6 +1,7 @@/* * Copyright (c) 2006 Franck Bui-Huu */ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "archive.h" #include "path.h"
builtin/var.c +2 -0
@@ -3,7 +3,9 @@* * Copyright (C) Eric Biederman, 2005 */ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" +#include "repository.h" #include "attr.h" #include "config.h" #include "editor.h"
builtin/verify-commit.c +1 -0
@@ -5,6 +5,7 @@* * Based on git-verify-tag */ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "config.h" #include "gettext.h"
builtin/verify-pack.c +1 -0
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "config.h" #include "gettext.h"
builtin/verify-tag.c +2 -0
@@ -5,7 +5,9 @@* * Based on git-verify-tag.sh */ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" +#include "repository.h" #include "config.h" #include "gettext.h" #include "tag.h"
builtin/worktree.c +1 -0
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "abspath.h" #include "advice.h"
builtin/write-tree.c +1 -1
@@ -3,7 +3,7 @@* * Copyright (C) Linus Torvalds, 2005 */ - +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "config.h" #include "environment.h"
Signature · 1 line
gitgitgadget
Re: [PATCH 2/3] builtin: remove USE_THE_REPOSITORY_VARIABLE from builtin.h
Quoted 9 lines · John Cai via GitGitGadget
From: John Cai <[email protected]>
Instead of including
USE_THE_REPOSITORY_VARIABLEby default on every builtin, remove it frombuiltin.hand add it where necessary to individual builtins/*. The next step will be to migrate each builtin from having to usethe_repository.Signed-off-by John Cai <[email protected]>---
We at least need the following fix-up in order to play nice with others, specifically Patrick's ps/environ-wo-the-repository, when the topic is merged to 'seen'.
Thanks.
builtin/init-db.c +2 -0
@@ -3,6 +3,8 @@* * Copyright (C) Linus Torvalds, 2005 */ +#define USE_THE_REPOSITORY_VARIABLE +#include "builtin.h" #include "abspath.h" #include "environment.h"
builtin/mailinfo.c +2 -0
@@ -2,6 +2,8 @@* Another stupid program, this one parsing the headers of an * email to figure out authorship and subject */ +#define USE_THE_REPOSITORY_VARIABLE +#include "builtin.h" #include "abspath.h" #include "environment.h"
Re: [PATCH 2/3] builtin: remove USE_THE_REPOSITORY_VARIABLE from builtin.h
Quoted 9 lines · Junio C Hamano
Quoted 7 lines · John Cai via GitGitGadget
From: John Cai <[email protected]>
Instead of including
USE_THE_REPOSITORY_VARIABLEby default on every builtin, remove it frombuiltin.hand add it where necessary to individual builtins/*. The next step will be to migrate each builtin from having to usethe_repository.
Quoted 6 lines
Quoted 2 lines
Signed-off-by John Cai <[email protected]>---
We at least need the following fix-up in order to play nice with others, specifically Patrick's ps/environ-wo-the-repository, when the topic is merged to 'seen'.
I was wondering whether there were interactions with this topic. Thanks for checking.
Patrick
Re: [PATCH 2/3] builtin: remove USE_THE_REPOSITORY_VARIABLE from builtin.h
In reply to John Cai via GitGitGadgetQuoted 6 lines · John Cai via GitGitGadget
From: John Cai <[email protected]>
Instead of including
USE_THE_REPOSITORY_VARIABLEby default on every builtin, remove it frombuiltin.hand add it where necessary to individual builtins/*. The next step will be to migrate each builtin from having to usethe_repository.
I didn't notice this until I compile-tested the merge result to 'seen', but this omits some files in builtin/*.c hierarchy and add the USE_* variable to the rest.
That makes the step impossible to review this step.
Can we make this step to mechanically (1) remove definition of the USE_* variable from builtin.h and (2) add it to everything that includes builtin.h and (3) do nothing else?
Then each of the files in builtin/*.c that this iteration omitted can explicitly lose the USE_* variable in its own separate follow-up patch (e.g. "this file did not need to access the_repository either directly or indirectly", or "with these changes, this file now does not depend implicitly on the_repository, so lose USE_* definition at the same time").
Thanks.
PATCH 3/3 add: pass in repo variable instead of global the_repository
In reply to John Cai via GitGitGadgetFrom: John Cai <[email protected]>
With the repository variable available in the builtin function as an argument, pass this down into helper functions instead of using the global the_repository.
--- builtin/add.c | 97 +++++++++++++++++++++++++----------------------- builtin/commit.c | 2 +- commit.h | 3 +- 3 files changed, 53 insertions(+), 49 deletions(-)
builtin/add.c +50 -47
@@ -36,24 +36,27 @@ static int pathspec_file_nul;static int include_sparse;static const char *pathspec_from_file; -static int chmod_pathspec (struct pathspec *pathspec,char flip,int show_only) +static int chmod_pathspec (struct pathspec *pathspec, +char flip, +int show_only, +struct repository *repo) {int i, ret =0 ; -for (i =0 ; i < the_repository->index->cache_nr; i++) { -struct cache_entry *ce = the_repository->index->cache[i]; +for (i =0 ; i < repo->index->cache_nr; i++) { +struct cache_entry *ce = repo->index->cache[i];int err;if (!include_sparse && (ce_skip_worktree (ce) || - !path_in_sparse_checkout (ce->name, the_repository->index))) + !path_in_sparse_checkout (ce->name, repo->index)))continue ; -if (pathspec && !ce_path_match (the_repository->index, ce, pathspec,NULL )) +if (pathspec && !ce_path_match (repo->index, ce, pathspec,NULL ))continue ;if (!show_only) - err =chmod_index_entry (the_repository->index, ce, flip); + err =chmod_index_entry (repo->index, ce, flip);else err =S_ISREG (ce->ce_mode) ?0 :-1 ;
@@ -64,31 +67,31 @@ static int chmod_pathspec(struct pathspec *pathspec, char flip, int show_only)return ret; } -static int renormalize_tracked_files (const struct pathspec *pathspec,int flags) +static int renormalize_tracked_files (const struct pathspec *pathspec,int flags,struct repository *repo) {int i, retval =0 ; -for (i =0 ; i < the_repository->index->cache_nr; i++) { -struct cache_entry *ce = the_repository->index->cache[i]; +for (i =0 ; i < repo->index->cache_nr; i++) { +struct cache_entry *ce = repo->index->cache[i];if (!include_sparse && (ce_skip_worktree (ce) || - !path_in_sparse_checkout (ce->name, the_repository->index))) + !path_in_sparse_checkout (ce->name, repo->index)))continue ;if (ce_stage (ce))continue ;/* do not touch unmerged paths */ if (!S_ISREG (ce->ce_mode) && !S_ISLNK (ce->ce_mode))continue ;/* do not touch non blobs */ -if (pathspec && !ce_path_match (the_repository->index, ce, pathspec,NULL )) +if (pathspec && !ce_path_match (repo->index, ce, pathspec,NULL ))continue ; - retval |=add_file_to_index (the_repository->index, ce->name, + retval |=add_file_to_index (repo->index, ce->name, flags |ADD_CACHE_RENORMALIZE ); }return retval; } -static char *prune_directory (struct dir_struct *dir,struct pathspec *pathspec,int prefix) +static char *prune_directory (struct dir_struct *dir,struct pathspec *pathspec,int prefix,struct repository *repo) {char *seen;int i;
@@ -100,16 +103,16 @@ static char *prune_directory(struct dir_struct *dir, struct pathspec *pathspec, i = dir->nr;while (--i >=0 ) {struct dir_entry *entry = *src++; -if (dir_path_match (the_repository->index, entry, pathspec, prefix, seen)) +if (dir_path_match (repo->index, entry, pathspec, prefix, seen)) *dst++ = entry; } dir->nr = dst - dir->entries; -add_pathspec_matches_against_index (pathspec, the_repository->index, seen, +add_pathspec_matches_against_index (pathspec, repo->index, seen,PS_IGNORE_SKIP_WORKTREE );return seen; } -static int refresh (int verbose,const struct pathspec *pathspec) +static int refresh (int verbose,const struct pathspec *pathspec,struct repository *repo) {char *seen;int i, ret =0 ;
@@ -119,14 +122,14 @@ static int refresh(int verbose, const struct pathspec *pathspec) (verbose ?REFRESH_IN_PORCELAIN :REFRESH_QUIET ); seen =xcalloc (pathspec->nr,1 ); -refresh_index (the_repository->index, flags, pathspec, seen, +refresh_index (repo->index, flags, pathspec, seen,_ ("Unstaged changes after refreshing the index:" ));for (i =0 ; i < pathspec->nr; i++) {if (!seen[i]) {const char *path = pathspec->items[i].original;if (matches_skip_worktree (pathspec, i, &skip_worktree_seen) || - !path_in_sparse_checkout (path, the_repository->index)) { + !path_in_sparse_checkout (path, repo->index)) {string_list_append (&only_match_skip_worktree, pathspec->items[i].original); }else {
@@ -147,7 +150,7 @@ static int refresh(int verbose, const struct pathspec *pathspec)return ret; } -int interactive_add (const char **argv,const char *prefix,int patch) +int interactive_add (const char **argv,const char *prefix,int patch,struct repository *repo) {struct pathspec pathspec;int ret;
@@ -159,15 +162,15 @@ int interactive_add(const char **argv, const char *prefix, int patch) prefix, argv);if (patch) - ret = !!run_add_p (the_repository,ADD_P_ADD ,NULL , &pathspec); + ret = !!run_add_p (repo,ADD_P_ADD ,NULL , &pathspec);else - ret = !!run_add_i (the_repository, &pathspec); + ret = !!run_add_i (repo, &pathspec);clear_pathspec (&pathspec);return ret; } -static int edit_patch (int argc,const char **argv,const char *prefix) +static int edit_patch (int argc,const char **argv,const char *prefix,struct repository *repo) {char *file =git_pathdup ("ADD_EDIT.patch" );struct child_process child =CHILD_PROCESS_INIT ;
@@ -177,10 +180,10 @@ static int edit_patch(int argc, const char **argv, const char *prefix)git_config (git_diff_basic_config,NULL );/* no "diff" UI options */ -if (repo_read_index (the_repository) <0 ) +if (repo_read_index (repo) <0 )die (_ ("could not read the index" )); -repo_init_revisions (the_repository, &rev, prefix); +repo_init_revisions (repo, &rev, prefix); rev.diffopt.context =7 ; argc =setup_revisions (argc, argv, &rev,NULL );
@@ -318,7 +321,7 @@ static void check_embedded_repo(const char *path)strbuf_release (&name); } -static int add_files (struct dir_struct *dir,int flags) +static int add_files (struct dir_struct *dir,int flags,struct repository *repo) {int i, exit_status =0 ;struct string_list matched_sparse_paths =STRING_LIST_INIT_NODUP ;
@@ -334,12 +337,12 @@ static int add_files(struct dir_struct *dir, int flags)for (i =0 ; i < dir->nr; i++) {if (!include_sparse && - !path_in_sparse_checkout (dir->entries[i]->name, the_repository->index)) { + !path_in_sparse_checkout (dir->entries[i]->name, repo->index)) {string_list_append (&matched_sparse_paths, dir->entries[i]->name);continue ; } -if (add_file_to_index (the_repository->index, dir->entries[i]->name, flags)) { +if (add_file_to_index (repo->index, dir->entries[i]->name, flags)) {if (!ignore_add_errors)die (_ ("adding files failed" )); exit_status =1 ;
@@ -358,7 +361,7 @@ static int add_files(struct dir_struct *dir, int flags)return exit_status; } -int cmd_add(int argc, const char **argv, const char *prefix, struct repository *repository UNUSED) +int cmd_add (int argc,const char **argv,const char *prefix,struct repository *repo) {int exit_status =0 ;struct pathspec pathspec;
@@ -381,13 +384,13 @@ int cmd_add(int argc, const char **argv, const char *prefix, struct repository *die (_ ("options '%s' and '%s' cannot be used together" ),"--dry-run" ,"--interactive/--patch" );if (pathspec_from_file)die (_ ("options '%s' and '%s' cannot be used together" ),"--pathspec-from-file" ,"--interactive/--patch" ); -exit (interactive_add (argv +1 , prefix, patch_interactive)); +exit (interactive_add (argv +1 , prefix, patch_interactive, repo)); }if (edit_interactive) {if (pathspec_from_file)die (_ ("options '%s' and '%s' cannot be used together" ),"--pathspec-from-file" ,"--edit" ); -return (edit_patch (argc, argv, prefix)); +return (edit_patch (argc, argv, prefix, repo)); } argc--; argv++;
@@ -410,10 +413,10 @@ int cmd_add(int argc, const char **argv, const char *prefix, struct repository * add_new_files = !take_worktree_changes && !refresh_only && !add_renormalize; require_pathspec = !(take_worktree_changes || (0 < addremove_explicit)); -prepare_repo_settings (the_repository); - the_repository->settings.command_requires_full_index =0 ; +prepare_repo_settings (repo); + repo->settings.command_requires_full_index =0 ; -repo_hold_locked_index (the_repository, &lock_file,LOCK_DIE_ON_ERROR ); +repo_hold_locked_index (repo, &lock_file,LOCK_DIE_ON_ERROR );/* * Check the "pathspec '%s' did not match any files" block
@@ -454,11 +457,11 @@ int cmd_add(int argc, const char **argv, const char *prefix, struct repository * (!(addremove || take_worktree_changes) ? ADD_CACHE_IGNORE_REMOVAL : 0)); -if (repo_read_index_preload (the_repository, &pathspec,0 ) <0 ) +if (repo_read_index_preload (repo, &pathspec,0 ) <0 )die (_ ("index file corrupt" )); -die_in_unpopulated_submodule (the_repository->index, prefix); -die_path_inside_submodule (the_repository->index, &pathspec); +die_in_unpopulated_submodule (repo->index, prefix); +die_path_inside_submodule (repo->index, &pathspec);if (add_new_files) {int baselen;
@@ -470,13 +473,13 @@ int cmd_add(int argc, const char **argv, const char *prefix, struct repository * }/* This picks up the paths that are not tracked */ - baselen =fill_directory (&dir, the_repository->index, &pathspec); + baselen =fill_directory (&dir, repo->index, &pathspec);if (pathspec.nr) - seen =prune_directory (&dir, &pathspec, baselen); + seen =prune_directory (&dir, &pathspec, baselen, repo); }if (refresh_only) { - exit_status |=refresh (verbose, &pathspec); + exit_status |=refresh (verbose, &pathspec, repo); goto finish; }
@@ -487,7 +490,7 @@ int cmd_add(int argc, const char **argv, const char *prefix, struct repository *if (!seen) seen =find_pathspecs_matching_against_index (&pathspec, - the_repository->index,PS_IGNORE_SKIP_WORKTREE ); + repo->index,PS_IGNORE_SKIP_WORKTREE );/* * file_exists() assumes exact match
@@ -523,8 +526,8 @@ int cmd_add(int argc, const char **argv, const char *prefix, struct repository * !file_exists(path)) {if (ignore_missing) {int dtype =DT_UNKNOWN ; -if (is_excluded (&dir, the_repository->index, path, &dtype)) -dir_add_ignored (&dir, the_repository->index, +if (is_excluded (&dir, repo->index, path, &dtype)) +dir_add_ignored (&dir, repo->index, path, pathspec.items[i].len); }else die(_("pathspec '%s' did not match any files"),
@@ -547,9 +550,9 @@ int cmd_add(int argc, const char **argv, const char *prefix, struct repository * ps_matched =xcalloc (pathspec.nr,1 );if (add_renormalize) - exit_status |=renormalize_tracked_files (&pathspec, flags); + exit_status |=renormalize_tracked_files (&pathspec, flags, repo);else - exit_status |=add_files_to_cache (the_repository, prefix, + exit_status |=add_files_to_cache (repo, prefix, &pathspec, ps_matched, include_sparse, flags);
@@ -558,14 +561,14 @@ int cmd_add(int argc, const char **argv, const char *prefix, struct repository *exit (128 );if (add_new_files) - exit_status |=add_files (&dir, flags); + exit_status |=add_files (&dir, flags, repo);if (chmod_arg && pathspec.nr) - exit_status |=chmod_pathspec (&pathspec, chmod_arg[0 ], show_only); + exit_status |=chmod_pathspec (&pathspec, chmod_arg[0 ], show_only, repo);end_odb_transaction (); finish: -if (write_locked_index (the_repository->index, &lock_file, +if (write_locked_index (repo->index, &lock_file,COMMIT_LOCK |SKIP_IF_UNCHANGED ))die (_ ("unable to write new index file" ));
builtin/commit.c +1 -1
@@ -396,7 +396,7 @@ static const char *prepare_index(const char **argv, const char *prefix, old_index_env =xstrdup_or_null (getenv (INDEX_ENVIRONMENT ));setenv (INDEX_ENVIRONMENT , the_repository->index_file,1 ); -if (interactive_add (argv, prefix, patch_interactive) !=0 ) +if (interactive_add (argv, prefix, patch_interactive, the_repository) !=0 )die (_ ("interactive add failed" )); the_repository->index_file = old_repo_index_file;
commit.h +2 -1
@@ -2,6 +2,7 @@#define COMMIT_H #include "object.h" +#include "repository.h" struct signature_check ;struct strbuf ;
@@ -253,7 +254,7 @@ struct oid_array;struct ref ;int for_each_commit_graft (each_commit_graft_fn ,void *); -int interactive_add (const char **argv,const char *prefix,int patch); +int interactive_add (const char **argv,const char *prefix,int patch,struct repository *repo);struct commit_extra_header {struct commit_extra_header *next;
Signature · 1 line
gitgitgadget
Re: [PATCH 3/3] add: pass in repo variable instead of global the_repository
builtin/add.c
Quoted 4 lines · John Cai via GitGitGadget
Fr> diff --git
a/builtin/add.cb/builtin/add.c
indexdac832df3e7..a68fd7c8313100644builtin/add.c +0
-0
One thing I'm missing in this patch is it getting rid of USE_THE_REPOSITORY_VARIABLE. Without that change it is impossible to see whether we are now free of the_repository in this file.
builtin/add.c static int pathspec_file_nul; · line 43
Quoted 10 lines
builtin/add.c +4
-1@@ -36,24 +36,27 @@ static int pathspec_file_nul;static int include_sparse;static const char *pathspec_from_file; -static int chmod_pathspec (struct pathspec *pathspec,char flip,int show_only) +static int chmod_pathspec (struct pathspec *pathspec, +char flip, +int show_only, +struct repository *repo) {
Nit: We typically tend to pass the repository as first argument. Also applies to all the other functions.
commit.h line 8
Quoted 12 lines
commit.h +1
-0@@ -2,6 +2,7 @@#define COMMIT_H #include "object.h" +#include "repository.h" struct signature_check ;struct strbuf ;
There is no need for the include here, let's instead add a forward declaration.
Patrick
Quoted 11 lines · John Cai via GitGitGadget
As part of the effort to remove global state of
the_repository, add a repository parameter to builtins so that a repository variable can be passed down. The patches are ordered as follows:1. Changes the signature of builtins and passes
the_repositorydown ingit.cto be called by all builtins.
2. RemoveUSE_THE_REPOSITORY_VARIABLEfrombuiltin.h, and instead add it to each individual builtin. This paves the way for a migration process whereby each builtin can be migrated away from usingthe_repository.
3. As an example, migratebuiltin/add.cto get rid ofthe_repositoryby instead passing the repository argument down into helper functions.
As most of the commands require a repository (as they should---those that work without a repository ought to be outliners, things that are needed to bootstrap like "git init" and "git clone", or those that allow us to interact with a remote repository without having any repository on our side to be affected, like "git archive" or "git ls-remote"), I think this probably makes sense as a good first step.
And there are commands that are primarily for working with Git, but optionally can work outside a repository. They need to do special things in any case by calling setup_git_directory_gently() with nongit to figure out if they are in the repository, e.g.
prefix = setup_git_directory_gently(&nongit);
if (!nongit) {
prepare_repo_settings(the_repository);
the_repository->settings.command_requires_full_index = 0;
} else {
... do whatever it can outside a repository ...
}(note: this was taken from "git diff" with a bit of tweak, but others in the same category should look very similar), so I would imagine that we may want to update setup_git_directory_gently() to be more like:
const char *setup_git_directory_gently(struct repository **repo);
and the above snippet would become:
prefix = setup_git_directory_gently(&repo);
if (repo) {
prepare_repo_settings(repo);
repo->settings.command_requires_full_index = 0;
} else {
...
}IOW, "nongit" Boolean flag we use to say "are we working without a repository?" becomes "the dispatcher in git.c usually gives us the repository in repo, but we asked them not to do the repository setup and we will call setup_git_directory_gently() ourselves, allowing the call to overwrite the repo parameter given."
Thanks.
v2 cover Add repository parameter to builtins
In reply to John Cai via GitGitGadgetAs part of the effort to remove global state of the_repository, add a repository parameter to builtins so that a repository variable can be passed down. The patches are ordered as follows:
1. Changes the signature of builtins and passes the_repository down in git.c to be called by all builtins.
2. Remove USE_THE_REPOSITORY_VARIABLE from builtin.h, and instead add it to each individual builtin. This paves the way for a migration process whereby each builtin can be migrated away from using the_repository.
3. As an example, migrate builtin/add.c to get rid of the_repository by instead passing the repository argument down into helper functions.
Changes since V1:
* Removed USE_THE_REPOSITORY_VARIABLE from add.c
* removed changes that conflict with existing topics in seen
* Fixed overly long lines formatting issues
John Cai (3):
builtin: add a repository parameter for builtin functions
builtin: remove USE_THE_REPOSITORY_VARIABLE from builtin.h
add: pass in repo variable instead of global the_repository
builtin.h | 285 ++++++++++++++--------------- builtin/add.c | 119 ++++++------ builtin/am.c | 7 +- builtin/annotate.c | 9 +- builtin/apply.c | 7 +- builtin/archive.c | 7 +- builtin/bisect.c | 6 +- builtin/blame.c | 8 +- builtin/branch.c | 7 +- builtin/bugreport.c | 6 +- builtin/bundle.c | 7 +- builtin/cat-file.c | 9 +- builtin/check-attr.c | 7 +- builtin/check-ignore.c | 7 +- builtin/check-mailmap.c | 6 +- builtin/check-ref-format.c | 5 +- builtin/checkout--worker.c | 6 +- builtin/checkout-index.c | 8 +- builtin/checkout.c | 16 +- builtin/clean.c | 8 +- builtin/clone.c | 8 +- builtin/column.c | 6 +- builtin/commit-graph.c | 7 +- builtin/commit-tree.c | 8 +- builtin/commit.c | 14 +- builtin/config.c | 7 +- builtin/count-objects.c | 8 +- builtin/credential-cache--daemon.c | 11 +- builtin/credential-cache.c | 5 +- builtin/credential-store.c | 6 +- builtin/credential.c | 7 +- builtin/describe.c | 8 +- builtin/diagnose.c | 5 +- builtin/diff-files.c | 7 +- builtin/diff-index.c | 7 +- builtin/diff-tree.c | 7 +- builtin/diff.c | 7 +- builtin/difftool.c | 8 +- builtin/fast-export.c | 6 +- builtin/fast-import.c | 7 +- builtin/fetch-pack.c | 6 +- builtin/fetch.c | 7 +- builtin/fmt-merge-msg.c | 6 +- builtin/for-each-ref.c | 6 +- builtin/for-each-repo.c | 7 +- builtin/fsck.c | 7 +- builtin/fsmonitor--daemon.c | 10 +- builtin/gc.c | 13 +- builtin/get-tar-commit-id.c | 5 +- builtin/grep.c | 7 +- builtin/hash-object.c | 6 +- builtin/help.c | 7 +- builtin/hook.c | 6 +- builtin/index-pack.c | 6 +- builtin/init-db.c | 7 +- builtin/interpret-trailers.c | 7 +- builtin/log.c | 33 +++- builtin/ls-files.c | 7 +- builtin/ls-remote.c | 6 +- builtin/ls-tree.c | 7 +- builtin/mailinfo.c | 6 +- builtin/mailsplit.c | 5 +- builtin/merge-base.c | 7 +- builtin/merge-file.c | 6 +- builtin/merge-index.c | 7 +- builtin/merge-ours.c | 8 +- builtin/merge-recursive.c | 7 +- builtin/merge-tree.c | 7 +- builtin/merge.c | 12 +- builtin/mktag.c | 6 +- builtin/mktree.c | 7 +- builtin/multi-pack-index.c | 7 +- builtin/mv.c | 8 +- builtin/name-rev.c | 7 +- builtin/notes.c | 9 +- builtin/pack-objects.c | 7 +- builtin/pack-redundant.c | 10 +- builtin/pack-refs.c | 7 +- builtin/patch-id.c | 6 +- builtin/prune-packed.c | 5 +- builtin/prune.c | 6 +- builtin/pull.c | 6 +- builtin/push.c | 7 +- builtin/range-diff.c | 8 +- builtin/read-tree.c | 8 +- builtin/rebase.c | 8 +- builtin/receive-pack.c | 8 +- builtin/reflog.c | 11 +- builtin/refs.c | 7 +- builtin/remote-ext.c | 5 +- builtin/remote-fd.c | 5 +- builtin/remote.c | 6 +- builtin/repack.c | 6 +- builtin/replace.c | 8 +- builtin/replay.c | 6 +- builtin/rerere.c | 8 +- builtin/reset.c | 7 +- builtin/rev-list.c | 6 +- builtin/rev-parse.c | 8 +- builtin/revert.c | 12 +- builtin/rm.c | 9 +- builtin/send-pack.c | 6 +- builtin/shortlog.c | 7 +- builtin/show-branch.c | 8 +- builtin/show-index.c | 7 +- builtin/show-ref.c | 6 +- builtin/sparse-checkout.c | 7 +- builtin/stash.c | 6 +- builtin/stripspace.c | 6 +- builtin/submodule--helper.c | 8 +- builtin/symbolic-ref.c | 6 +- builtin/tag.c | 7 +- builtin/unpack-file.c | 6 +- builtin/unpack-objects.c | 6 +- builtin/update-index.c | 8 +- builtin/update-ref.c | 7 +- builtin/update-server-info.c | 6 +- builtin/upload-archive.c | 12 +- builtin/upload-pack.c | 5 +- builtin/var.c | 7 +- builtin/verify-commit.c | 7 +- builtin/verify-pack.c | 6 +- builtin/verify-tag.c | 6 +- builtin/worktree.c | 7 +- builtin/write-tree.c | 8 +- commit.h | 5 +- git.c | 12 +- help.c | 3 +- stkOs5Qh | Bin 0 -> 10485768 bytes 129 files changed, 903 insertions(+), 436 deletions(-) create mode 100644 stkOs5Qh
base-commit: 4590f2e9412378c61eac95966709c78766d326ba
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-git-1778%2Fjohn-cai%2Fjc%2Fadd-the-repository-to-builtin-signature-v2
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-git-1778/john-cai/jc/add-the-repository-to-builtin-signature-v2
Pull-Request: https://github.com/git/git/pull/1778
Range-diff vs v1:
1: 3301a34f763 ! 1: 9aaf9662544 builtin: add a repository parameter for builtin functions
@@ builtin.h: int is_builtin(const char *s);
#endif
## builtin/add.c ##
+@@ builtin/add.c: int interactive_add(const char **argv, const char *prefix, int patch)
+ return ret;
+ }
+
+-static int edit_patch(int argc, const char **argv, const char *prefix) ++static int edit_patch(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
+ {
+ char *file = git_pathdup("ADD_EDIT.patch");
+ struct child_process child = CHILD_PROCESS_INIT;
@@ builtin/add.c: static int add_files(struct dir_struct *dir, int flags)
return exit_status;
}
-int cmd_add(int argc, const char **argv, const char *prefix)
-+int cmd_add(int argc, const char **argv, const char *prefix, struct repository *repository UNUSED) ++int cmd_add(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
int exit_status = 0;
struct pathspec pathspec;
+@@ builtin/add.c: int cmd_add(int argc, const char **argv, const char *prefix)
+ if (edit_interactive) {
+ if (pathspec_from_file)
+ die(_("options '%s' and '%s' cannot be used together"), "--pathspec-from-file", "--edit");
+- return(edit_patch(argc, argv, prefix));
++ return(edit_patch(argc, argv, prefix, the_repository));
+ }
+ argc--;
+ argv++;
## builtin/am.c ##
@@ builtin/am.c: static int parse_opt_show_current_patch(const struct option *opt, const char *ar
@@ builtin/am.c: static int parse_opt_show_current_patch(const struct option *opt,
}
-int cmd_am(int argc, const char **argv, const char *prefix)
-+int cmd_am(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_am(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
struct am_state state;
int binary = -1;
@@ builtin/annotate.c
#include "strvec.h"
-int cmd_annotate(int argc, const char **argv, const char *prefix)
-+int cmd_annotate(int argc, const char **argv, const char *prefix, struct repository *repo) ++int cmd_annotate(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
struct strvec args = STRVEC_INIT;
int i;
@@ builtin/annotate.c: int cmd_annotate(int argc, const char **argv, const char *pr
}
- return cmd_blame(args.nr, args.v, prefix);
-+ return cmd_blame(args.nr, args.v, prefix, repo);
++ return cmd_blame(args.nr, args.v, prefix, the_repository);
}
## builtin/apply.c ##
@@ builtin/apply.c: static const char * const apply_usage[] = {
};
-int cmd_apply(int argc, const char **argv, const char *prefix)
-+int cmd_apply(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_apply(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
int force_apply = 0;
int options = 0;
@@ builtin/archive.c: static int run_remote_archiver(int argc, const char **argv,
PARSE_OPT_NO_INTERNAL_HELP )
-int cmd_archive(int argc, const char **argv, const char *prefix)
-+int cmd_archive(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_archive(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
const char *exec = "git-upload-archive";
char *output = NULL;
@@ builtin/bisect.c: static int cmd_bisect__run(int argc, const char **argv, const
}
-int cmd_bisect(int argc, const char **argv, const char *prefix)
-+int cmd_bisect(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_bisect(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
int res = 0;
parse_opt_subcommand_fn *fn = NULL;
@@ builtin/blame.c: static void build_ignorelist(struct blame_scoreboard *sb,
}
-int cmd_blame(int argc, const char **argv, const char *prefix)
-+int cmd_blame(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_blame(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
struct rev_info revs;
char *path = NULL;
@@ builtin/branch.c: static int edit_branch_description(const char *branch_name)
}
-int cmd_branch(int argc, const char **argv, const char *prefix)
-+int cmd_branch(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_branch(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
/* possible actions */
int delete = 0, rename = 0, copy = 0, list = 0,
@@ builtin/bugreport.c: static void get_header(struct strbuf *buf, const char *titl
}
-int cmd_bugreport(int argc, const char **argv, const char *prefix)
-+int cmd_bugreport(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_bugreport(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
struct strbuf buffer = STRBUF_INIT;
struct strbuf report_path = STRBUF_INIT;
@@ builtin/bundle.c: cleanup:
}
-int cmd_bundle(int argc, const char **argv, const char *prefix)
-+int cmd_bundle(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_bundle(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
parse_opt_subcommand_fn *fn = NULL;
struct option options[] = {
@@ builtin/cat-file.c: static int batch_option_callback(const struct option *opt,
}
-int cmd_cat_file(int argc, const char **argv, const char *prefix)
-+int cmd_cat_file(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_cat_file(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
int opt = 0;
int opt_cw = 0;
@@ builtin/check-attr.c: static NORETURN void error_with_usage(const char *msg)
}
-int cmd_check_attr(int argc, const char **argv, const char *prefix)
-+int cmd_check_attr(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_check_attr(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
struct attr_check *check;
struct object_id initialized_oid;
@@ builtin/check-ignore.c: static int check_ignore_stdin_paths(struct dir_struct *d
}
-int cmd_check_ignore(int argc, const char **argv, const char *prefix)
-+int cmd_check_ignore(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_check_ignore(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
int num_ignored;
struct dir_struct dir = DIR_INIT;
@@ builtin/check-mailmap.c: static void check_mailmap(struct string_list *mailmap,
}
-int cmd_check_mailmap(int argc, const char **argv, const char *prefix)
-+int cmd_check_mailmap(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_check_mailmap(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
int i;
struct string_list mailmap = STRING_LIST_INIT_NODUP;
@@ builtin/check-ref-format.c: static int check_ref_format_branch(const char *arg)
}
-int cmd_check_ref_format(int argc, const char **argv, const char *prefix)
-+int cmd_check_ref_format(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_check_ref_format(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
int i;
int normalize = 0;
@@ builtin/checkout--worker.c: static const char * const checkout_worker_usage[] =
};
-int cmd_checkout__worker(int argc, const char **argv, const char *prefix)
-+int cmd_checkout__worker(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_checkout__worker(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
struct checkout state = CHECKOUT_INIT;
struct option checkout_worker_options[] = {
@@ builtin/checkout-index.c: static int option_parse_stage(const struct option *opt
}
-int cmd_checkout_index(int argc, const char **argv, const char *prefix)
-+int cmd_checkout_index(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_checkout_index(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
int i;
struct lock_file lock_file = LOCK_INIT;
@@ builtin/checkout.c: static int checkout_main(int argc, const char **argv, const
}
-int cmd_checkout(int argc, const char **argv, const char *prefix)
-+int cmd_checkout(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_checkout(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
struct checkout_opts opts = CHECKOUT_OPTS_INIT;
struct option *options;
@@ builtin/checkout.c: int cmd_checkout(int argc, const char **argv, const char *pr
}
-int cmd_switch(int argc, const char **argv, const char *prefix)
-+int cmd_switch(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_switch(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
struct checkout_opts opts = CHECKOUT_OPTS_INIT;
struct option *options = NULL;
@@ builtin/checkout.c: int cmd_switch(int argc, const char **argv, const char *pref
}
-int cmd_restore(int argc, const char **argv, const char *prefix)
-+int cmd_restore(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_restore(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
struct checkout_opts opts = CHECKOUT_OPTS_INIT;
struct option *options;
@@ builtin/clean.c: static void correct_untracked_entries(struct dir_struct *dir)
}
-int cmd_clean(int argc, const char **argv, const char *prefix)
-+int cmd_clean(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_clean(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
int i, res;
int dry_run = 0, remove_directories = 0, quiet = 0, ignored = 0;
@@ builtin/clone.c: static int path_exists(const char *path)
}
-int cmd_clone(int argc, const char **argv, const char *prefix)
-+int cmd_clone(int argc, const char **argv, const char *prefix, struct repository *repository UNUSED) ++int cmd_clone(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repository UNUSED)
{
int is_bundle = 0, is_local;
int reject_shallow = 0;
@@ builtin/column.c: static int column_config(const char *var, const char *value,
}
-int cmd_column(int argc, const char **argv, const char *prefix)
-+int cmd_column(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_column(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
struct string_list list = STRING_LIST_INIT_DUP;
struct strbuf sb = STRBUF_INIT;
@@ builtin/commit-graph.c: cleanup:
}
-int cmd_commit_graph(int argc, const char **argv, const char *prefix)
-+int cmd_commit_graph(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_commit_graph(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
parse_opt_subcommand_fn *fn = NULL;
struct option builtin_commit_graph_options[] = {
@@ builtin/commit-tree.c: static int parse_file_arg_callback(const struct option *o
}
-int cmd_commit_tree(int argc, const char **argv, const char *prefix)
-+int cmd_commit_tree(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_commit_tree(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
static struct strbuf buffer = STRBUF_INIT;
struct commit_list *parents = NULL;
@@ builtin/commit.c: static int git_status_config(const char *k, const char *v,
}
-int cmd_status(int argc, const char **argv, const char *prefix)
-+int cmd_status(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_status(int argc,
++const char **argv,
++const char *prefix,
++struct repository *repo UNUSED)
{
static int no_renames = -1;
static const char *rename_score_arg = (const char *)-1;
@@ builtin/commit.c: static int git_commit_config(const char *k, const char *v,
}
-int cmd_commit(int argc, const char **argv, const char *prefix)
-+int cmd_commit(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_commit(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
static struct wt_status s;
static struct option builtin_commit_options[] = {
@@ builtin/config.c: out:
}
-int cmd_config(int argc, const char **argv, const char *prefix)
-+int cmd_config(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_config(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
parse_opt_subcommand_fn *subcommand = NULL;
struct option subcommand_opts[] = {
@@ builtin/count-objects.c: static char const * const count_objects_usage[] = {
};
-int cmd_count_objects(int argc, const char **argv, const char *prefix)
-+int cmd_count_objects(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_count_objects(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
int human_readable = 0;
struct option opts[] = {
@@ builtin/credential-cache--daemon.c: static void init_socket_directory(const char
}
-int cmd_credential_cache_daemon(int argc, const char **argv, const char *prefix)
-+int cmd_credential_cache_daemon(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_credential_cache_daemon(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
struct tempfile *socket_file;
const char *socket_path;
@@ builtin/credential-cache--daemon.c: int cmd_credential_cache_daemon(int argc, co
#else
-int cmd_credential_cache_daemon(int argc, const char **argv, const char *prefix)
-+int cmd_credential_cache_daemon(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_credential_cache_daemon(int argc,
++const char **argv,
++const char *prefix,
++struct repository *repo UNUSED)
{
const char * const usage[] = {
"git credential-cache--daemon [--debug] <socket-path>",
@@ builtin/credential-cache.c: static void announce_capabilities(void)
}
-int cmd_credential_cache(int argc, const char **argv, const char *prefix)
-+int cmd_credential_cache(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_credential_cache(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
const char *socket_path_arg = NULL;
char *socket_path;
@@ builtin/credential-store.c: static void lookup_credential(const struct string_li
}
-int cmd_credential_store(int argc, const char **argv, const char *prefix)
-+int cmd_credential_store(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_credential_store(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
const char * const usage[] = {
"git credential-store [<options>] <action>",
@@ builtin/credential.c
"git credential (fill|approve|reject)";
-int cmd_credential(int argc, const char **argv, const char *prefix UNUSED)
-+int cmd_credential(int argc, const char **argv, const char *prefix UNUSED, struct repository *repo UNUSED) ++int cmd_credential(int argc,
++ const char **argv,
++ const char *prefix UNUSED,
++ struct repository *repo UNUSED)
{
const char *op;
struct credential c = CREDENTIAL_INIT;
@@ builtin/describe.c: static int option_parse_exact_match(const struct option *opt
}
-int cmd_describe(int argc, const char **argv, const char *prefix)
-+int cmd_describe(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED ) ++int cmd_describe(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED )
{
int contains = 0;
struct option options[] = {
@@ builtin/diagnose.c: static const char * const diagnose_usage[] = {
};
-int cmd_diagnose(int argc, const char **argv, const char *prefix)
-+int cmd_diagnose(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_diagnose(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
struct strbuf zip_path = STRBUF_INIT;
time_t now = time(NULL);
@@ builtin/diff-files.c: static const char diff_files_usage[] =
COMMON_DIFF_OPTIONS_HELP;
-int cmd_diff_files(int argc, const char **argv, const char *prefix)
-+int cmd_diff_files(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_diff_files(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
struct rev_info rev;
int result;
@@ builtin/diff-index.c: static const char diff_cache_usage[] =
COMMON_DIFF_OPTIONS_HELP;
-int cmd_diff_index(int argc, const char **argv, const char *prefix)
-+int cmd_diff_index(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_diff_index(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
struct rev_info rev;
unsigned int option = 0;
@@ builtin/diff-tree.c: static void diff_tree_tweak_rev(struct rev_info *rev)
}
-int cmd_diff_tree(int argc, const char **argv, const char *prefix)
-+int cmd_diff_tree(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_diff_tree(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
char line[1000];
struct object *tree1, *tree2;
@@ builtin/diff.c: static void symdiff_release(struct symdiff *sdiff)
}
-int cmd_diff(int argc, const char **argv, const char *prefix)
-+int cmd_diff(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_diff(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
int i;
struct rev_info rev;
@@ builtin/difftool.c: static int run_file_diff(int prompt, const char *prefix,
}
-int cmd_difftool(int argc, const char **argv, const char *prefix)
-+int cmd_difftool(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_difftool(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
int use_gui_tool = -1, dir_diff = 0, prompt = -1, symlinks = 0,
tool_help = 0, no_index = 0;
@@ builtin/fast-export.c: static int parse_opt_anonymize_map(const struct option *o
}
-int cmd_fast_export(int argc, const char **argv, const char *prefix)
-+int cmd_fast_export(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_fast_export(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
struct rev_info revs;
struct commit *commit;
@@ builtin/fast-import.c: static void parse_argv(void)
}
-int cmd_fast_import(int argc, const char **argv, const char *prefix)
-+int cmd_fast_import(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_fast_import(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
unsigned int i;
@@ builtin/fetch-pack.c: static void add_sought_entry(struct ref ***sought, int *nr
}
-int cmd_fetch_pack(int argc, const char **argv, const char *prefix UNUSED)
-+int cmd_fetch_pack(int argc, const char **argv, const char *prefix UNUSED, struct repository *repo UNUSED) ++int cmd_fetch_pack(int argc,
++ const char **argv,
++ const char *prefix UNUSED,
++ struct repository *repo UNUSED)
{
int i, ret;
struct ref *ref = NULL;
@@ builtin/fetch.c: static int fetch_one(struct remote *remote, int argc, const cha
}
-int cmd_fetch(int argc, const char **argv, const char *prefix)
-+int cmd_fetch(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_fetch(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
struct fetch_config config = {
.display_format = DISPLAY_FORMAT_FULL,
@@ builtin/fmt-merge-msg.c: static const char * const fmt_merge_msg_usage[] = {
};
-int cmd_fmt_merge_msg(int argc, const char **argv, const char *prefix)
-+int cmd_fmt_merge_msg(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_fmt_merge_msg(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
char *inpath = NULL;
const char *message = NULL;
@@ builtin/for-each-ref.c: static char const * const for_each_ref_usage[] = {
};
-int cmd_for_each_ref(int argc, const char **argv, const char *prefix)
-+int cmd_for_each_ref(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_for_each_ref(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
struct ref_sorting *sorting;
struct string_list sorting_options = STRING_LIST_INIT_DUP;
@@ builtin/for-each-repo.c: static int run_command_on_repo(const char *path, int ar
}
-int cmd_for_each_repo(int argc, const char **argv, const char *prefix)
-+int cmd_for_each_repo(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_for_each_repo(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
static const char *config_key = NULL;
int keep_going = 0;
@@ builtin/fsck.c: static struct option fsck_opts[] = {
};
-int cmd_fsck(int argc, const char **argv, const char *prefix)
-+int cmd_fsck(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_fsck(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
int i;
struct object_directory *odb;
@@ builtin/fsmonitor--daemon.c: static int try_to_start_background_daemon(void)
}
-int cmd_fsmonitor__daemon(int argc, const char **argv, const char *prefix)
-+int cmd_fsmonitor__daemon(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_fsmonitor__daemon(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
const char *subcmd;
enum fsmonitor_reason reason;
@@ builtin/gc.c: static void gc_before_repack(struct maintenance_run_opts *opts,
}
-int cmd_gc(int argc, const char **argv, const char *prefix)
-+int cmd_gc(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_gc(int argc,
++const char **argv,
++const char *prefix,
++struct repository *repo UNUSED)
{
int aggressive = 0;
int quiet = 0;
@@ builtin/gc.c: static const char * const builtin_maintenance_usage[] = {
};
-int cmd_maintenance(int argc, const char **argv, const char *prefix)
-+int cmd_maintenance(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_maintenance(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
parse_opt_subcommand_fn *fn = NULL;
struct option builtin_maintenance_options[] = {
@@ builtin/get-tar-commit-id.c: static const char builtin_get_tar_commit_id_usage[]
#define HEADERSIZE (2 * RECORDSIZE)
-int cmd_get_tar_commit_id(int argc, const char **argv UNUSED, const char *prefix)
-+int cmd_get_tar_commit_id(int argc, const char **argv UNUSED, const char *prefix, struct repository *repo UNUSED) ++int cmd_get_tar_commit_id(int argc,
++ const char **argv UNUSED,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
char buffer[HEADERSIZE];
struct ustar_header *header = (struct ustar_header *)buffer;
@@ builtin/grep.c: static int pattern_callback(const struct option *opt, const char
}
-int cmd_grep(int argc, const char **argv, const char *prefix)
-+int cmd_grep(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_grep(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
int hit = 0;
int cached = 0, untracked = 0, opt_exclude = -1;
@@ builtin/hash-object.c: static void hash_stdin_paths(const char *type, int no_fil
}
-int cmd_hash_object(int argc, const char **argv, const char *prefix)
-+int cmd_hash_object(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_hash_object(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
static const char * const hash_object_usage[] = {
N_("git hash-object [-t <type>] [-w] [--path=<file> | --no-filters]\n"
@@ builtin/help.c: static void opt_mode_usage(int argc, const char *opt_mode,
}
-int cmd_help(int argc, const char **argv, const char *prefix)
-+int cmd_help(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_help(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
int nongit;
enum help_format parsed_help_format;
@@ builtin/hook.c: usage:
}
-int cmd_hook(int argc, const char **argv, const char *prefix)
-+int cmd_hook(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_hook(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
parse_opt_subcommand_fn *fn = NULL;
struct option builtin_hook_options[] = {
@@ builtin/index-pack.c: static void show_pack_info(int stat_only)
}
-int cmd_index_pack(int argc, const char **argv, const char *prefix)
-+int cmd_index_pack(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_index_pack(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
int i, fix_thin_pack = 0, verify = 0, stat_only = 0, rev_index;
const char *curr_index;
@@ builtin/init-db.c: static const char *const init_db_usage[] = {
* be the judge. The default case is to have one DB per managed directory.
*/
-int cmd_init_db(int argc, const char **argv, const char *prefix)
-+int cmd_init_db(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_init_db(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
const char *git_dir;
const char *real_git_dir = NULL;
@@ builtin/interpret-trailers.c: static void interpret_trailers(const struct proces
}
-int cmd_interpret_trailers(int argc, const char **argv, const char *prefix)
-+int cmd_interpret_trailers(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_interpret_trailers(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
struct process_trailer_options opts = PROCESS_TRAILER_OPTIONS_INIT; LIST_HEAD(trailers);
@@ builtin/log.c: static int git_log_config(const char *var, const char *value,
}
-int cmd_whatchanged(int argc, const char **argv, const char *prefix)
-+int cmd_whatchanged(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_whatchanged(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
struct log_config cfg;
struct rev_info rev;
@@ builtin/log.c: static void show_setup_revisions_tweak(struct rev_info *rev)
}
-int cmd_show(int argc, const char **argv, const char *prefix)
-+int cmd_show(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_show(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
struct log_config cfg;
struct rev_info rev;
@@ builtin/log.c: int cmd_show(int argc, const char **argv, const char *prefix)
* This is equivalent to "git log -g --abbrev-commit --pretty=oneline"
*/
-int cmd_log_reflog(int argc, const char **argv, const char *prefix)
-+int cmd_log_reflog(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_log_reflog(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
struct log_config cfg;
struct rev_info rev;
@@ builtin/log.c: static void log_setup_revisions_tweak(struct rev_info *rev)
}
-int cmd_log(int argc, const char **argv, const char *prefix)
-+int cmd_log(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_log(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
struct log_config cfg;
struct rev_info rev;
@@ builtin/log.c: static void infer_range_diff_ranges(struct strbuf *r1,
}
-int cmd_format_patch(int argc, const char **argv, const char *prefix)
-+int cmd_format_patch(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_format_patch(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
struct format_config cfg;
struct commit *commit;
@@ builtin/log.c: static void print_commit(char sign, struct commit *commit, int ve
}
-int cmd_cherry(int argc, const char **argv, const char *prefix)
-+int cmd_cherry(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_cherry(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
struct rev_info revs;
struct patch_ids ids;
@@ builtin/ls-files.c: static int option_parse_exclude_standard(const struct option
}
-int cmd_ls_files(int argc, const char **argv, const char *cmd_prefix)
-+int cmd_ls_files(int argc, const char **argv, const char *cmd_prefix, struct repository *repo UNUSED) ++int cmd_ls_files(int argc,
++ const char **argv,
++ const char *cmd_prefix,
++ struct repository *repo UNUSED)
{
int require_work_tree = 0, show_tag = 0, i;
char *max_prefix;
@@ builtin/ls-remote.c: static int tail_match(const struct strvec *pattern, const c
}
-int cmd_ls_remote(int argc, const char **argv, const char *prefix)
-+int cmd_ls_remote(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_ls_remote(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
const char *dest = NULL;
unsigned flags = 0;
@@ builtin/ls-tree.c: static struct ls_tree_cmdmode_to_fmt ls_tree_cmdmode_format[]
};
-int cmd_ls_tree(int argc, const char **argv, const char *prefix)
-+int cmd_ls_tree(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_ls_tree(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
struct object_id oid;
struct tree *tree;
@@ builtin/mailinfo.c: static int parse_opt_quoted_cr(const struct option *opt, con
}
-int cmd_mailinfo(int argc, const char **argv, const char *prefix)
-+int cmd_mailinfo(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_mailinfo(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
struct metainfo_charset meta_charset;
struct mailinfo mi;
@@ builtin/mailsplit.c: out:
}
-int cmd_mailsplit(int argc, const char **argv, const char *prefix)
-+int cmd_mailsplit(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_mailsplit(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
int nr = 0, nr_prec = 4, num = 0;
int allow_bare = 0;
@@ builtin/merge-base.c: static int handle_fork_point(int argc, const char **argv)
}
-int cmd_merge_base(int argc, const char **argv, const char *prefix)
-+int cmd_merge_base(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_merge_base(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
struct commit **rev;
int rev_nr = 0;
@@ builtin/merge-file.c: static int diff_algorithm_cb(const struct option *opt,
}
-int cmd_merge_file(int argc, const char **argv, const char *prefix)
-+int cmd_merge_file(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_merge_file(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
const char *names[3] = { 0 };
mmfile_t mmfs[3] = { 0 };
@@ builtin/merge-index.c: static void merge_all(void)
}
-int cmd_merge_index(int argc, const char **argv, const char *prefix UNUSED)
-+int cmd_merge_index(int argc, const char **argv, const char *prefix UNUSED, struct repository *repo UNUSED) ++int cmd_merge_index(int argc,
++ const char **argv,
++ const char *prefix UNUSED,
++ struct repository *repo UNUSED)
{
int i, force_file = 0;
@@ builtin/merge-ours.c
"git merge-ours <base>... -- HEAD <remote>...";
-int cmd_merge_ours(int argc, const char **argv, const char *prefix UNUSED)
-+int cmd_merge_ours(int argc, const char **argv, const char *prefix UNUSED, struct repository *repo UNUSED) ++int cmd_merge_ours(int argc,
++ const char **argv,
++ const char *prefix UNUSED,
++ struct repository *repo UNUSED)
{
if (argc == 2 && !strcmp(argv[1], "-h"))
usage(builtin_merge_ours_usage);
@@ builtin/merge-recursive.c: static char *better_branch_name(const char *branch)
}
-int cmd_merge_recursive(int argc, const char **argv, const char *prefix UNUSED)
-+int cmd_merge_recursive(int argc, const char **argv, const char *prefix UNUSED, struct repository *repo UNUSED) ++int cmd_merge_recursive(int argc,
++ const char **argv,
++ const char *prefix UNUSED,
++ struct repository *repo UNUSED)
{
struct object_id bases[21];
unsigned bases_count = 0;
@@ builtin/merge-tree.c: static int real_merge(struct merge_tree_options *o,
}
-int cmd_merge_tree(int argc, const char **argv, const char *prefix)
-+int cmd_merge_tree(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_merge_tree(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
struct merge_tree_options o = { .show_messages = -1 };
struct strvec xopts = STRVEC_INIT;
@@ builtin/merge.c: static int merging_a_throwaway_tag(struct commit *commit)
}
-int cmd_merge(int argc, const char **argv, const char *prefix)
-+int cmd_merge(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_merge(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
struct object_id result_tree, stash, head_oid;
struct commit *head_commit;
@@ builtin/mktag.c: static int verify_object_in_tag(struct object_id *tagged_oid, i
}
-int cmd_mktag(int argc, const char **argv, const char *prefix)
-+int cmd_mktag(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_mktag(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
static struct option builtin_mktag_options[] = {
OPT_BOOL(0, "strict", &option_strict,
@@ builtin/mktree.c: static void mktree_line(char *buf, int nul_term_line, int allo
}
-int cmd_mktree(int ac, const char **av, const char *prefix)
-+int cmd_mktree(int ac, const char **av, const char *prefix, struct repository *repo UNUSED) ++int cmd_mktree(int ac,
++ const char **av,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
struct strbuf sb = STRBUF_INIT;
struct object_id oid;
+@@ builtin/mktree.c: int cmd_mktree(int ac, const char **av, const char *prefix)
+ used=0; /* reset tree entry buffer for re-use in batch mode */
+ }
+ strbuf_release(&sb);
++
+ return 0;
+ }
## builtin/multi-pack-index.c ##
@@ builtin/multi-pack-index.c: static int cmd_multi_pack_index_repack(int argc, const char **argv,
+ (size_t)opts.batch_size, opts.flags);
}
- int cmd_multi_pack_index(int argc, const char **argv,
+-int cmd_multi_pack_index(int argc, const char **argv,
- const char *prefix)
-+ const char *prefix, struct repository *repo UNUSED)
++int cmd_multi_pack_index(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
int res;
parse_opt_subcommand_fn *fn = NULL;
@@ builtin/mv.c: static void remove_empty_src_dirs(const char **src_dir, size_t src
}
-int cmd_mv(int argc, const char **argv, const char *prefix)
-+int cmd_mv(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_mv(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
int i, flags, gitmodules_modified = 0;
int verbose = 0, show_only = 0, force = 0, ignore_errors = 0, ignore_sparse = 0;
@@ builtin/name-rev.c: static void name_rev_line(char *p, struct name_ref_data *dat
}
-int cmd_name_rev(int argc, const char **argv, const char *prefix)
-+int cmd_name_rev(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_name_rev(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
struct mem_pool string_pool;
struct object_array revs = OBJECT_ARRAY_INIT;
@@ builtin/notes.c: static int get_ref(int argc, const char **argv, const char *pre
}
-int cmd_notes(int argc, const char **argv, const char *prefix)
-+int cmd_notes(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_notes(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
const char *override_notes_ref = NULL;
parse_opt_subcommand_fn *fn = NULL;
@@ builtin/pack-objects.c: static int option_parse_cruft_expiration(const struct op
}
-int cmd_pack_objects(int argc, const char **argv, const char *prefix)
-+int cmd_pack_objects(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_pack_objects(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
int use_internal_rev_list = 0;
int shallow = 0;
@@ builtin/pack-redundant.c: static void load_all(void)
}
-int cmd_pack_redundant(int argc, const char **argv, const char *prefix UNUSED)
-+int cmd_pack_redundant(int argc, const char **argv, const char *prefix UNUSED, struct repository *repo UNUSED)
- {
- int i;
- int i_still_use_this = 0;
+-{
+- int i;
+- int i_still_use_this = 0;
+- struct pack_list *min = NULL, *red, *pl;
++int cmd_pack_redundant(int argc, const char **argv, const char *prefix UNUSED, struct repository *repo UNUSED) {
++ int i; int i_still_use_this = 0; struct pack_list *min = NULL, *red, *pl;
+ struct llist *ignore;
+ struct object_id *oid;
+ char buf[GIT_MAX_HEXSZ + 2]; /* hex hash + \n + \0 */
## builtin/pack-refs.c ##
@@ builtin/pack-refs.c: static char const * const pack_refs_usage[] = {
@@ builtin/pack-refs.c: static char const * const pack_refs_usage[] = {
};
-int cmd_pack_refs(int argc, const char **argv, const char *prefix)
-+int cmd_pack_refs(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_pack_refs(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
struct ref_exclusions excludes = REF_EXCLUSIONS_INIT;
struct string_list included_refs = STRING_LIST_INIT_NODUP;
@@ builtin/patch-id.c: static int git_patch_id_config(const char *var, const char *
}
-int cmd_patch_id(int argc, const char **argv, const char *prefix)
-+int cmd_patch_id(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_patch_id(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
/* if nothing is set, default to unstable */
struct patch_id_opts config = {0, 0};
@@ builtin/prune-packed.c: static const char * const prune_packed_usage[] = {
};
-int cmd_prune_packed(int argc, const char **argv, const char *prefix)
-+int cmd_prune_packed(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_prune_packed(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
int opts = isatty(2) ? PRUNE_PACKED_VERBOSE : 0;
const struct option prune_packed_options[] = {
@@ builtin/prune.c: static void remove_temporary_files(const char *path)
}
-int cmd_prune(int argc, const char **argv, const char *prefix)
-+int cmd_prune(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_prune(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
struct rev_info revs;
int exclude_promisor_objects = 0;
@@ builtin/pull.c: static void show_advice_pull_non_ff(void)
}
-int cmd_pull(int argc, const char **argv, const char *prefix)
-+int cmd_pull(int argc, const char **argv, const char *prefix, struct repository *repository UNUSED) ++int cmd_pull(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repository UNUSED)
{
const char *repo, **refspecs;
struct oid_array merge_heads = OID_ARRAY_INIT;
@@ builtin/push.c: static int git_push_config(const char *k, const char *v,
}
-int cmd_push(int argc, const char **argv, const char *prefix)
-+int cmd_push(int argc, const char **argv, const char *prefix, struct repository *repository UNUSED) ++int cmd_push(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repository UNUSED)
{
int flags = 0;
int tags = 0;
@@ builtin/range-diff.c: N_("git range-diff [<options>] <base> <old-tip> <new-tip>"
};
-int cmd_range_diff(int argc, const char **argv, const char *prefix)
-+int cmd_range_diff(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_range_diff(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
struct diff_options diffopt = { NULL };
struct strvec other_arg = STRVEC_INIT;
@@ builtin/read-tree.c: static int git_read_tree_config(const char *var, const char
}
-int cmd_read_tree(int argc, const char **argv, const char *cmd_prefix)
-+int cmd_read_tree(int argc, const char **argv, const char *cmd_prefix, struct repository *repo UNUSED) ++int cmd_read_tree(int argc,
++ const char **argv,
++ const char *cmd_prefix,
++ struct repository *repo UNUSED)
{
int i, stage = 0;
struct object_id oid;
@@ builtin/rebase.c: static int check_exec_cmd(const char *cmd)
}
-int cmd_rebase(int argc, const char **argv, const char *prefix)
-+int cmd_rebase(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_rebase(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
struct rebase_options options = REBASE_OPTIONS_INIT;
const char *branch_name;
@@ builtin/receive-pack.c: static int delete_only(struct command *commands)
}
-int cmd_receive_pack(int argc, const char **argv, const char *prefix)
-+int cmd_receive_pack(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_receive_pack(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
int advertise_refs = 0;
struct command *commands;
@@ builtin/reflog.c: static int cmd_reflog_exists(int argc, const char **argv, cons
*/
-int cmd_reflog(int argc, const char **argv, const char *prefix)
-+int cmd_reflog(int argc, const char **argv, const char *prefix, struct repository *repository) ++int cmd_reflog(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repository)
{
parse_opt_subcommand_fn *fn = NULL;
struct option options[] = {
@@ builtin/refs.c: static int cmd_refs_verify(int argc, const char **argv, const ch
}
-int cmd_refs(int argc, const char **argv, const char *prefix)
-+int cmd_refs(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_refs(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
const char * const refs_usage[] = {
REFS_MIGRATE_USAGE,
@@ builtin/remote-ext.c: static int command_loop(const char *child)
}
-int cmd_remote_ext(int argc, const char **argv, const char *prefix)
-+int cmd_remote_ext(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_remote_ext(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
BUG_ON_NON_EMPTY_PREFIX(prefix);
@@ builtin/remote-fd.c: static void command_loop(int input_fd, int output_fd)
}
-int cmd_remote_fd(int argc, const char **argv, const char *prefix)
-+int cmd_remote_fd(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_remote_fd(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
int input_fd = -1;
int output_fd = -1;
@@ builtin/remote.c: out:
}
-int cmd_remote(int argc, const char **argv, const char *prefix)
-+int cmd_remote(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_remote(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
parse_opt_subcommand_fn *fn = NULL;
struct option options[] = {
@@ builtin/repack.c: static const char *find_pack_prefix(const char *packdir, const
}
-int cmd_repack(int argc, const char **argv, const char *prefix)
-+int cmd_repack(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_repack(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
struct child_process cmd = CHILD_PROCESS_INIT;
struct string_list_item *item;
@@ builtin/replace.c: static int convert_graft_file(int force)
}
-int cmd_replace(int argc, const char **argv, const char *prefix)
-+int cmd_replace(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_replace(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
int force = 0;
int raw = 0;
@@ builtin/replay.c: static struct commit *pick_regular_commit(struct commit *pickm
}
-int cmd_replay(int argc, const char **argv, const char *prefix)
-+int cmd_replay(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_replay(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
const char *advance_name_opt = NULL;
char *advance_name = NULL;
@@ builtin/rerere.c: static int diff_two(const char *file1, const char *label1,
}
-int cmd_rerere(int argc, const char **argv, const char *prefix)
-+int cmd_rerere(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_rerere(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
struct string_list merge_rr = STRING_LIST_INIT_DUP;
int i, autoupdate = -1, flags = 0;
@@ builtin/reset.c: static int git_reset_config(const char *var, const char *value,
}
-int cmd_reset(int argc, const char **argv, const char *prefix)
-+int cmd_reset(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_reset(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
int reset_type = NONE, update_ref_status = 0, quiet = 0;
int no_refresh = 0;
@@ builtin/rev-list.c: static int try_bitmap_disk_usage(struct rev_info *revs,
}
-int cmd_rev_list(int argc, const char **argv, const char *prefix)
-+int cmd_rev_list(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_rev_list(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
struct rev_info revs;
struct rev_list_info info;
@@ builtin/rev-parse.c: static void print_path(const char *path, const char *prefix
}
-int cmd_rev_parse(int argc, const char **argv, const char *prefix)
-+int cmd_rev_parse(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_rev_parse(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
int i, as_is = 0, verify = 0, quiet = 0, revs_count = 0, type = 0;
const struct git_hash_algo *output_algo = NULL;
@@ builtin/revert.c: static int run_sequencer(int argc, const char **argv, const ch
}
-int cmd_revert(int argc, const char **argv, const char *prefix)
-+int cmd_revert(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_revert(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
struct replay_opts opts = REPLAY_OPTS_INIT;
int res;
@@ builtin/revert.c: int cmd_revert(int argc, const char **argv, const char *prefix
}
-int cmd_cherry_pick(int argc, const char **argv, const char *prefix)
-+int cmd_cherry_pick(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_cherry_pick(int argc,
++const char **argv,
++const char *prefix,
++struct repository *repo UNUSED)
{
struct replay_opts opts = REPLAY_OPTS_INIT;
int res;
@@ builtin/rm.c: static struct option builtin_rm_options[] = {
};
-int cmd_rm(int argc, const char **argv, const char *prefix)
-+int cmd_rm(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_rm(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
struct lock_file lock_file = LOCK_INIT;
int i, ret = 0;
@@ builtin/send-pack.c: static int send_pack_config(const char *k, const char *v,
}
-int cmd_send_pack(int argc, const char **argv, const char *prefix)
-+int cmd_send_pack(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_send_pack(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
struct refspec rs = REFSPEC_INIT_PUSH;
const char *remote_name = NULL;
@@ builtin/shortlog.c: void shortlog_finish_setup(struct shortlog *log)
}
-int cmd_shortlog(int argc, const char **argv, const char *prefix)
-+int cmd_shortlog(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_shortlog(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
struct shortlog log = { STRING_LIST_INIT_NODUP };
struct rev_info rev;
@@ builtin/show-branch.c: static int parse_reflog_param(const struct option *opt, c
}
-int cmd_show_branch(int ac, const char **av, const char *prefix)
-+int cmd_show_branch(int ac, const char **av, const char *prefix, struct repository *repo UNUSED) ++int cmd_show_branch(int ac,
++ const char **av,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
struct commit *rev[MAX_REVS], *commit;
char *reflog_msg[MAX_REVS] = {0};
@@ builtin/show-index.c: static const char *const show_index_usage[] = {
};
-int cmd_show_index(int argc, const char **argv, const char *prefix)
-+int cmd_show_index(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_show_index(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
int i;
unsigned nr;
@@ builtin/show-ref.c: static int exclude_existing_callback(const struct option *op
}
-int cmd_show_ref(int argc, const char **argv, const char *prefix)
-+int cmd_show_ref(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_show_ref(int argc,
++const char **argv,
++const char *prefix,
++struct repository *repo UNUSED)
{
struct exclude_existing_options exclude_existing_opts = {0};
struct patterns_options patterns_opts = {0};
@@ builtin/sparse-checkout.c: static int sparse_checkout_check_rules(int argc, cons
}
-int cmd_sparse_checkout(int argc, const char **argv, const char *prefix)
-+int cmd_sparse_checkout(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_sparse_checkout(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
parse_opt_subcommand_fn *fn = NULL;
struct option builtin_sparse_checkout_options[] = {
@@ builtin/stash.c: static int save_stash(int argc, const char **argv, const char *
}
-int cmd_stash(int argc, const char **argv, const char *prefix)
-+int cmd_stash(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_stash(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
pid_t pid = getpid();
const char *index_file;
@@ builtin/stripspace.c: enum stripspace_mode {
};
-int cmd_stripspace(int argc, const char **argv, const char *prefix)
-+int cmd_stripspace(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_stripspace(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
struct strbuf buf = STRBUF_INIT;
enum stripspace_mode mode = STRIP_DEFAULT;
@@ builtin/submodule--helper.c: cleanup:
}
-int cmd_submodule__helper(int argc, const char **argv, const char *prefix)
-+int cmd_submodule__helper(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_submodule__helper(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
parse_opt_subcommand_fn *fn = NULL;
const char *const usage[] = {
@@ builtin/symbolic-ref.c: static int check_symref(const char *HEAD, int quiet, int
}
-int cmd_symbolic_ref(int argc, const char **argv, const char *prefix)
-+int cmd_symbolic_ref(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_symbolic_ref(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
int quiet = 0, delete = 0, shorten = 0, recurse = 1, ret = 0;
const char *msg = NULL;
@@ builtin/tag.c: static int strbuf_check_tag_ref(struct strbuf *sb, const char *na
}
-int cmd_tag(int argc, const char **argv, const char *prefix)
-+int cmd_tag(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_tag(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
struct strbuf buf = STRBUF_INIT;
struct strbuf ref = STRBUF_INIT;
@@ builtin/unpack-file.c: static char *create_temp_file(struct object_id *oid)
}
-int cmd_unpack_file(int argc, const char **argv, const char *prefix UNUSED)
-+int cmd_unpack_file(int argc, const char **argv, const char *prefix UNUSED, struct repository *repo UNUSED) ++int cmd_unpack_file(int argc,
++ const char **argv,
++ const char *prefix UNUSED,
++ struct repository *repo UNUSED)
{
struct object_id oid;
@@ builtin/unpack-objects.c: static void unpack_all(void)
}
-int cmd_unpack_objects(int argc, const char **argv, const char *prefix UNUSED)
-+int cmd_unpack_objects(int argc, const char **argv, const char *prefix UNUSED, struct repository *repo UNUSED) ++int cmd_unpack_objects(int argc,
++ const char **argv,
++ const char *prefix UNUSED,
++ struct repository *repo UNUSED)
{
int i;
struct object_id oid;
@@ builtin/update-index.c: static enum parse_opt_result reupdate_callback(
}
-int cmd_update_index(int argc, const char **argv, const char *prefix)
-+int cmd_update_index(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_update_index(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
int newfd, entries, has_errors = 0, nul_term_line = 0;
enum uc_mode untracked_cache = UC_UNSPECIFIED;
@@ builtin/update-ref.c: static void update_refs_stdin(void)
}
-int cmd_update_ref(int argc, const char **argv, const char *prefix)
-+int cmd_update_ref(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_update_ref(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
const char *refname, *oldval;
struct object_id oid, oldoid;
@@ builtin/update-server-info.c: static const char * const update_server_info_usage
};
-int cmd_update_server_info(int argc, const char **argv, const char *prefix)
-+int cmd_update_server_info(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_update_server_info(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
int force = 0;
struct option options[] = {
@@ builtin/upload-archive.c: static const char deadchild[] =
#define MAX_ARGS (64)
-int cmd_upload_archive_writer(int argc, const char **argv, const char *prefix)
-+int cmd_upload_archive_writer(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_upload_archive_writer(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
struct strvec sent_argv = STRVEC_INIT;
const char *arg_cmd = "argument ";
@@ builtin/upload-archive.c: static ssize_t process_input(int child_fd, int band)
}
-int cmd_upload_archive(int argc, const char **argv, const char *prefix)
-+int cmd_upload_archive(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_upload_archive(int argc,
++const char **argv,
++const char *prefix,
++struct repository *repo UNUSED)
{
struct child_process writer = CHILD_PROCESS_INIT;
@@ builtin/upload-pack.c: static const char * const upload_pack_usage[] = {
};
-int cmd_upload_pack(int argc, const char **argv, const char *prefix)
-+int cmd_upload_pack(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_upload_pack(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
const char *dir;
int strict = 0;
@@ builtin/var.c: static int show_config(const char *var, const char *value,
}
-int cmd_var(int argc, const char **argv, const char *prefix UNUSED)
-+int cmd_var(int argc, const char **argv, const char *prefix UNUSED, struct repository *repo UNUSED) ++int cmd_var(int argc,
++ const char **argv,
++ const char *prefix UNUSED,
++ struct repository *repo UNUSED)
{
const struct git_var *git_var;
char *val;
@@ builtin/verify-commit.c: static int verify_commit(const char *name, unsigned fla
}
-int cmd_verify_commit(int argc, const char **argv, const char *prefix)
-+int cmd_verify_commit(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_verify_commit(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
int i = 1, verbose = 0, had_error = 0;
unsigned flags = 0;
@@ builtin/verify-pack.c: static const char * const verify_pack_usage[] = {
};
-int cmd_verify_pack(int argc, const char **argv, const char *prefix)
-+int cmd_verify_pack(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_verify_pack(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
int err = 0;
unsigned int flags = 0;
@@ builtin/verify-tag.c: static const char * const verify_tag_usage[] = {
};
-int cmd_verify_tag(int argc, const char **argv, const char *prefix)
-+int cmd_verify_tag(int argc, const char **argv, const char *prefix, struct repository *repo UNUSED) ++int cmd_verify_tag(int argc,
++ const char **argv,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
int i = 1, verbose = 0, had_error = 0;
unsigned flags = 0;
@@ builtin/worktree.c: static int repair(int ac, const char **av, const char *prefi
}
-int cmd_worktree(int ac, const char **av, const char *prefix)
-+int cmd_worktree(int ac, const char **av, const char *prefix, struct repository *repo UNUSED) ++int cmd_worktree(int ac,
++ const char **av,
++ const char *prefix,
++ struct repository *repo UNUSED)
{
parse_opt_subcommand_fn *fn = NULL;
struct option options[] = {
@@ builtin/write-tree.c: static const char * const write_tree_usage[] = {
};
-int cmd_write_tree(int argc, const char **argv, const char *cmd_prefix)
-+int cmd_write_tree(int argc, const char **argv, const char *cmd_prefix, struct repository *repo UNUSED) ++int cmd_write_tree(int argc,
++ const char **argv,
++ const char *cmd_prefix,
++ struct repository *repo UNUSED)
{
int flags = 0, ret;
const char *tree_prefix = NULL;
@@ git.c: static int run_builtin(struct cmd_struct *p, int argc, const char **argv)
- status = p->fn(argc, argv, prefix);
- validate_cache_entries(the_repository->index);
+ validate_cache_entries(repo->index);
-+
-+ status = p->fn(argc, argv, prefix, startup_info->have_repository? repo: NULL) ;
-+
++ status = p->fn(argc, argv, prefix, (p->option & RUN_SETUP)? repo : NULL);
+ validate_cache_entries(repo->index);
if (status)
@@ help.c: void get_version_info(struct strbuf *buf, int show_build_options)
{
struct strbuf buf = STRBUF_INIT;
int build_options = 0;
+
+ ## stkOs5Qh (new) ##
+ Binary files /dev/null and stkOs5Qh differ
2: 17acc1e054c ! 2: 434c8babbb1 builtin: remove USE_THE_REPOSITORY_VARIABLE from builtin.h
@@ Commit message
builtin: remove USE_THE_REPOSITORY_VARIABLE from builtin.h
Instead of including USE_THE_REPOSITORY_VARIABLE by default on every
- builtin, remove it from builtin.h and add it where necessary to
- individual builtins/*. The next step will be to migrate each builtin
+ builtin, remove it from builtin.h and add it to all the builtins that
+ reference the_repository.
+
+ Also, remove the include statement for repository.h since it gets
+ brought in through builtin.h.
+
+ The next step will be to migrate each builtin
from having to use the_repository.
Signed-off-by: John Cai <[email protected]>
@@ builtin/add.c
#include "builtin.h"
#include "advice.h"
#include "config.h"
+@@
+ #include "preload-index.h"
+ #include "diff.h"
+ #include "read-cache.h"
+-#include "repository.h"
+ #include "revision.h"
+ #include "bulk-checkin.h"
+ #include "strvec.h"
## builtin/am.c ##
@@
@@ builtin/am.c
#include "builtin.h"
#include "abspath.h"
#include "advice.h"
+@@
+ #include "string-list.h"
+ #include "pager.h"
+ #include "path.h"
+-#include "repository.h"
+ #include "pretty.h"
+
+ /**
+
+ ## builtin/annotate.c ##
+@@
+ *
+ * Copyright (C) 2006 Ryan Anderson
+ */
++
++#define USE_THE_REPOSITORY_VARIABLE
+ #include "git-compat-util.h"
+ #include "builtin.h"
+ #include "strvec.h"
## builtin/apply.c ##
@@
+#define USE_THE_REPOSITORY_VARIABLE
#include "builtin.h"
#include "gettext.h"
- #include "repository.h"
+-#include "repository.h"
+ #include "hash.h"
+ #include "apply.h"
+
## builtin/archive.c ##
@@
@@ builtin/archive.c
#include "builtin.h"
#include "archive.h"
#include "gettext.h"
+ #include "transport.h"
+ #include "parse-options.h"
+ #include "pkt-line.h"
+-#include "repository.h"
+
+ static void create_output_file(const char *output_file)
+ {
## builtin/bisect.c ##
@@
@@ builtin/blame.c
#include "builtin.h"
#include "config.h"
#include "color.h"
+@@
+ #include "environment.h"
+ #include "gettext.h"
+ #include "hex.h"
+-#include "repository.h"
+ #include "commit.h"
+ #include "diff.h"
+ #include "revision.h"
## builtin/branch.c ##
@@
@@ builtin/branch.c
-
+#define USE_THE_REPOSITORY_VARIABLE
#include "builtin.h"
-+#include "repository.h"
#include "config.h"
#include "color.h"
- #include "editor.h"
## builtin/bugreport.c ##
@@
@@ builtin/bundle.c
#include "builtin.h"
#include "abspath.h"
#include "gettext.h"
+@@
+ #include "strvec.h"
+ #include "parse-options.h"
+ #include "pkt-line.h"
+-#include "repository.h"
+ #include "bundle.h"
+
+ /*
## builtin/cat-file.c ##
@@
@@ builtin/cat-file.c
-
+#define USE_THE_REPOSITORY_VARIABLE
#include "builtin.h"
-+#include "repository.h"
#include "config.h"
#include "convert.h"
- #include "diff.h"
## builtin/check-attr.c ##
@@
@@ builtin/check-attr.c
#include "builtin.h"
#include "config.h"
#include "attr.h"
+@@
+ #include "gettext.h"
+ #include "object-name.h"
+ #include "quote.h"
+-#include "repository.h"
+ #include "setup.h"
+ #include "parse-options.h"
+ #include "write-or-die.h"
## builtin/check-ignore.c ##
@@
@@ builtin/check-ignore.c
#include "builtin.h"
#include "config.h"
#include "dir.h"
+@@
+ #include "quote.h"
+ #include "pathspec.h"
+ #include "parse-options.h"
+-#include "repository.h"
+ #include "submodule.h"
+ #include "write-or-die.h"
+
## builtin/check-mailmap.c ##
@@
@@ builtin/checkout-index.c
* Copyright (C) 2005 Linus Torvalds
*
*/
+-
+#define USE_THE_REPOSITORY_VARIABLE
-
#include "builtin.h"
#include "config.h"
+ #include "gettext.h"
+ #include "lockfile.h"
+ #include "quote.h"
+-#include "repository.h"
+ #include "cache-tree.h"
+ #include "parse-options.h"
+ #include "entry.h"
## builtin/checkout.c ##
@@
@@ builtin/clean.c
#include "builtin.h"
#include "abspath.h"
#include "config.h"
+@@
+ #include "parse-options.h"
+ #include "path.h"
+ #include "read-cache-ll.h"
+-#include "repository.h"
+ #include "setup.h"
+ #include "string-list.h"
+ #include "quote.h"
## builtin/clone.c ##
@@
@@ builtin/clone.c
-
+#define USE_THE_REPOSITORY_VARIABLE
#include "builtin.h"
-+#include "repository.h"
++
#include "abspath.h"
#include "advice.h"
#include "config.h"
@@ builtin/clone.c
## builtin/column.c ##
@@
+#define USE_THE_REPOSITORY_VARIABLE
-+
#include "builtin.h"
#include "config.h"
#include "gettext.h"
@@ builtin/commit-graph.c
#include "builtin.h"
#include "commit.h"
#include "config.h"
+@@
+ #include "gettext.h"
+ #include "hex.h"
+ #include "parse-options.h"
+-#include "repository.h"
+ #include "commit-graph.h"
+ #include "object-store-ll.h"
+ #include "progress.h"
## builtin/commit-tree.c ##
@@
@@ builtin/commit-tree.c
#include "builtin.h"
#include "config.h"
#include "gettext.h"
+ #include "hex.h"
+ #include "object-name.h"
+ #include "object-store-ll.h"
+-#include "repository.h"
++
+ #include "commit.h"
+ #include "parse-options.h"
+
## builtin/commit.c ##
@@
@@ builtin/commit.c
-
+#define USE_THE_REPOSITORY_VARIABLE
#include "builtin.h"
-+#include "repository.h"
#include "advice.h"
#include "config.h"
- #include "lockfile.h"
## builtin/config.c ##
@@
@@ builtin/config.c
#include "builtin.h"
#include "abspath.h"
#include "config.h"
+ #include "color.h"
+ #include "editor.h"
+ #include "environment.h"
+-#include "repository.h"
+ #include "gettext.h"
+ #include "ident.h"
+ #include "parse-options.h"
## builtin/count-objects.c ##
@@
@@ builtin/count-objects.c
#include "builtin.h"
#include "config.h"
#include "dir.h"
+ #include "environment.h"
+ #include "gettext.h"
+ #include "path.h"
+-#include "repository.h"
+ #include "parse-options.h"
+ #include "quote.h"
+ #include "packfile.h"
## builtin/credential-cache--daemon.c ##
@@
@@ builtin/diff-files.c
#include "builtin.h"
#include "config.h"
#include "diff.h"
+ #include "diff-merges.h"
+ #include "commit.h"
+ #include "preload-index.h"
+-#include "repository.h"
+ #include "revision.h"
+
+ static const char diff_files_usage[] =
## builtin/diff-index.c ##
@@
@@ builtin/diff-index.c
#include "builtin.h"
#include "config.h"
#include "diff.h"
+ #include "diff-merges.h"
+ #include "commit.h"
+ #include "preload-index.h"
+-#include "repository.h"
+ #include "revision.h"
+ #include "setup.h"
+
## builtin/diff-tree.c ##
@@
@@ builtin/diff-tree.c
#include "builtin.h"
#include "config.h"
#include "diff.h"
+@@
+ #include "hex.h"
+ #include "log-tree.h"
+ #include "read-cache-ll.h"
+-#include "repository.h"
+ #include "revision.h"
+ #include "tmp-objdir.h"
+ #include "tree.h"
## builtin/diff.c ##
@@
@@ builtin/diff.c
-
+#define USE_THE_REPOSITORY_VARIABLE
#include "builtin.h"
-+#include "repository.h"
#include "config.h"
#include "ewah/ewok.h"
- #include "lockfile.h"
## builtin/difftool.c ##
@@
@@ builtin/difftool.c
-
+#define USE_THE_REPOSITORY_VARIABLE
#include "builtin.h"
-+#include "repository.h"
++
#include "abspath.h"
#include "config.h"
#include "copy.h"
@@ builtin/fast-export.c
*/
+#define USE_THE_REPOSITORY_VARIABLE
#include "builtin.h"
-+#include "repository.h"
#include "config.h"
#include "gettext.h"
- #include "hex.h"
## builtin/fast-import.c ##
@@
@@ builtin/fast-import.c
#include "builtin.h"
#include "abspath.h"
#include "environment.h"
+ #include "gettext.h"
+ #include "hex.h"
+-#include "repository.h"
+ #include "config.h"
+ #include "lockfile.h"
+ #include "object.h"
## builtin/fetch-pack.c ##
@@
@@ builtin/fetch.c
#include "builtin.h"
#include "advice.h"
#include "config.h"
+ #include "gettext.h"
+ #include "environment.h"
+ #include "hex.h"
+-#include "repository.h"
+ #include "refs.h"
+ #include "refspec.h"
+ #include "object-name.h"
## builtin/fmt-merge-msg.c ##
@@
@@ builtin/for-each-repo.c
#include "builtin.h"
#include "config.h"
#include "gettext.h"
+ #include "parse-options.h"
+ #include "path.h"
+-#include "repository.h"
+ #include "run-command.h"
+ #include "string-list.h"
+
## builtin/fsck.c ##
@@
@@ builtin/fsck.c
#include "builtin.h"
#include "gettext.h"
#include "hex.h"
+-#include "repository.h"
+ #include "config.h"
+ #include "commit.h"
+ #include "tree.h"
## builtin/fsmonitor--daemon.c ##
@@
@@ builtin/fsmonitor--daemon.c
#include "builtin.h"
#include "abspath.h"
#include "config.h"
+@@
+ #include "compat/fsmonitor/fsm-health.h"
+ #include "compat/fsmonitor/fsm-listen.h"
+ #include "fsmonitor--daemon.h"
+-#include "repository.h"
++
+ #include "simple-ipc.h"
+ #include "khash.h"
+ #include "run-command.h"
## builtin/gc.c ##
@@
@@ builtin/gc.c
#include "builtin.h"
#include "abspath.h"
#include "date.h"
+ #include "environment.h"
+ #include "hex.h"
+-#include "repository.h"
+ #include "config.h"
+ #include "tempfile.h"
+ #include "lockfile.h"
## builtin/grep.c ##
@@
@@ builtin/grep.c
#include "builtin.h"
#include "abspath.h"
#include "gettext.h"
+ #include "hex.h"
+-#include "repository.h"
+ #include "config.h"
+ #include "tag.h"
+ #include "tree-walk.h"
## builtin/hash-object.c ##
@@
@@ builtin/hash-object.c
*/
+#define USE_THE_REPOSITORY_VARIABLE
#include "builtin.h"
-+#include "repository.h"
#include "abspath.h"
#include "config.h"
- #include "gettext.h"
## builtin/help.c ##
@@
@@ builtin/index-pack.c
#include "config.h"
#include "delta.h"
+ ## builtin/init-db.c ##
+@@
+ *
+ * Copyright (C) Linus Torvalds, 2005
+ */
++#define USE_THE_REPOSITORY_VARIABLE
+ #include "builtin.h"
+ #include "abspath.h"
+ #include "environment.h"
+@@
+ #include "parse-options.h"
+ #include "path.h"
+ #include "refs.h"
+-#include "repository.h"
+ #include "setup.h"
+ #include "strbuf.h"
+
+
## builtin/interpret-trailers.c ##
@@
* Copyright (c) 2013, 2014 Christian Couder <[email protected]>
@@ builtin/log.c
#include "builtin.h"
#include "abspath.h"
#include "config.h"
+@@
+ #include "mailmap.h"
+ #include "progress.h"
+ #include "commit-slab.h"
+-#include "repository.h"
++
+ #include "commit-reach.h"
+ #include "range-diff.h"
+ #include "tmp-objdir.h"
## builtin/ls-files.c ##
@@
@@ builtin/ls-files.c
*/
+#define USE_THE_REPOSITORY_VARIABLE
#include "builtin.h"
- #include "repository.h"
+-#include "repository.h"
#include "config.h"
+ #include "convert.h"
+ #include "quote.h"
## builtin/ls-remote.c ##
@@
@@ builtin/ls-tree.c
*/
+#define USE_THE_REPOSITORY_VARIABLE
#include "builtin.h"
-+#include "repository.h"
++
#include "config.h"
#include "gettext.h"
#include "hex.h"
+ ## builtin/mailinfo.c ##
+@@
+ * Another stupid program, this one parsing the headers of an
+ * email to figure out authorship and subject
+ */
++#define USE_THE_REPOSITORY_VARIABLE
+ #include "builtin.h"
+ #include "abspath.h"
+ #include "environment.h"
+
## builtin/merge-base.c ##
@@
+#define USE_THE_REPOSITORY_VARIABLE
#include "builtin.h"
#include "config.h"
#include "commit.h"
+@@
+ #include "hex.h"
+ #include "object-name.h"
+ #include "parse-options.h"
+-#include "repository.h"
+ #include "commit-reach.h"
+
+ static int show_merge_base(struct commit **rev, int rev_nr, int show_all)
## builtin/merge-file.c ##
@@
@@ builtin/merge-index.c
#include "builtin.h"
#include "hex.h"
#include "read-cache-ll.h"
+-#include "repository.h"
+ #include "run-command.h"
+ #include "sparse-index.h"
+
## builtin/merge-ours.c ##
@@
@@ builtin/merge-ours.c
#include "git-compat-util.h"
#include "builtin.h"
#include "diff.h"
+-#include "repository.h"
++
+
+ static const char builtin_merge_ours_usage[] =
+ "git merge-ours <base>... -- HEAD <remote>...";
## builtin/merge-recursive.c ##
@@
@@ builtin/merge-recursive.c
#include "builtin.h"
#include "advice.h"
#include "gettext.h"
+ #include "hash.h"
+ #include "merge-recursive.h"
+ #include "object-name.h"
+-#include "repository.h"
+
+ static const char builtin_merge_recursive_usage[] =
+ "git %s <base>... -- <head> <remote> ...";
## builtin/merge-tree.c ##
@@
@@ builtin/merge-tree.c
#include "builtin.h"
#include "tree-walk.h"
#include "xdiff-interface.h"
+@@
+ #include "object-name.h"
+ #include "object-store-ll.h"
+ #include "parse-options.h"
+-#include "repository.h"
+ #include "blob.h"
+ #include "merge-blobs.h"
+ #include "quote.h"
## builtin/merge.c ##
@@
@@ builtin/merge.c
-
+#define USE_THE_REPOSITORY_VARIABLE
#include "builtin.h"
-+#include "repository.h"
++
#include "abspath.h"
#include "advice.h"
#include "config.h"
@@ builtin/mktree.c
*/
+#define USE_THE_REPOSITORY_VARIABLE
#include "builtin.h"
-+#include "repository.h"
#include "gettext.h"
#include "hex.h"
- #include "quote.h"
## builtin/multi-pack-index.c ##
@@
@@ builtin/mv.c
#include "builtin.h"
#include "abspath.h"
+@@
+ #include "string-list.h"
+ #include "parse-options.h"
+ #include "read-cache-ll.h"
+-#include "repository.h"
++
+ #include "setup.h"
+ #include "strvec.h"
+ #include "submodule.h"
## builtin/name-rev.c ##
@@
@@ builtin/name-rev.c
#include "builtin.h"
#include "environment.h"
#include "gettext.h"
+ #include "hex.h"
+-#include "repository.h"
+ #include "config.h"
+ #include "commit.h"
+ #include "tag.h"
## builtin/notes.c ##
@@
@@ builtin/notes.c
#include "builtin.h"
#include "config.h"
#include "editor.h"
+@@
+ #include "object-name.h"
+ #include "object-store-ll.h"
+ #include "path.h"
+-#include "repository.h"
++
+ #include "pretty.h"
+ #include "refs.h"
+ #include "exec-cmd.h"
## builtin/pack-objects.c ##
@@
@@ builtin/pack-objects.c
#include "builtin.h"
#include "environment.h"
#include "gettext.h"
+ #include "hex.h"
+-#include "repository.h"
+ #include "config.h"
+ #include "attr.h"
+ #include "object.h"
## builtin/pack-redundant.c ##
@@
@@ builtin/pack-redundant.c
#include "builtin.h"
#include "gettext.h"
+ #include "hex.h"
+-#include "repository.h"
++
+ #include "packfile.h"
+ #include "object-store-ll.h"
+
## builtin/pack-refs.c ##
@@
@@ builtin/pack-refs.c
#include "builtin.h"
#include "config.h"
#include "gettext.h"
+ #include "parse-options.h"
+ #include "refs.h"
+-#include "repository.h"
+ #include "revision.h"
+
+ static char const * const pack_refs_usage[] = {
## builtin/patch-id.c ##
@@
@@ builtin/push.c
#include "builtin.h"
#include "advice.h"
#include "branch.h"
+@@
+ #include "transport.h"
+ #include "parse-options.h"
+ #include "pkt-line.h"
+-#include "repository.h"
+ #include "submodule.h"
+ #include "submodule-config.h"
+ #include "send-pack.h"
## builtin/range-diff.c ##
@@
@@ builtin/range-diff.c
#include "builtin.h"
#include "gettext.h"
#include "object-name.h"
+ #include "parse-options.h"
+ #include "range-diff.h"
+ #include "config.h"
+-#include "repository.h"
++
+
+ static const char * const builtin_range_diff_usage[] = {
+ N_("git range-diff [<options>] <old-base>..<old-tip> <new-base>..<new-tip>"),
## builtin/read-tree.c ##
@@
@@ builtin/read-tree.c
#include "builtin.h"
#include "config.h"
#include "gettext.h"
+@@
+ #include "cache-tree.h"
+ #include "unpack-trees.h"
+ #include "parse-options.h"
+-#include "repository.h"
+ #include "resolve-undo.h"
+ #include "setup.h"
+ #include "sparse-index.h"
## builtin/rebase.c ##
@@
@@ builtin/rebase.c
-
+#define USE_THE_REPOSITORY_VARIABLE
#include "builtin.h"
-+#include "repository.h"
++
#include "abspath.h"
#include "environment.h"
#include "gettext.h"
@@ builtin/receive-pack.c
+#define USE_THE_REPOSITORY_VARIABLE
#include "builtin.h"
#include "abspath.h"
- #include "repository.h"
+-#include "repository.h"
++
+ #include "config.h"
+ #include "environment.h"
+ #include "gettext.h"
## builtin/reflog.c ##
@@
@@ builtin/reflog.c
#include "builtin.h"
#include "config.h"
#include "gettext.h"
+-#include "repository.h"
+ #include "revision.h"
+ #include "reachable.h"
+ #include "wildmatch.h"
## builtin/refs.c ##
@@
@@ builtin/refs.c
#include "builtin.h"
#include "config.h"
#include "fsck.h"
+ #include "parse-options.h"
+ #include "refs.h"
+-#include "repository.h"
+ #include "strbuf.h"
+
+ #define REFS_MIGRATE_USAGE \
## builtin/remote.c ##
@@
@@ builtin/replace.c
* and Carlos Rica <[email protected]> that was itself based on
* git-tag.sh and mktag.c by Linus Torvalds.
*/
+-
+#define USE_THE_REPOSITORY_VARIABLE
-
#include "builtin.h"
#include "config.h"
+ #include "editor.h"
+@@
+ #include "object-name.h"
+ #include "object-store-ll.h"
+ #include "replace-object.h"
+-#include "repository.h"
+ #include "tag.h"
+ #include "wildmatch.h"
+
## builtin/replay.c ##
@@
@@ builtin/rerere.c
#include "builtin.h"
#include "config.h"
#include "gettext.h"
+ #include "parse-options.h"
+-#include "repository.h"
++
+ #include "string-list.h"
+ #include "rerere.h"
+ #include "xdiff/xdiff.h"
## builtin/reset.c ##
@@
@@ builtin/reset.c
-
+#define USE_THE_REPOSITORY_VARIABLE
#include "builtin.h"
-+#include "repository.h"
#include "advice.h"
#include "config.h"
- #include "environment.h"
## builtin/rev-list.c ##
@@
@@ builtin/rev-parse.c
-
+#define USE_THE_REPOSITORY_VARIABLE
#include "builtin.h"
-+#include "repository.h"
++
#include "abspath.h"
#include "config.h"
#include "commit.h"
@@ builtin/revert.c
#include "git-compat-util.h"
#include "builtin.h"
#include "parse-options.h"
+ #include "diff.h"
+ #include "gettext.h"
+-#include "repository.h"
+ #include "revision.h"
+ #include "rerere.h"
+ #include "sequencer.h"
## builtin/rm.c ##
@@
@@ builtin/rm.c
#include "builtin.h"
#include "advice.h"
#include "config.h"
+@@
+ #include "object-name.h"
+ #include "parse-options.h"
+ #include "read-cache.h"
+-#include "repository.h"
++
+ #include "string-list.h"
+ #include "setup.h"
+ #include "sparse-index.h"
## builtin/send-pack.c ##
@@
@@ builtin/shortlog.c
#include "builtin.h"
#include "config.h"
#include "commit.h"
+@@
+ #include "environment.h"
+ #include "gettext.h"
+ #include "string-list.h"
+-#include "repository.h"
+ #include "revision.h"
+ #include "utf8.h"
+ #include "mailmap.h"
## builtin/show-branch.c ##
@@
@@ builtin/show-branch.c
#include "builtin.h"
#include "config.h"
#include "environment.h"
+@@
+ #include "strvec.h"
+ #include "object-name.h"
+ #include "parse-options.h"
+-#include "repository.h"
++
+ #include "dir.h"
+ #include "commit-slab.h"
+ #include "date.h"
## builtin/show-index.c ##
@@
@@ builtin/show-index.c
#include "builtin.h"
#include "gettext.h"
#include "hash.h"
+ #include "hex.h"
+ #include "pack.h"
+ #include "parse-options.h"
+-#include "repository.h"
+
+ static const char *const show_index_usage[] = {
+ "git show-index [--object-format=<hash-algorithm>]",
## builtin/show-ref.c ##
@@
@@ builtin/sparse-checkout.c
#include "builtin.h"
#include "config.h"
#include "dir.h"
+@@
+ #include "object-name.h"
+ #include "parse-options.h"
+ #include "pathspec.h"
+-#include "repository.h"
+ #include "strbuf.h"
+ #include "string-list.h"
+ #include "lockfile.h"
## builtin/stash.c ##
@@
@@ builtin/submodule--helper.c
#include "builtin.h"
#include "abspath.h"
#include "environment.h"
+ #include "gettext.h"
+ #include "hex.h"
+-#include "repository.h"
++
+ #include "config.h"
+ #include "parse-options.h"
+ #include "quote.h"
## builtin/symbolic-ref.c ##
@@
@@ builtin/tag.c
-
+#define USE_THE_REPOSITORY_VARIABLE
#include "builtin.h"
-+#include "repository.h"
#include "advice.h"
#include "config.h"
- #include "editor.h"
## builtin/unpack-file.c ##
@@
@@ builtin/update-index.c
*
* Copyright (C) Linus Torvalds, 2005
*/
+-
+#define USE_THE_REPOSITORY_VARIABLE
-
#include "builtin.h"
#include "bulk-checkin.h"
+ #include "config.h"
+@@
+ #include "pathspec.h"
+ #include "dir.h"
+ #include "read-cache.h"
+-#include "repository.h"
+ #include "setup.h"
+ #include "sparse-index.h"
+ #include "split-index.h"
## builtin/update-ref.c ##
@@
@@ builtin/update-ref.c
#include "builtin.h"
#include "config.h"
#include "gettext.h"
+@@
+ #include "object-name.h"
+ #include "parse-options.h"
+ #include "quote.h"
+-#include "repository.h"
+
+ static const char * const git_update_ref_usage[] = {
+ N_("git update-ref [<options>] -d <refname> [<old-oid>]"),
## builtin/update-server-info.c ##
@@
@@ builtin/upload-archive.c
#include "builtin.h"
#include "archive.h"
#include "path.h"
+ #include "pkt-line.h"
+ #include "sideband.h"
+-#include "repository.h"
+ #include "run-command.h"
+ #include "strvec.h"
+
## builtin/var.c ##
@@
@@ builtin/var.c
*/
+#define USE_THE_REPOSITORY_VARIABLE
#include "builtin.h"
-+#include "repository.h"
++
#include "attr.h"
#include "config.h"
#include "editor.h"
@@ builtin/verify-commit.c
#include "builtin.h"
#include "config.h"
#include "gettext.h"
+ #include "object-name.h"
+-#include "repository.h"
+ #include "commit.h"
+ #include "parse-options.h"
+ #include "gpg-interface.h"
## builtin/verify-pack.c ##
@@
@@ builtin/verify-tag.c
*/
+#define USE_THE_REPOSITORY_VARIABLE
#include "builtin.h"
-+#include "repository.h"
#include "config.h"
#include "gettext.h"
- #include "tag.h"
## builtin/worktree.c ##
@@
@@ builtin/worktree.c
#include "builtin.h"
#include "abspath.h"
#include "advice.h"
+@@
+ #include "read-cache-ll.h"
+ #include "refs.h"
+ #include "remote.h"
+-#include "repository.h"
+ #include "run-command.h"
+ #include "hook.h"
+ #include "sigchain.h"
## builtin/write-tree.c ##
@@
@@ builtin/write-tree.c
#include "builtin.h"
#include "config.h"
#include "environment.h"
+@@
+ #include "tree.h"
+ #include "cache-tree.h"
+ #include "parse-options.h"
+-#include "repository.h"
+
+ static const char * const write_tree_usage[] = {
+ N_("git write-tree [--missing-ok] [--prefix=<prefix>/]"),
3: bc909046934 ! 3: 6956d3fe897 add: pass in repo variable instead of global the_repository
@@ Commit message
Signed-off-by: John Cai <[email protected]>
## builtin/add.c ##
+@@
+ *
+ * Copyright (C) 2006 Linus Torvalds
+ */
+-#define USE_THE_REPOSITORY_VARIABLE
+ #include "builtin.h"
+ #include "advice.h"
+ #include "config.h"
@@ builtin/add.c: static int pathspec_file_nul;
static int include_sparse;
static const char *pathspec_from_file;
-static int chmod_pathspec(struct pathspec *pathspec, char flip, int show_only)
-+static int chmod_pathspec(struct pathspec *pathspec,
++static int chmod_pathspec(struct repository *repo,
++ struct pathspec *pathspec,
+ char flip,
-+ int show_only,
-+ struct repository *repo)
++ int show_only)
{
int i, ret = 0;
@@ builtin/add.c: static int chmod_pathspec(struct pathspec *pathspec, char flip, i
}
-static int renormalize_tracked_files(const struct pathspec *pathspec, int flags)
-+static int renormalize_tracked_files(const struct pathspec *pathspec, int flags, struct repository *repo)
++static int renormalize_tracked_files(struct repository *repo,
++ const struct pathspec *pathspec,
++ int flags)
{
int i, retval = 0;
@@ builtin/add.c: static int chmod_pathspec(struct pathspec *pathspec, char flip, i
}
-static char *prune_directory(struct dir_struct *dir, struct pathspec *pathspec, int prefix)
-+static char *prune_directory(struct dir_struct *dir, struct pathspec *pathspec, int prefix, struct repository *repo)
++static char *prune_directory(struct repository *repo,
++ struct dir_struct *dir,
++ struct pathspec *pathspec,
++ int prefix)
{
char *seen;
int i;
@@ builtin/add.c: static char *prune_directory(struct dir_struct *dir, struct paths
}
-static int refresh(int verbose, const struct pathspec *pathspec)
-+static int refresh(int verbose, const struct pathspec *pathspec, struct repository *repo)
++static int refresh(struct repository *repo, int verbose, const struct pathspec *pathspec)
{
char *seen;
int i, ret = 0;
@@ builtin/add.c: static int refresh(int verbose, const struct pathspec *pathspec)
}
-int interactive_add(const char **argv, const char *prefix, int patch)
-+int interactive_add(const char **argv, const char *prefix, int patch, struct repository *repo)
++int interactive_add(struct repository *repo,
++ const char **argv,
++ const char *prefix,
++ int patch)
{
struct pathspec pathspec;
int ret;
@@ builtin/add.c: int interactive_add(const char **argv, const char *prefix, int pa
return ret;
}
--static int edit_patch(int argc, const char **argv, const char *prefix)
-+static int edit_patch(int argc, const char **argv, const char *prefix, struct repository *repo)
+-static int edit_patch(int argc,
++static int edit_patch(struct repository *repo,
++ int argc,
+ const char **argv,
+- const char *prefix,
+- struct repository *repo UNUSED)
++ const char *prefix)
{
- char *file = git_pathdup("ADD_EDIT.patch");
+- char *file = git_pathdup("ADD_EDIT.patch");
++ char *file = repo_git_path(repo, "ADD_EDIT.patch");
struct child_process child = CHILD_PROCESS_INIT;
-@@ builtin/add.c: static int edit_patch(int argc, const char **argv, const char *prefix)
+ struct rev_info rev;
+ int out;
+ struct stat st;
- git_config(git_diff_basic_config, NULL); /* no "diff" UI options */
+- git_config(git_diff_basic_config, NULL); /* no "diff" UI options */
++ repo_config(repo, git_diff_basic_config, NULL);
- if (repo_read_index(the_repository) < 0)
+ if (repo_read_index(repo) < 0)
@@ builtin/add.c: static void check_embedded_repo(const char *path)
}
-static int add_files(struct dir_struct *dir, int flags)
-+static int add_files(struct dir_struct *dir, int flags, struct repository *repo)
++static int add_files(struct repository *repo, struct dir_struct *dir, int flags)
{
int i, exit_status = 0;
struct string_list matched_sparse_paths = STRING_LIST_INIT_NODUP;
@@ builtin/add.c: static int add_files(struct dir_struct *dir, int flags)
die(_("adding files failed"));
exit_status = 1;
@@ builtin/add.c: static int add_files(struct dir_struct *dir, int flags)
- return exit_status;
- }
-
--int cmd_add(int argc, const char **argv, const char *prefix, struct repository *repository UNUSED)
-+int cmd_add(int argc, const char **argv, const char *prefix, struct repository *repo)
+ int cmd_add(int argc,
+ const char **argv,
+ const char *prefix,
+- struct repository *repo UNUSED)
++ struct repository *repo)
{
int exit_status = 0;
struct pathspec pathspec;
-@@ builtin/add.c: int cmd_add(int argc, const char **argv, const char *prefix, struct repository *
+@@ builtin/add.c: int cmd_add(int argc,
+ char *ps_matched = NULL;
+ struct lock_file lock_file = LOCK_INIT;
+
+- git_config(add_config, NULL);
++ repo_config(repo, add_config, NULL);
+
+ argc = parse_options(argc, argv, prefix, builtin_add_options,
+ builtin_add_usage, PARSE_OPT_KEEP_ARGV0);
+@@ builtin/add.c: int cmd_add(int argc,
die(_("options '%s' and '%s' cannot be used together"), "--dry-run", "--interactive/--patch");
if (pathspec_from_file)
die(_("options '%s' and '%s' cannot be used together"), "--pathspec-from-file", "--interactive/--patch");
- exit(interactive_add(argv + 1, prefix, patch_interactive));
-+ exit(interactive_add(argv + 1, prefix, patch_interactive, repo));
++ exit(interactive_add(repo, argv + 1, prefix, patch_interactive));
}
if (edit_interactive) {
if (pathspec_from_file)
die(_("options '%s' and '%s' cannot be used together"), "--pathspec-from-file", "--edit");
-- return(edit_patch(argc, argv, prefix));
-+ return(edit_patch(argc, argv, prefix, repo));
+- return(edit_patch(argc, argv, prefix, the_repository));
++ return(edit_patch(repo, argc, argv, prefix));
}
argc--;
argv++;
-@@ builtin/add.c: int cmd_add(int argc, const char **argv, const char *prefix, struct repository *
+@@ builtin/add.c: int cmd_add(int argc,
add_new_files = !take_worktree_changes && !refresh_only && !add_renormalize;
require_pathspec = !(take_worktree_changes || (0 < addremove_explicit));
@@ builtin/add.c: int cmd_add(int argc, const char **argv, const char *prefix, stru
/*
* Check the "pathspec '%s' did not match any files" block
-@@ builtin/add.c: int cmd_add(int argc, const char **argv, const char *prefix, struct repository *
+@@ builtin/add.c: int cmd_add(int argc,
(!(addremove || take_worktree_changes)
? ADD_CACHE_IGNORE_REMOVAL : 0));
@@ builtin/add.c: int cmd_add(int argc, const char **argv, const char *prefix, stru
if (add_new_files) {
int baselen;
-@@ builtin/add.c: int cmd_add(int argc, const char **argv, const char *prefix, struct repository *
+@@ builtin/add.c: int cmd_add(int argc,
}
/* This picks up the paths that are not tracked */
@@ builtin/add.c: int cmd_add(int argc, const char **argv, const char *prefix, stru
+ baselen = fill_directory(&dir, repo->index, &pathspec);
if (pathspec.nr)
- seen = prune_directory(&dir, &pathspec, baselen);
-+ seen = prune_directory(&dir, &pathspec, baselen, repo);
++ seen = prune_directory(repo, &dir, &pathspec, baselen);
}
if (refresh_only) {
- exit_status |= refresh(verbose, &pathspec);
-+ exit_status |= refresh(verbose, &pathspec, repo);
++ exit_status |= refresh(repo, verbose, &pathspec);
goto finish;
}
-@@ builtin/add.c: int cmd_add(int argc, const char **argv, const char *prefix, struct repository *
+@@ builtin/add.c: int cmd_add(int argc,
if (!seen)
seen = find_pathspecs_matching_against_index(&pathspec,
@@ builtin/add.c: int cmd_add(int argc, const char **argv, const char *prefix, stru
/*
* file_exists() assumes exact match
-@@ builtin/add.c: int cmd_add(int argc, const char **argv, const char *prefix, struct repository *
+@@ builtin/add.c: int cmd_add(int argc,
!file_exists(path)) {
if (ignore_missing) {
int dtype = DT_UNKNOWN;
@@ builtin/add.c: int cmd_add(int argc, const char **argv, const char *prefix, stru
path, pathspec.items[i].len);
} else
die(_("pathspec '%s' did not match any files"),
-@@ builtin/add.c: int cmd_add(int argc, const char **argv, const char *prefix, struct repository *
+@@ builtin/add.c: int cmd_add(int argc,
ps_matched = xcalloc(pathspec.nr, 1);
if (add_renormalize)
- exit_status |= renormalize_tracked_files(&pathspec, flags);
-+ exit_status |= renormalize_tracked_files(&pathspec, flags, repo);
++ exit_status |= renormalize_tracked_files(repo, &pathspec, flags);
else
- exit_status |= add_files_to_cache(the_repository, prefix,
+ exit_status |= add_files_to_cache(repo, prefix,
&pathspec, ps_matched,
include_sparse, flags);
-@@ builtin/add.c: int cmd_add(int argc, const char **argv, const char *prefix, struct repository *
+@@ builtin/add.c: int cmd_add(int argc,
exit(128);
if (add_new_files)
- exit_status |= add_files(&dir, flags);
-+ exit_status |= add_files(&dir, flags, repo);
++ exit_status |= add_files(repo, &dir, flags);
if (chmod_arg && pathspec.nr)
- exit_status |= chmod_pathspec(&pathspec, chmod_arg[0], show_only);
-+ exit_status |= chmod_pathspec(&pathspec, chmod_arg[0], show_only, repo);
++ exit_status |= chmod_pathspec(repo, &pathspec, chmod_arg[0], show_only);
end_odb_transaction();
finish:
@@ builtin/commit.c: static const char *prepare_index(const char **argv, const char
setenv(INDEX_ENVIRONMENT, the_repository->index_file, 1);
- if (interactive_add(argv, prefix, patch_interactive) != 0)
-+ if (interactive_add(argv, prefix, patch_interactive, the_repository) != 0)
++ if (interactive_add(the_repository, argv, prefix, patch_interactive) != 0)
die(_("interactive add failed"));
the_repository->index_file = old_repo_index_file;
## commit.h ##
-@@
- #define COMMIT_H
-
- #include "object.h"
-+#include "repository.h"
-
- struct signature_check;
- struct strbuf;
@@ commit.h: struct oid_array;
struct ref;
int for_each_commit_graft(each_commit_graft_fn, void *);
-int interactive_add(const char **argv, const char *prefix, int patch);
-+int interactive_add(const char **argv, const char *prefix, int patch, struct repository *repo);
++int interactive_add(struct repository *repo,
++ const char **argv,
++ const char *prefix,
++ int patch);
struct commit_extra_header {
struct commit_extra_header *next;Signature · 1 line
gitgitgadget
PATCH v2 1/3 builtin: add a repository parameter for builtin functions
From: John Cai <[email protected]>
In order to reduce the usage of the global the_repository, add a parameter to builtin functions that will get passed a repository variable.
This commit uses UNUSED on most of the builtin functions, as subsequent commits will modify the actual builtins to pass the repository parameter down.
--- builtin.h | 277 +++++++++++++++-------------- builtin/add.c | 12 +- builtin/am.c | 5 +- builtin/annotate.c | 7 +- builtin/apply.c | 5 +- builtin/archive.c | 5 +- builtin/bisect.c | 5 +- builtin/blame.c | 5 +- builtin/branch.c | 5 +- builtin/bugreport.c | 5 +- builtin/bundle.c | 5 +- builtin/cat-file.c | 7 +- builtin/check-attr.c | 5 +- builtin/check-ignore.c | 5 +- builtin/check-mailmap.c | 5 +- builtin/check-ref-format.c | 5 +- builtin/checkout--worker.c | 5 +- builtin/checkout-index.c | 5 +- builtin/checkout.c | 15 +- builtin/clean.c | 5 +- builtin/clone.c | 5 +- builtin/column.c | 5 +- builtin/commit-graph.c | 5 +- builtin/commit-tree.c | 5 +- builtin/commit.c | 10 +- builtin/config.c | 5 +- builtin/count-objects.c | 5 +- builtin/credential-cache--daemon.c | 10 +- builtin/credential-cache.c | 5 +- builtin/credential-store.c | 5 +- builtin/credential.c | 5 +- builtin/describe.c | 7 +- builtin/diagnose.c | 5 +- builtin/diff-files.c | 5 +- builtin/diff-index.c | 5 +- builtin/diff-tree.c | 5 +- builtin/diff.c | 5 +- builtin/difftool.c | 5 +- builtin/fast-export.c | 5 +- builtin/fast-import.c | 5 +- builtin/fetch-pack.c | 5 +- builtin/fetch.c | 5 +- builtin/fmt-merge-msg.c | 5 +- builtin/for-each-ref.c | 5 +- builtin/for-each-repo.c | 5 +- builtin/fsck.c | 5 +- builtin/fsmonitor--daemon.c | 7 +- builtin/gc.c | 10 +- builtin/get-tar-commit-id.c | 5 +- builtin/grep.c | 5 +- builtin/hash-object.c | 5 +- builtin/help.c | 5 +- builtin/hook.c | 5 +- builtin/index-pack.c | 5 +- builtin/init-db.c | 5 +- builtin/interpret-trailers.c | 5 +- builtin/log.c | 30 +++- builtin/ls-files.c | 5 +- builtin/ls-remote.c | 5 +- builtin/ls-tree.c | 5 +- builtin/mailinfo.c | 5 +- builtin/mailsplit.c | 5 +- builtin/merge-base.c | 5 +- builtin/merge-file.c | 5 +- builtin/merge-index.c | 5 +- builtin/merge-ours.c | 5 +- builtin/merge-recursive.c | 5 +- builtin/merge-tree.c | 5 +- builtin/merge.c | 9 +- builtin/mktag.c | 5 +- builtin/mktree.c | 6 +- builtin/multi-pack-index.c | 6 +- builtin/mv.c | 5 +- builtin/name-rev.c | 5 +- builtin/notes.c | 5 +- builtin/pack-objects.c | 5 +- builtin/pack-redundant.c | 7 +- builtin/pack-refs.c | 5 +- builtin/patch-id.c | 5 +- builtin/prune-packed.c | 5 +- builtin/prune.c | 5 +- builtin/pull.c | 5 +- builtin/push.c | 5 +- builtin/range-diff.c | 5 +- builtin/read-tree.c | 5 +- builtin/rebase.c | 5 +- builtin/receive-pack.c | 5 +- builtin/reflog.c | 9 +- builtin/refs.c | 5 +- builtin/remote-ext.c | 5 +- builtin/remote-fd.c | 5 +- builtin/remote.c | 5 +- builtin/repack.c | 5 +- builtin/replace.c | 5 +- builtin/replay.c | 5 +- builtin/rerere.c | 5 +- builtin/reset.c | 5 +- builtin/rev-list.c | 5 +- builtin/rev-parse.c | 5 +- builtin/revert.c | 10 +- builtin/rm.c | 5 +- builtin/send-pack.c | 5 +- builtin/shortlog.c | 5 +- builtin/show-branch.c | 5 +- builtin/show-index.c | 5 +- builtin/show-ref.c | 5 +- builtin/sparse-checkout.c | 5 +- builtin/stash.c | 5 +- builtin/stripspace.c | 5 +- builtin/submodule--helper.c | 5 +- builtin/symbolic-ref.c | 5 +- builtin/tag.c | 5 +- builtin/unpack-file.c | 5 +- builtin/unpack-objects.c | 5 +- builtin/update-index.c | 5 +- builtin/update-ref.c | 5 +- builtin/update-server-info.c | 5 +- builtin/upload-archive.c | 10 +- builtin/upload-pack.c | 5 +- builtin/var.c | 5 +- builtin/verify-commit.c | 5 +- builtin/verify-pack.c | 5 +- builtin/verify-tag.c | 5 +- builtin/worktree.c | 5 +- builtin/write-tree.c | 5 +- git.c | 12 +- help.c | 3 +- stkOs5Qh | Bin 0 -> 10485768 bytes 128 files changed, 703 insertions(+), 296 deletions(-) create mode 100644 stkOs5Qh
builtin.h +139 -138
@@ -10,6 +10,7 @@#define USE_THE_REPOSITORY_VARIABLE #include "git-compat-util.h" +#include "repository.h" /* * builtin API
@@ -122,143 +123,143 @@ int is_builtin(const char *s);BUG ("unexpected prefix in builtin: %s" , (prefix)); \ } while (0) -int cmd_add(int argc, const char **argv, const char *prefix); -int cmd_am (int argc,const char **argv,const char *prefix); -int cmd_annotate (int argc,const char **argv,const char *prefix); -int cmd_apply (int argc,const char **argv,const char *prefix); -int cmd_archive (int argc,const char **argv,const char *prefix); -int cmd_bisect (int argc,const char **argv,const char *prefix); -int cmd_blame (int argc,const char **argv,const char *prefix); -int cmd_branch (int argc,const char **argv,const char *prefix); -int cmd_bugreport (int argc,const char **argv,const char *prefix); -int cmd_bundle (int argc,const char **argv,const char *prefix); -int cmd_cat_file (int argc,const char **argv,const char *prefix); -int cmd_checkout (int argc,const char **argv,const char *prefix); -int cmd_checkout__worker (int argc,const char **argv,const char *prefix); -int cmd_checkout_index (int argc,const char **argv,const char *prefix); -int cmd_check_attr (int argc,const char **argv,const char *prefix); -int cmd_check_ignore (int argc,const char **argv,const char *prefix); -int cmd_check_mailmap (int argc,const char **argv,const char *prefix); -int cmd_check_ref_format (int argc,const char **argv,const char *prefix); -int cmd_cherry (int argc,const char **argv,const char *prefix); -int cmd_cherry_pick (int argc,const char **argv,const char *prefix); -int cmd_clone (int argc,const char **argv,const char *prefix); -int cmd_clean (int argc,const char **argv,const char *prefix); -int cmd_column (int argc,const char **argv,const char *prefix); -int cmd_commit (int argc,const char **argv,const char *prefix); -int cmd_commit_graph (int argc,const char **argv,const char *prefix); -int cmd_commit_tree (int argc,const char **argv,const char *prefix); -int cmd_config (int argc,const char **argv,const char *prefix); -int cmd_count_objects (int argc,const char **argv,const char *prefix); -int cmd_credential (int argc,const char **argv,const char *prefix); -int cmd_credential_cache (int argc,const char **argv,const char *prefix); -int cmd_credential_cache_daemon (int argc,const char **argv,const char *prefix); -int cmd_credential_store (int argc,const char **argv,const char *prefix); -int cmd_describe (int argc,const char **argv,const char *prefix); -int cmd_diagnose (int argc,const char **argv,const char *prefix); -int cmd_diff_files (int argc,const char **argv,const char *prefix); -int cmd_diff_index (int argc,const char **argv,const char *prefix); -int cmd_diff (int argc,const char **argv,const char *prefix); -int cmd_diff_tree (int argc,const char **argv,const char *prefix); -int cmd_difftool (int argc,const char **argv,const char *prefix); -int cmd_env__helper (int argc,const char **argv,const char *prefix); -int cmd_fast_export (int argc,const char **argv,const char *prefix); -int cmd_fast_import (int argc,const char **argv,const char *prefix); -int cmd_fetch (int argc,const char **argv,const char *prefix); -int cmd_fetch_pack (int argc,const char **argv,const char *prefix); -int cmd_fmt_merge_msg (int argc,const char **argv,const char *prefix); -int cmd_for_each_ref (int argc,const char **argv,const char *prefix); -int cmd_for_each_repo (int argc,const char **argv,const char *prefix); -int cmd_format_patch (int argc,const char **argv,const char *prefix); -int cmd_fsck (int argc,const char **argv,const char *prefix); -int cmd_fsmonitor__daemon (int argc,const char **argv,const char *prefix); -int cmd_gc (int argc,const char **argv,const char *prefix); -int cmd_get_tar_commit_id (int argc,const char **argv,const char *prefix); -int cmd_grep (int argc,const char **argv,const char *prefix); -int cmd_hash_object (int argc,const char **argv,const char *prefix); -int cmd_help (int argc,const char **argv,const char *prefix); -int cmd_hook (int argc,const char **argv,const char *prefix); -int cmd_index_pack (int argc,const char **argv,const char *prefix); -int cmd_init_db (int argc,const char **argv,const char *prefix); -int cmd_interpret_trailers (int argc,const char **argv,const char *prefix); -int cmd_log (int argc,const char **argv,const char *prefix); -int cmd_log_reflog (int argc,const char **argv,const char *prefix); -int cmd_ls_files (int argc,const char **argv,const char *prefix); -int cmd_ls_tree (int argc,const char **argv,const char *prefix); -int cmd_ls_remote (int argc,const char **argv,const char *prefix); -int cmd_mailinfo (int argc,const char **argv,const char *prefix); -int cmd_mailsplit (int argc,const char **argv,const char *prefix); -int cmd_maintenance (int argc,const char **argv,const char *prefix); -int cmd_merge (int argc,const char **argv,const char *prefix); -int cmd_merge_base (int argc,const char **argv,const char *prefix); -int cmd_merge_index (int argc,const char **argv,const char *prefix); -int cmd_merge_ours (int argc,const char **argv,const char *prefix); -int cmd_merge_file (int argc,const char **argv,const char *prefix); -int cmd_merge_recursive (int argc,const char **argv,const char *prefix); -int cmd_merge_tree (int argc,const char **argv,const char *prefix); -int cmd_mktag (int argc,const char **argv,const char *prefix); -int cmd_mktree (int argc,const char **argv,const char *prefix); -int cmd_multi_pack_index (int argc,const char **argv,const char *prefix); -int cmd_mv (int argc,const char **argv,const char *prefix); -int cmd_name_rev (int argc,const char **argv,const char *prefix); -int cmd_notes (int argc,const char **argv,const char *prefix); -int cmd_pack_objects (int argc,const char **argv,const char *prefix); -int cmd_pack_redundant (int argc,const char **argv,const char *prefix); -int cmd_patch_id (int argc,const char **argv,const char *prefix); -int cmd_prune (int argc,const char **argv,const char *prefix); -int cmd_prune_packed (int argc,const char **argv,const char *prefix); -int cmd_pull (int argc,const char **argv,const char *prefix); -int cmd_push (int argc,const char **argv,const char *prefix); -int cmd_range_diff (int argc,const char **argv,const char *prefix); -int cmd_read_tree (int argc,const char **argv,const char *prefix); -int cmd_rebase (int argc,const char **argv,const char *prefix); -int cmd_rebase__interactive (int argc,const char **argv,const char *prefix); -int cmd_receive_pack (int argc,const char **argv,const char *prefix); -int cmd_reflog (int argc,const char **argv,const char *prefix); -int cmd_refs (int argc,const char **argv,const char *prefix); -int cmd_remote (int argc,const char **argv,const char *prefix); -int cmd_remote_ext (int argc,const char **argv,const char *prefix); -int cmd_remote_fd (int argc,const char **argv,const char *prefix); -int cmd_repack (int argc,const char **argv,const char *prefix); -int cmd_replay (int argc,const char **argv,const char *prefix); -int cmd_rerere (int argc,const char **argv,const char *prefix); -int cmd_reset (int argc,const char **argv,const char *prefix); -int cmd_restore (int argc,const char **argv,const char *prefix); -int cmd_rev_list (int argc,const char **argv,const char *prefix); -int cmd_rev_parse (int argc,const char **argv,const char *prefix); -int cmd_revert (int argc,const char **argv,const char *prefix); -int cmd_rm (int argc,const char **argv,const char *prefix); -int cmd_send_pack (int argc,const char **argv,const char *prefix); -int cmd_shortlog (int argc,const char **argv,const char *prefix); -int cmd_show (int argc,const char **argv,const char *prefix); -int cmd_show_branch (int argc,const char **argv,const char *prefix); -int cmd_show_index (int argc,const char **argv,const char *prefix); -int cmd_sparse_checkout (int argc,const char **argv,const char *prefix); -int cmd_status (int argc,const char **argv,const char *prefix); -int cmd_stash (int argc,const char **argv,const char *prefix); -int cmd_stripspace (int argc,const char **argv,const char *prefix); -int cmd_submodule__helper (int argc,const char **argv,const char *prefix); -int cmd_switch (int argc,const char **argv,const char *prefix); -int cmd_symbolic_ref (int argc,const char **argv,const char *prefix); -int cmd_tag (int argc,const char **argv,const char *prefix); -int cmd_unpack_file (int argc,const char **argv,const char *prefix); -int cmd_unpack_objects (int argc,const char **argv,const char *prefix); -int cmd_update_index (int argc,const char **argv,const char *prefix); -int cmd_update_ref (int argc,const char **argv,const char *prefix); -int cmd_update_server_info (int argc,const char **argv,const char *prefix); -int cmd_upload_archive (int argc,const char **argv,const char *prefix); -int cmd_upload_archive_writer (int argc,const char **argv,const char *prefix); -int cmd_upload_pack (int argc,const char **argv,const char *prefix); -int cmd_var (int argc,const char **argv,const char *prefix); -int cmd_verify_commit (int argc,const char **argv,const char *prefix); -int cmd_verify_tag (int argc,const char **argv,const char *prefix); -int cmd_version (int argc,const char **argv,const char *prefix); -int cmd_whatchanged (int argc,const char **argv,const char *prefix); -int cmd_worktree (int argc,const char **argv,const char *prefix); -int cmd_write_tree (int argc,const char **argv,const char *prefix); -int cmd_verify_pack (int argc,const char **argv,const char *prefix); -int cmd_show_ref (int argc,const char **argv,const char *prefix); -int cmd_pack_refs (int argc,const char **argv,const char *prefix); -int cmd_replace (int argc,const char **argv,const char *prefix); +int cmd_add(int argc, const char **argv, const char *prefix, struct repository *repo); +int cmd_am (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_annotate (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_apply (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_archive (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_bisect (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_blame (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_branch (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_bugreport (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_bundle (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_cat_file (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_checkout (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_checkout__worker (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_checkout_index (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_check_attr (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_check_ignore (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_check_mailmap (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_check_ref_format (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_cherry (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_cherry_pick (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_clone (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_clean (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_column (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_commit (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_commit_graph (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_commit_tree (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_config (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_count_objects (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_credential (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_credential_cache (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_credential_cache_daemon (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_credential_store (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_describe (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_diagnose (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_diff_files (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_diff_index (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_diff (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_diff_tree (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_difftool (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_env__helper (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_fast_export (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_fast_import (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_fetch (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_fetch_pack (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_fmt_merge_msg (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_for_each_ref (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_for_each_repo (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_format_patch (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_fsck (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_fsmonitor__daemon (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_gc (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_get_tar_commit_id (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_grep (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_hash_object (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_help (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_hook (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_index_pack (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_init_db (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_interpret_trailers (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_log_reflog (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_log (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_ls_files (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_ls_tree (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_ls_remote (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_mailinfo (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_mailsplit (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_maintenance (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_merge (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_merge_base (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_merge_index (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_merge_ours (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_merge_file (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_merge_recursive (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_merge_tree (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_mktag (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_mktree (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_multi_pack_index (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_mv (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_name_rev (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_notes (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_pack_objects (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_pack_redundant (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_patch_id (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_prune (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_prune_packed (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_pull (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_push (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_range_diff (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_read_tree (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_rebase (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_rebase__interactive (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_receive_pack (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_reflog (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_refs (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_remote (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_remote_ext (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_remote_fd (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_repack (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_replay (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_rerere (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_reset (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_restore (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_rev_list (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_rev_parse (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_revert (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_rm (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_send_pack (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_shortlog (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_show (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_show_branch (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_show_index (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_sparse_checkout (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_status (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_stash (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_stripspace (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_submodule__helper (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_switch (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_symbolic_ref (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_tag (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_unpack_file (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_unpack_objects (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_update_index (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_update_ref (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_update_server_info (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_upload_archive (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_upload_archive_writer (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_upload_pack (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_var (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_verify_commit (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_verify_tag (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_version (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_whatchanged (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_worktree (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_write_tree (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_verify_pack (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_show_ref (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_pack_refs (int argc,const char **argv,const char *prefix,struct repository *repo); +int cmd_replace (int argc,const char **argv,const char *prefix,struct repository *repo);#endif
builtin/add.c +9 -3
@@ -167,7 +167,10 @@ int interactive_add(const char **argv, const char *prefix, int patch)return ret; } -static int edit_patch (int argc,const char **argv,const char *prefix) +static int edit_patch (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {char *file =git_pathdup ("ADD_EDIT.patch" );struct child_process child =CHILD_PROCESS_INIT ;
@@ -358,7 +361,10 @@ static int add_files(struct dir_struct *dir, int flags)return exit_status; } -int cmd_add (int argc,const char **argv,const char *prefix) +int cmd_add (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {int exit_status =0 ;struct pathspec pathspec;
@@ -387,7 +393,7 @@ int cmd_add(int argc, const char **argv, const char *prefix)if (edit_interactive) {if (pathspec_from_file)die (_ ("options '%s' and '%s' cannot be used together" ),"--pathspec-from-file" ,"--edit" ); -return (edit_patch (argc, argv, prefix)); +return (edit_patch (argc, argv, prefix, the_repository)); } argc--; argv++;
builtin/am.c +4 -1
@@ -2298,7 +2298,10 @@ static int parse_opt_show_current_patch(const struct option *opt, const char *arreturn 0 ; } -int cmd_am (int argc,const char **argv,const char *prefix) +int cmd_am (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {struct am_state state;int binary =-1 ;
builtin/annotate.c +5 -2
@@ -7,7 +7,10 @@#include "builtin.h" #include "strvec.h" -int cmd_annotate (int argc,const char **argv,const char *prefix) +int cmd_annotate (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {struct strvec args =STRVEC_INIT ;int i;
@@ -18,5 +21,5 @@ int cmd_annotate(int argc, const char **argv, const char *prefix)strvec_push (&args, argv[i]); } -return cmd_blame (args.nr, args.v, prefix); +return cmd_blame (args.nr, args.v, prefix, the_repository); }
builtin/apply.c +4 -1
@@ -9,7 +9,10 @@ static const char * const apply_usage[] = {NULL }; -int cmd_apply (int argc,const char **argv,const char *prefix) +int cmd_apply (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {int force_apply =0 ;int options =0 ;
builtin/archive.c +4 -1
@@ -76,7 +76,10 @@ static int run_remote_archiver(int argc, const char **argv, PARSE_OPT_KEEP_UNKNOWN_OPT | \ PARSE_OPT_NO_INTERNAL_HELP ) -int cmd_archive (int argc,const char **argv,const char *prefix) +int cmd_archive (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {const char *exec ="git-upload-archive" ;char *output =NULL ;
builtin/bisect.c +4 -1
@@ -1411,7 +1411,10 @@ static int cmd_bisect__run(int argc, const char **argv, const char *prefix UNUSEreturn res; } -int cmd_bisect (int argc,const char **argv,const char *prefix) +int cmd_bisect (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {int res =0 ;parse_opt_subcommand_fn *fn =NULL ;
builtin/blame.c +4 -1
@@ -864,7 +864,10 @@ static void build_ignorelist(struct blame_scoreboard *sb, } } -int cmd_blame (int argc,const char **argv,const char *prefix) +int cmd_blame (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {struct rev_info revs;char *path =NULL ;
builtin/branch.c +4 -1
@@ -704,7 +704,10 @@ static int edit_branch_description(const char *branch_name)return 0 ; } -int cmd_branch (int argc,const char **argv,const char *prefix) +int cmd_branch (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {/* possible actions */ int delete = 0, rename = 0, copy = 0, list = 0,
builtin/bugreport.c +4 -1
@@ -98,7 +98,10 @@ static void get_header(struct strbuf *buf, const char *title)strbuf_addf (buf,"\n\n[%s]\n" , title); } -int cmd_bugreport (int argc,const char **argv,const char *prefix) +int cmd_bugreport (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {struct strbuf buffer =STRBUF_INIT ;struct strbuf report_path =STRBUF_INIT ;
builtin/bundle.c +4 -1
@@ -226,7 +226,10 @@ cleanup:return ret; } -int cmd_bundle (int argc,const char **argv,const char *prefix) +int cmd_bundle (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {parse_opt_subcommand_fn *fn =NULL ;struct option options[] = {
builtin/cat-file.c +5 -2
@@ -191,7 +191,7 @@ static int cat_one_file(int opt, const char *exp_type, const char *obj_name,const char *ls_args[3 ] = {NULL }; ls_args[0 ] ="ls-tree" ; ls_args[1 ] = obj_name; - ret =cmd_ls_tree (2 , ls_args,NULL ); + ret =cmd_ls_tree (2 , ls_args,NULL , the_repository); goto cleanup; }
@@ -923,7 +923,10 @@ static int batch_option_callback(const struct option *opt,return 0 ; } -int cmd_cat_file (int argc,const char **argv,const char *prefix) +int cmd_cat_file (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {int opt =0 ;int opt_cw =0 ;
builtin/check-attr.c +4 -1
@@ -107,7 +107,10 @@ static NORETURN void error_with_usage(const char *msg)usage_with_options (check_attr_usage, check_attr_options); } -int cmd_check_attr (int argc,const char **argv,const char *prefix) +int cmd_check_attr (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {struct attr_check *check;struct object_id initialized_oid;
builtin/check-ignore.c +4 -1
@@ -151,7 +151,10 @@ static int check_ignore_stdin_paths(struct dir_struct *dir, const char *prefix)return num_ignored; } -int cmd_check_ignore (int argc,const char **argv,const char *prefix) +int cmd_check_ignore (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {int num_ignored;struct dir_struct dir =DIR_INIT ;
builtin/check-mailmap.c +4 -1
@@ -40,7 +40,10 @@ static void check_mailmap(struct string_list *mailmap, const char *contact)printf ("<%.*s>\n" , (int )maillen, mail); } -int cmd_check_mailmap (int argc,const char **argv,const char *prefix) +int cmd_check_mailmap (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {int i;struct string_list mailmap =STRING_LIST_INIT_NODUP ;
builtin/check-ref-format.c +4 -1
@@ -51,7 +51,10 @@ static int check_ref_format_branch(const char *arg)return 0 ; } -int cmd_check_ref_format (int argc,const char **argv,const char *prefix) +int cmd_check_ref_format (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {int i;int normalize =0 ;
builtin/checkout--worker.c +4 -1
@@ -113,7 +113,10 @@ static const char * const checkout_worker_usage[] = {NULL }; -int cmd_checkout__worker (int argc,const char **argv,const char *prefix) +int cmd_checkout__worker (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {struct checkout state =CHECKOUT_INIT ;struct option checkout_worker_options[] = {
builtin/checkout-index.c +4 -1
@@ -208,7 +208,10 @@ static int option_parse_stage(const struct option *opt,return 0 ; } -int cmd_checkout_index (int argc,const char **argv,const char *prefix) +int cmd_checkout_index (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {int i;struct lock_file lock_file =LOCK_INIT ;
builtin/checkout.c +12 -3
@@ -1953,7 +1953,10 @@ static int checkout_main(int argc, const char **argv, const char *prefix,return ret; } -int cmd_checkout (int argc,const char **argv,const char *prefix) +int cmd_checkout (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {struct checkout_opts opts =CHECKOUT_OPTS_INIT ;struct option *options;
@@ -2000,7 +2003,10 @@ int cmd_checkout(int argc, const char **argv, const char *prefix) checkout_usage); } -int cmd_switch (int argc,const char **argv,const char *prefix) +int cmd_switch (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {struct checkout_opts opts =CHECKOUT_OPTS_INIT ;struct option *options =NULL ;
@@ -2036,7 +2042,10 @@ int cmd_switch(int argc, const char **argv, const char *prefix) switch_branch_usage); } -int cmd_restore (int argc,const char **argv,const char *prefix) +int cmd_restore (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {struct checkout_opts opts =CHECKOUT_OPTS_INIT ;struct option *options;
builtin/clean.c +4 -1
@@ -915,7 +915,10 @@ static void correct_untracked_entries(struct dir_struct *dir) dir->nr = dst; } -int cmd_clean (int argc,const char **argv,const char *prefix) +int cmd_clean (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {int i, res;int dry_run =0 , remove_directories =0 , quiet =0 , ignored =0 ;
builtin/clone.c +4 -1
@@ -956,7 +956,10 @@ static int path_exists(const char *path)return !stat (path, &sb); } -int cmd_clone (int argc,const char **argv,const char *prefix) +int cmd_clone (int argc, +const char **argv, +const char *prefix, + struct repository *repository UNUSED) {int is_bundle =0 , is_local;int reject_shallow =0 ;
builtin/column.c +4 -1
@@ -18,7 +18,10 @@ static int column_config(const char *var, const char *value,return git_column_config (var, value, cb, &colopts); } -int cmd_column (int argc,const char **argv,const char *prefix) +int cmd_column (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {struct string_list list =STRING_LIST_INIT_DUP ;struct strbuf sb =STRBUF_INIT ;
builtin/commit-graph.c +4 -1
@@ -331,7 +331,10 @@ cleanup:return result; } -int cmd_commit_graph (int argc,const char **argv,const char *prefix) +int cmd_commit_graph (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {parse_opt_subcommand_fn *fn =NULL ;struct option builtin_commit_graph_options[] = {
builtin/commit-tree.c +4 -1
@@ -90,7 +90,10 @@ static int parse_file_arg_callback(const struct option *opt,return 0 ; } -int cmd_commit_tree (int argc,const char **argv,const char *prefix) +int cmd_commit_tree (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {static struct strbuf buffer =STRBUF_INIT ;struct commit_list *parents =NULL ;
builtin/commit.c +8 -2
@@ -1502,7 +1502,10 @@ static int git_status_config(const char *k, const char *v,return git_diff_ui_config (k, v, ctx,NULL ); } -int cmd_status (int argc,const char **argv,const char *prefix) +int cmd_status (int argc, +const char **argv, +const char *prefix, +struct repository *repo UNUSED) {static int no_renames =-1 ;static const char *rename_score_arg = (const char *)-1 ;
@@ -1641,7 +1644,10 @@ static int git_commit_config(const char *k, const char *v,return git_status_config (k, v, ctx, s); } -int cmd_commit (int argc,const char **argv,const char *prefix) +int cmd_commit (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {static struct wt_status s;static struct option builtin_commit_options[] = {
builtin/config.c +4 -1
@@ -1392,7 +1392,10 @@ out:return ret; } -int cmd_config (int argc,const char **argv,const char *prefix) +int cmd_config (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {parse_opt_subcommand_fn *subcommand =NULL ;struct option subcommand_opts[] = {
builtin/count-objects.c +4 -1
@@ -95,7 +95,10 @@ static char const * const count_objects_usage[] = {NULL }; -int cmd_count_objects (int argc,const char **argv,const char *prefix) +int cmd_count_objects (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {int human_readable =0 ;struct option opts[] = {
builtin/credential-cache--daemon.c +8 -2
@@ -287,7 +287,10 @@ static void init_socket_directory(const char *path)free (path_copy); } -int cmd_credential_cache_daemon (int argc,const char **argv,const char *prefix) +int cmd_credential_cache_daemon (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {struct tempfile *socket_file;const char *socket_path;
@@ -330,7 +333,10 @@ int cmd_credential_cache_daemon(int argc, const char **argv, const char *prefix) #else -int cmd_credential_cache_daemon(int argc, const char **argv, const char *prefix) +int cmd_credential_cache_daemon(int argc, +const char **argv, +const char *prefix, +struct repository *repo UNUSED) { const char * const usage[] = { "git credential-cache--daemon [--debug] <socket-path>",
builtin/credential-cache.c +4 -1
@@ -137,7 +137,10 @@ static void announce_capabilities(void)credential_announce_capabilities (&c, stdout); } -int cmd_credential_cache (int argc,const char **argv,const char *prefix) +int cmd_credential_cache (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {const char *socket_path_arg =NULL ;char *socket_path;
builtin/credential-store.c +4 -1
@@ -170,7 +170,10 @@ static void lookup_credential(const struct string_list *fns, struct credential *return ;/* Found credential */ } -int cmd_credential_store (int argc,const char **argv,const char *prefix) +int cmd_credential_store (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {const char *const usage[] = {"git credential-store [<options>] <action>" ,
builtin/credential.c +4 -1
@@ -6,7 +6,10 @@static const char usage_msg[] ="git credential (fill|approve|reject)" ; -int cmd_credential(int argc, const char **argv, const char *prefix UNUSED) +int cmd_credential (int argc, +const char **argv, + const char *prefix UNUSED, + struct repository *repo UNUSED) {const char *op;struct credential c =CREDENTIAL_INIT ;
builtin/describe.c +5 -2
@@ -571,7 +571,10 @@ static int option_parse_exact_match(const struct option *opt, const char *arg,return 0 ; } -int cmd_describe (int argc,const char **argv,const char *prefix) +int cmd_describe (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED ) {int contains =0 ;struct option options[] = {
@@ -650,7 +653,7 @@ int cmd_describe(int argc, const char **argv, const char *prefix) argv_copy[i] = args.v[i]; argv_copy[args.nr] =NULL ; - ret =cmd_name_rev (args.nr, argv_copy, prefix); + ret =cmd_name_rev (args.nr, argv_copy, prefix, the_repository);strvec_clear (&args);free (argv_copy);
builtin/diagnose.c +4 -1
@@ -11,7 +11,10 @@ static const char * const diagnose_usage[] = {NULL }; -int cmd_diagnose (int argc,const char **argv,const char *prefix) +int cmd_diagnose (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {struct strbuf zip_path =STRBUF_INIT ;time_t now =time (NULL );
builtin/diff-files.c +4 -1
@@ -17,7 +17,10 @@ static const char diff_files_usage[] ="\n" COMMON_DIFF_OPTIONS_HELP ; -int cmd_diff_files (int argc,const char **argv,const char *prefix) +int cmd_diff_files (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {struct rev_info rev;int result;
builtin/diff-index.c +4 -1
@@ -14,7 +14,10 @@ static const char diff_cache_usage[] ="\n" COMMON_DIFF_OPTIONS_HELP ; -int cmd_diff_index (int argc,const char **argv,const char *prefix) +int cmd_diff_index (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {struct rev_info rev;unsigned int option =0 ;
builtin/diff-tree.c +4 -1
@@ -108,7 +108,10 @@ static void diff_tree_tweak_rev(struct rev_info *rev) } } -int cmd_diff_tree (int argc,const char **argv,const char *prefix) +int cmd_diff_tree (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {char line[1000 ];struct object *tree1, *tree2;
builtin/diff.c +4 -1
@@ -393,7 +393,10 @@ static void symdiff_release(struct symdiff *sdiff)bitmap_free (sdiff->skip); } -int cmd_diff (int argc,const char **argv,const char *prefix) +int cmd_diff (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {int i;struct rev_info rev;
builtin/difftool.c +4 -1
@@ -690,7 +690,10 @@ static int run_file_diff(int prompt, const char *prefix,return run_command (child); } -int cmd_difftool (int argc,const char **argv,const char *prefix) +int cmd_difftool (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {int use_gui_tool =-1 , dir_diff =0 , prompt =-1 , symlinks =0 , tool_help =0 , no_index =0 ;
builtin/fast-export.c +4 -1
@@ -1180,7 +1180,10 @@ static int parse_opt_anonymize_map(const struct option *opt,return 0 ; } -int cmd_fast_export (int argc,const char **argv,const char *prefix) +int cmd_fast_export (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {struct rev_info revs;struct commit *commit;
builtin/fast-import.c +4 -1
@@ -3537,7 +3537,10 @@ static void parse_argv(void)build_mark_map (&sub_marks_from, &sub_marks_to); } -int cmd_fast_import (int argc,const char **argv,const char *prefix) +int cmd_fast_import (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {unsigned int i;
builtin/fetch-pack.c +4 -1
@@ -43,7 +43,10 @@ static void add_sought_entry(struct ref ***sought, int *nr, int *alloc, (*sought)[*nr -1 ] = ref; } -int cmd_fetch_pack(int argc, const char **argv, const char *prefix UNUSED) +int cmd_fetch_pack (int argc, +const char **argv, + const char *prefix UNUSED, + struct repository *repo UNUSED) {int i, ret;struct ref *ref =NULL ;
builtin/fetch.c +4 -1
@@ -2138,7 +2138,10 @@ static int fetch_one(struct remote *remote, int argc, const char **argv,return exit_code; } -int cmd_fetch (int argc,const char **argv,const char *prefix) +int cmd_fetch (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {struct fetch_config config = { .display_format =DISPLAY_FORMAT_FULL ,
builtin/fmt-merge-msg.c +4 -1
@@ -9,7 +9,10 @@ static const char * const fmt_merge_msg_usage[] = {NULL }; -int cmd_fmt_merge_msg (int argc,const char **argv,const char *prefix) +int cmd_fmt_merge_msg (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {char *inpath =NULL ;const char *message =NULL ;
builtin/for-each-ref.c +4 -1
@@ -16,7 +16,10 @@ static char const * const for_each_ref_usage[] = {NULL }; -int cmd_for_each_ref (int argc,const char **argv,const char *prefix) +int cmd_for_each_ref (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {struct ref_sorting *sorting;struct string_list sorting_options =STRING_LIST_INIT_DUP ;
builtin/for-each-repo.c +4 -1
@@ -29,7 +29,10 @@ static int run_command_on_repo(const char *path, int argc, const char ** argv)return run_command (&child); } -int cmd_for_each_repo (int argc,const char **argv,const char *prefix) +int cmd_for_each_repo (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {static const char *config_key =NULL ;int keep_going =0 ;
builtin/fsck.c +4 -1
@@ -925,7 +925,10 @@ static struct option fsck_opts[] = { OPT_END(), }; -int cmd_fsck (int argc,const char **argv,const char *prefix) +int cmd_fsck (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {int i;struct object_directory *odb;
builtin/fsmonitor--daemon.c +5 -2
@@ -1521,7 +1521,10 @@ static int try_to_start_background_daemon(void) } } -int cmd_fsmonitor__daemon (int argc,const char **argv,const char *prefix) +int cmd_fsmonitor__daemon (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {const char *subcmd;enum fsmonitor_reason reason;
@@ -1584,7 +1587,7 @@ int cmd_fsmonitor__daemon(int argc, const char **argv, const char *prefix) }#else -int cmd_fsmonitor__daemon(int argc, const char **argv, const char *prefix UNUSED) +int cmd_fsmonitor__daemon(int argc, const char **argv, const char *prefix UNUSED, struct repository *repo UNUSED) {struct option options[] = { OPT_END()
builtin/gc.c +8 -2
@@ -657,7 +657,10 @@ static void gc_before_repack(struct maintenance_run_opts *opts, } } -int cmd_gc (int argc,const char **argv,const char *prefix) +int cmd_gc (int argc, +const char **argv, +const char *prefix, +struct repository *repo UNUSED) {int aggressive =0 ;int quiet =0 ;
@@ -2890,7 +2893,10 @@ static const char * const builtin_maintenance_usage[] = { NULL, }; -int cmd_maintenance (int argc,const char **argv,const char *prefix) +int cmd_maintenance (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {parse_opt_subcommand_fn *fn =NULL ;struct option builtin_maintenance_options[] = {
builtin/get-tar-commit-id.c +4 -1
@@ -12,7 +12,10 @@ static const char builtin_get_tar_commit_id_usage[] =#define RECORDSIZE (512)#define HEADERSIZE (2 * RECORDSIZE) -int cmd_get_tar_commit_id(int argc, const char **argv UNUSED, const char *prefix) +int cmd_get_tar_commit_id (int argc, + const char **argv UNUSED, +const char *prefix, + struct repository *repo UNUSED) {char buffer[HEADERSIZE ];struct ustar_header *header = (struct ustar_header *)buffer;
builtin/grep.c +4 -1
@@ -888,7 +888,10 @@ static int pattern_callback(const struct option *opt, const char *arg,return 0 ; } -int cmd_grep (int argc,const char **argv,const char *prefix) +int cmd_grep (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {int hit =0 ;int cached =0 , untracked =0 , opt_exclude =-1 ;
builtin/hash-object.c +4 -1
@@ -84,7 +84,10 @@ static void hash_stdin_paths(const char *type, int no_filters, unsigned flags,strbuf_release (&unquoted); } -int cmd_hash_object(int argc, const char **argv, const char *prefix) +int cmd_hash_object(int argc, + const char **argv, + const char *prefix, + struct repository *repo UNUSED) { static const char * const hash_object_usage[] = { N_("git hash-object [-t <type>] [-w] [--path=<file> | --no-filters]\n"
builtin/help.c +4 -1
@@ -631,7 +631,10 @@ static void opt_mode_usage(int argc, const char *opt_mode,no_help_format (opt_mode, fmt); } -int cmd_help (int argc,const char **argv,const char *prefix) +int cmd_help (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {int nongit;enum help_format parsed_help_format;
builtin/hook.c +4 -1
@@ -66,7 +66,10 @@ usage:usage_with_options (builtin_hook_run_usage, run_options); } -int cmd_hook (int argc,const char **argv,const char *prefix) +int cmd_hook (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {parse_opt_subcommand_fn *fn =NULL ;struct option builtin_hook_options[] = {
builtin/index-pack.c +4 -1
@@ -1718,7 +1718,10 @@ static void show_pack_info(int stat_only)free (chain_histogram); } -int cmd_index_pack (int argc,const char **argv,const char *prefix) +int cmd_index_pack (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {int i, fix_thin_pack =0 , verify =0 , stat_only =0 , rev_index;const char *curr_index;
builtin/init-db.c +4 -1
@@ -70,7 +70,10 @@ static const char *const init_db_usage[] = {* On the other hand, it might just make lookup slower and messier. You * be the judge. The default case is to have one DB per managed directory. */ -int cmd_init_db (int argc,const char **argv,const char *prefix) +int cmd_init_db (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {const char *git_dir;const char *real_git_dir =NULL ;
builtin/interpret-trailers.c +4 -1
@@ -188,7 +188,10 @@ static void interpret_trailers(const struct process_trailer_options *opts,strbuf_release (&sb); } -int cmd_interpret_trailers (int argc,const char **argv,const char *prefix) +int cmd_interpret_trailers (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {struct process_trailer_options opts =PROCESS_TRAILER_OPTIONS_INIT ;LIST_HEAD (trailers);
builtin/log.c +24 -6
@@ -637,7 +637,10 @@ static int git_log_config(const char *var, const char *value,return git_diff_ui_config (var, value, ctx, cb); } -int cmd_whatchanged (int argc,const char **argv,const char *prefix) +int cmd_whatchanged (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {struct log_config cfg;struct rev_info rev;
@@ -758,7 +761,10 @@ static void show_setup_revisions_tweak(struct rev_info *rev) rev->diffopt.output_format =DIFF_FORMAT_PATCH ; } -int cmd_show (int argc,const char **argv,const char *prefix) +int cmd_show (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {struct log_config cfg;struct rev_info rev;
@@ -874,7 +880,10 @@ int cmd_show(int argc, const char **argv, const char *prefix)/* * This is equivalent to "git log -g --abbrev-commit --pretty=oneline" */ -int cmd_log_reflog (int argc,const char **argv,const char *prefix) +int cmd_log_reflog (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {struct log_config cfg;struct rev_info rev;
@@ -916,7 +925,10 @@ static void log_setup_revisions_tweak(struct rev_info *rev)diff_merges_default_to_first_parent (rev); } -int cmd_log (int argc,const char **argv,const char *prefix) +int cmd_log (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {struct log_config cfg;struct rev_info rev;
@@ -1986,7 +1998,10 @@ static void infer_range_diff_ranges(struct strbuf *r1, } } -int cmd_format_patch (int argc,const char **argv,const char *prefix) +int cmd_format_patch (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {struct format_config cfg;struct commit *commit;
@@ -2619,7 +2634,10 @@ static void print_commit(char sign, struct commit *commit, int verbose, } } -int cmd_cherry (int argc,const char **argv,const char *prefix) +int cmd_cherry (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {struct rev_info revs;struct patch_ids ids;
builtin/ls-files.c +4 -1
@@ -561,7 +561,10 @@ static int option_parse_exclude_standard(const struct option *opt,return 0 ; } -int cmd_ls_files (int argc,const char **argv,const char *cmd_prefix) +int cmd_ls_files (int argc, +const char **argv, +const char *cmd_prefix, + struct repository *repo UNUSED) {int require_work_tree =0 , show_tag =0 , i;char *max_prefix;
builtin/ls-remote.c +4 -1
@@ -37,7 +37,10 @@ static int tail_match(const struct strvec *pattern, const char *path)return 0 ; } -int cmd_ls_remote (int argc,const char **argv,const char *prefix) +int cmd_ls_remote (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {const char *dest =NULL ;unsigned flags =0 ;
builtin/ls-tree.c +4 -1
@@ -329,7 +329,10 @@ static struct ls_tree_cmdmode_to_fmt ls_tree_cmdmode_format[] = { }, }; -int cmd_ls_tree (int argc,const char **argv,const char *prefix) +int cmd_ls_tree (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {struct object_id oid;struct tree *tree;
builtin/mailinfo.c +4 -1
@@ -48,7 +48,10 @@ static int parse_opt_quoted_cr(const struct option *opt, const char *arg, int unreturn 0 ; } -int cmd_mailinfo (int argc,const char **argv,const char *prefix) +int cmd_mailinfo (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {struct metainfo_charset meta_charset;struct mailinfo mi;
builtin/mailsplit.c +4 -1
@@ -269,7 +269,10 @@ out:return ret; } -int cmd_mailsplit (int argc,const char **argv,const char *prefix) +int cmd_mailsplit (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {int nr =0 , nr_prec =4 , num =0 ;int allow_bare =0 ;
builtin/merge-base.c +4 -1
@@ -143,7 +143,10 @@ static int handle_fork_point(int argc, const char **argv)return 0 ; } -int cmd_merge_base (int argc,const char **argv,const char *prefix) +int cmd_merge_base (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {struct commit **rev;int rev_nr =0 ;
builtin/merge-file.c +4 -1
@@ -53,7 +53,10 @@ static int diff_algorithm_cb(const struct option *opt,return 0 ; } -int cmd_merge_file (int argc,const char **argv,const char *prefix) +int cmd_merge_file (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {const char *names[3 ] = {0 };mmfile_t mmfs[3 ] = {0 };
builtin/merge-index.c +4 -1
@@ -73,7 +73,10 @@ static void merge_all(void) } } -int cmd_merge_index(int argc, const char **argv, const char *prefix UNUSED) +int cmd_merge_index (int argc, +const char **argv, + const char *prefix UNUSED, + struct repository *repo UNUSED) {int i, force_file =0 ;
builtin/merge-ours.c +4 -1
@@ -15,7 +15,10 @@static const char builtin_merge_ours_usage[] ="git merge-ours <base>... -- HEAD <remote>..." ; -int cmd_merge_ours(int argc, const char **argv, const char *prefix UNUSED) +int cmd_merge_ours (int argc, +const char **argv, + const char *prefix UNUSED, + struct repository *repo UNUSED) {if (argc ==2 && !strcmp (argv[1 ],"-h" ))usage (builtin_merge_ours_usage);
builtin/merge-recursive.c +4 -1
@@ -21,7 +21,10 @@ static char *better_branch_name(const char *branch)return xstrdup (name ? name : branch); } -int cmd_merge_recursive(int argc, const char **argv, const char *prefix UNUSED) +int cmd_merge_recursive (int argc, +const char **argv, + const char *prefix UNUSED, + struct repository *repo UNUSED) {struct object_id bases[21 ];unsigned bases_count =0 ;
builtin/merge-tree.c +4 -1
@@ -526,7 +526,10 @@ static int real_merge(struct merge_tree_options *o,return !result.clean;/* result.clean < 0 handled above */ } -int cmd_merge_tree (int argc,const char **argv,const char *prefix) +int cmd_merge_tree (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {struct merge_tree_options o = { .show_messages =-1 };struct strvec xopts =STRVEC_INIT ;
builtin/merge.c +6 -3
@@ -1275,7 +1275,10 @@ static int merging_a_throwaway_tag(struct commit *commit)return is_throwaway_tag; } -int cmd_merge (int argc,const char **argv,const char *prefix) +int cmd_merge (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {struct object_id result_tree, stash, head_oid;struct commit *head_commit;
@@ -1347,7 +1350,7 @@ int cmd_merge(int argc, const char **argv, const char *prefix) REF_NO_DEREF);/* Invoke 'git reset --merge' */ - ret =cmd_reset (nargc, nargv, prefix); + ret =cmd_reset (nargc, nargv, prefix, the_repository);if (!is_null_oid (&stash_oid)) {oid_to_hex_r (stash_oid_hex, &stash_oid);
@@ -1379,7 +1382,7 @@ int cmd_merge(int argc, const char **argv, const char *prefix)die (_ ("There is no merge in progress (MERGE_HEAD missing)." ));/* Invoke 'git commit' */ - ret =cmd_commit (nargc, nargv, prefix); + ret =cmd_commit (nargc, nargv, prefix, the_repository); goto done; }
builtin/mktag.c +4 -1
@@ -71,7 +71,10 @@ static int verify_object_in_tag(struct object_id *tagged_oid, int *tagged_type)return ret; } -int cmd_mktag(int argc, const char **argv, const char *prefix) +int cmd_mktag(int argc, + const char **argv, + const char *prefix, + struct repository *repo UNUSED) { static struct option builtin_mktag_options[] = { OPT_BOOL(0, "strict", &option_strict,
builtin/mktree.c +5 -1
@@ -150,7 +150,10 @@ static void mktree_line(char *buf, int nul_term_line, int allow_missing)free (to_free); } -int cmd_mktree (int ac,const char **av,const char *prefix) +int cmd_mktree (int ac, +const char **av, +const char *prefix, + struct repository *repo UNUSED) {struct strbuf sb =STRBUF_INIT ;struct object_id oid;
@@ -199,5 +202,6 @@ int cmd_mktree(int ac, const char **av, const char *prefix) used=0 ;/* reset tree entry buffer for re-use in batch mode */ }strbuf_release (&sb); +return 0 ; }
builtin/multi-pack-index.c +4 -2
@@ -267,8 +267,10 @@ static int cmd_multi_pack_index_repack(int argc, const char **argv, (size_t)opts.batch_size, opts.flags); } -int cmd_multi_pack_index (int argc,const char **argv, -const char *prefix) +int cmd_multi_pack_index (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {int res;parse_opt_subcommand_fn *fn =NULL ;
builtin/mv.c +4 -1
@@ -178,7 +178,10 @@ static void remove_empty_src_dirs(const char **src_dir, size_t src_dir_nr)strbuf_release (&a_src_dir); } -int cmd_mv (int argc,const char **argv,const char *prefix) +int cmd_mv (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {int i, flags, gitmodules_modified =0 ;int verbose =0 , show_only =0 , force =0 , ignore_errors =0 , ignore_sparse =0 ;
builtin/name-rev.c +4 -1
@@ -558,7 +558,10 @@ static void name_rev_line(char *p, struct name_ref_data *data)strbuf_release (&buf); } -int cmd_name_rev (int argc,const char **argv,const char *prefix) +int cmd_name_rev (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {struct mem_pool string_pool;struct object_array revs =OBJECT_ARRAY_INIT ;
builtin/notes.c +4 -1
@@ -1096,7 +1096,10 @@ static int get_ref(int argc, const char **argv, const char *prefix)return 0 ; } -int cmd_notes (int argc,const char **argv,const char *prefix) +int cmd_notes (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {const char *override_notes_ref =NULL ;parse_opt_subcommand_fn *fn =NULL ;
builtin/pack-objects.c +4 -1
@@ -4284,7 +4284,10 @@ static int option_parse_cruft_expiration(const struct option *opt UNUSED,return 0 ; } -int cmd_pack_objects (int argc,const char **argv,const char *prefix) +int cmd_pack_objects (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {int use_internal_rev_list =0 ;int shallow =0 ;
builtin/pack-redundant.c +2 -5
@@ -561,11 +561,8 @@ static void load_all(void) } } -int cmd_pack_redundant(int argc, const char **argv, const char *prefix UNUSED) -{ -int i; -int i_still_use_this =0 ; -struct pack_list *min =NULL , *red, *pl; +int cmd_pack_redundant(int argc, const char **argv, const char *prefix UNUSED, struct repository *repo UNUSED) { +int i;int i_still_use_this =0 ;struct pack_list *min =NULL , *red, *pl;struct llist *ignore;struct object_id *oid;char buf[GIT_MAX_HEXSZ +2 ];/* hex hash + \n + \0 */
builtin/pack-refs.c +4 -1
@@ -11,7 +11,10 @@ static char const * const pack_refs_usage[] = {NULL }; -int cmd_pack_refs (int argc,const char **argv,const char *prefix) +int cmd_pack_refs (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {struct ref_exclusions excludes =REF_EXCLUSIONS_INIT ;struct string_list included_refs =STRING_LIST_INIT_NODUP ;
builtin/patch-id.c +4 -1
@@ -260,7 +260,10 @@ static int git_patch_id_config(const char *var, const char *value,return git_default_config (var, value, ctx, cb); } -int cmd_patch_id (int argc,const char **argv,const char *prefix) +int cmd_patch_id (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {/* if nothing is set, default to unstable */ struct patch_id_opts config = {0 ,0 };
builtin/prune-packed.c +4 -1
@@ -8,7 +8,10 @@ static const char * const prune_packed_usage[] = {NULL }; -int cmd_prune_packed (int argc,const char **argv,const char *prefix) +int cmd_prune_packed (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {int opts =isatty (2 ) ?PRUNE_PACKED_VERBOSE :0 ;const struct option prune_packed_options[] = {
builtin/prune.c +4 -1
@@ -147,7 +147,10 @@ static void remove_temporary_files(const char *path)closedir (dir); } -int cmd_prune (int argc,const char **argv,const char *prefix) +int cmd_prune (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {struct rev_info revs;int exclude_promisor_objects =0 ;
builtin/pull.c +4 -1
@@ -977,7 +977,10 @@ static void show_advice_pull_non_ff(void) "invocation.\n")); } -int cmd_pull (int argc,const char **argv,const char *prefix) +int cmd_pull (int argc, +const char **argv, +const char *prefix, + struct repository *repository UNUSED) {const char *repo, **refspecs;struct oid_array merge_heads =OID_ARRAY_INIT ;
builtin/push.c +4 -1
@@ -546,7 +546,10 @@ static int git_push_config(const char *k, const char *v,return git_default_config (k, v, ctx,NULL ); } -int cmd_push (int argc,const char **argv,const char *prefix) +int cmd_push (int argc, +const char **argv, +const char *prefix, + struct repository *repository UNUSED) {int flags =0 ;int tags =0 ;
builtin/range-diff.c +4 -1
@@ -13,7 +13,10 @@ N_("git range-diff [<options>] <base> <old-tip> <new-tip>"),NULL }; -int cmd_range_diff (int argc,const char **argv,const char *prefix) +int cmd_range_diff (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {struct diff_options diffopt = {NULL };struct strvec other_arg =STRVEC_INIT ;
builtin/read-tree.c +4 -1
@@ -108,7 +108,10 @@ static int git_read_tree_config(const char *var, const char *value,return git_default_config (var, value, ctx, cb); } -int cmd_read_tree (int argc,const char **argv,const char *cmd_prefix) +int cmd_read_tree (int argc, +const char **argv, +const char *cmd_prefix, + struct repository *repo UNUSED) {int i, stage =0 ;struct object_id oid;
builtin/rebase.c +4 -1
@@ -1063,7 +1063,10 @@ static int check_exec_cmd(const char *cmd)return 0 ; } -int cmd_rebase (int argc,const char **argv,const char *prefix) +int cmd_rebase (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {struct rebase_options options =REBASE_OPTIONS_INIT ;const char *branch_name;
builtin/receive-pack.c +4 -1
@@ -2480,7 +2480,10 @@ static int delete_only(struct command *commands)return 1 ; } -int cmd_receive_pack (int argc,const char **argv,const char *prefix) +int cmd_receive_pack (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {int advertise_refs =0 ;struct command *commands;
builtin/reflog.c +6 -3
@@ -244,7 +244,7 @@ static int cmd_reflog_show(int argc, const char **argv, const char *prefix)PARSE_OPT_KEEP_DASHDASH |PARSE_OPT_KEEP_ARGV0 | PARSE_OPT_KEEP_UNKNOWN_OPT); -return cmd_log_reflog (argc, argv, prefix); +return cmd_log_reflog (argc, argv, prefix, the_repository); } static int show_reflog(const char *refname, void *cb_data UNUSED)
@@ -447,7 +447,10 @@ static int cmd_reflog_exists(int argc, const char **argv, const char *prefix)* main "reflog" */ -int cmd_reflog (int argc,const char **argv,const char *prefix) +int cmd_reflog (int argc, +const char **argv, +const char *prefix, +struct repository *repository) {parse_opt_subcommand_fn *fn =NULL ;struct option options[] = {
@@ -466,5 +469,5 @@ int cmd_reflog(int argc, const char **argv, const char *prefix)if (fn)return fn (argc -1 , argv +1 , prefix);else -return cmd_log_reflog (argc, argv, prefix); +return cmd_log_reflog (argc, argv, prefix, repository); }
builtin/refs.c +4 -1
@@ -90,7 +90,10 @@ static int cmd_refs_verify(int argc, const char **argv, const char *prefix)return ret; } -int cmd_refs (int argc,const char **argv,const char *prefix) +int cmd_refs (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {const char *const refs_usage[] = {REFS_MIGRATE_USAGE ,
builtin/remote-ext.c +4 -1
@@ -195,7 +195,10 @@ static int command_loop(const char *child) } } -int cmd_remote_ext (int argc,const char **argv,const char *prefix) +int cmd_remote_ext (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {BUG_ON_NON_EMPTY_PREFIX (prefix);
builtin/remote-fd.c +4 -1
@@ -53,7 +53,10 @@ static void command_loop(int input_fd, int output_fd) } } -int cmd_remote_fd (int argc,const char **argv,const char *prefix) +int cmd_remote_fd (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {int input_fd =-1 ;int output_fd =-1 ;
builtin/remote.c +4 -1
@@ -1754,7 +1754,10 @@ out:return 0 ; } -int cmd_remote (int argc,const char **argv,const char *prefix) +int cmd_remote (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {parse_opt_subcommand_fn *fn =NULL ;struct option options[] = {
builtin/repack.c +4 -1
@@ -1116,7 +1116,10 @@ static const char *find_pack_prefix(const char *packdir, const char *packtmp)return pack_prefix; } -int cmd_repack (int argc,const char **argv,const char *prefix) +int cmd_repack (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {struct child_process cmd =CHILD_PROCESS_INIT ;struct string_list_item *item;
builtin/replace.c +4 -1
@@ -545,7 +545,10 @@ static int convert_graft_file(int force)return -1 ; } -int cmd_replace (int argc,const char **argv,const char *prefix) +int cmd_replace (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {int force =0 ;int raw =0 ;
builtin/replay.c +4 -1
@@ -274,7 +274,10 @@ static struct commit *pick_regular_commit(struct commit *pickme,return create_commit (result->tree, pickme, replayed_base); } -int cmd_replay (int argc,const char **argv,const char *prefix) +int cmd_replay (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {const char *advance_name_opt =NULL ;char *advance_name =NULL ;
builtin/rerere.c +4 -1
@@ -48,7 +48,10 @@ static int diff_two(const char *file1, const char *label1,return ret; } -int cmd_rerere (int argc,const char **argv,const char *prefix) +int cmd_rerere (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {struct string_list merge_rr =STRING_LIST_INIT_DUP ;int i, autoupdate =-1 , flags =0 ;
builtin/reset.c +4 -1
@@ -330,7 +330,10 @@ static int git_reset_config(const char *var, const char *value,return git_default_config (var, value, ctx, cb); } -int cmd_reset (int argc,const char **argv,const char *prefix) +int cmd_reset (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {int reset_type =NONE , update_ref_status =0 , quiet =0 ;int no_refresh =0 ;
builtin/rev-list.c +4 -1
@@ -513,7 +513,10 @@ static int try_bitmap_disk_usage(struct rev_info *revs,return 0 ; } -int cmd_rev_list (int argc,const char **argv,const char *prefix) +int cmd_rev_list (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {struct rev_info revs;struct rev_list_info info;
builtin/rev-parse.c +4 -1
@@ -688,7 +688,10 @@ static void print_path(const char *path, const char *prefix, enum format_type fofree (cwd); } -int cmd_rev_parse (int argc,const char **argv,const char *prefix) +int cmd_rev_parse (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {int i, as_is =0 , verify =0 , quiet =0 , revs_count =0 , type =0 ;const struct git_hash_algo *output_algo =NULL ;
builtin/revert.c +8 -2
@@ -261,7 +261,10 @@ static int run_sequencer(int argc, const char **argv, const char *prefix,return sequencer_pick_revisions (the_repository, opts); } -int cmd_revert (int argc,const char **argv,const char *prefix) +int cmd_revert (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {struct replay_opts opts =REPLAY_OPTS_INIT ;int res;
@@ -275,7 +278,10 @@ int cmd_revert(int argc, const char **argv, const char *prefix)return res; } -int cmd_cherry_pick (int argc,const char **argv,const char *prefix) +int cmd_cherry_pick (int argc, +const char **argv, +const char *prefix, +struct repository *repo UNUSED) {struct replay_opts opts =REPLAY_OPTS_INIT ;int res;
builtin/rm.c +4 -1
@@ -261,7 +261,10 @@ static struct option builtin_rm_options[] = { OPT_END(), }; -int cmd_rm (int argc,const char **argv,const char *prefix) +int cmd_rm (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {struct lock_file lock_file =LOCK_INIT ;int i, ret =0 ;
builtin/send-pack.c +4 -1
@@ -147,7 +147,10 @@ static int send_pack_config(const char *k, const char *v,return git_default_config (k, v, ctx, cb); } -int cmd_send_pack (int argc,const char **argv,const char *prefix) +int cmd_send_pack (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {struct refspec rs =REFSPEC_INIT_PUSH ;const char *remote_name =NULL ;
builtin/shortlog.c +4 -1
@@ -378,7 +378,10 @@ void shortlog_finish_setup(struct shortlog *log)string_list_sort (&log->trailers); } -int cmd_shortlog (int argc,const char **argv,const char *prefix) +int cmd_shortlog (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {struct shortlog log = {STRING_LIST_INIT_NODUP };struct rev_info rev;
builtin/show-branch.c +4 -1
@@ -632,7 +632,10 @@ static int parse_reflog_param(const struct option *opt, const char *arg,return 0 ; } -int cmd_show_branch (int ac,const char **av,const char *prefix) +int cmd_show_branch (int ac, +const char **av, +const char *prefix, + struct repository *repo UNUSED) {struct commit *rev[MAX_REVS ], *commit;char *reflog_msg[MAX_REVS ] = {0 };
builtin/show-index.c +4 -1
@@ -11,7 +11,10 @@ static const char *const show_index_usage[] = {NULL }; -int cmd_show_index (int argc,const char **argv,const char *prefix) +int cmd_show_index (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {int i;unsigned nr;
builtin/show-ref.c +4 -1
@@ -287,7 +287,10 @@ static int exclude_existing_callback(const struct option *opt, const char *arg,return 0 ; } -int cmd_show_ref (int argc,const char **argv,const char *prefix) +int cmd_show_ref (int argc, +const char **argv, +const char *prefix, +struct repository *repo UNUSED) {struct exclude_existing_options exclude_existing_opts = {0 };struct patterns_options patterns_opts = {0 };
builtin/sparse-checkout.c +4 -1
@@ -1030,7 +1030,10 @@ static int sparse_checkout_check_rules(int argc, const char **argv, const char *return ret; } -int cmd_sparse_checkout (int argc,const char **argv,const char *prefix) +int cmd_sparse_checkout (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {parse_opt_subcommand_fn *fn =NULL ;struct option builtin_sparse_checkout_options[] = {
builtin/stash.c +4 -1
@@ -1871,7 +1871,10 @@ static int save_stash(int argc, const char **argv, const char *prefix)return ret; } -int cmd_stash (int argc,const char **argv,const char *prefix) +int cmd_stash (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {pid_t pid =getpid ();const char *index_file;
builtin/stripspace.c +4 -1
@@ -29,7 +29,10 @@ enum stripspace_mode {COMMENT_LINES }; -int cmd_stripspace (int argc,const char **argv,const char *prefix) +int cmd_stripspace (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {struct strbuf buf =STRBUF_INIT ;enum stripspace_mode mode =STRIP_DEFAULT ;
builtin/submodule--helper.c +4 -1
@@ -3528,7 +3528,10 @@ cleanup:return ret; } -int cmd_submodule__helper (int argc,const char **argv,const char *prefix) +int cmd_submodule__helper (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {parse_opt_subcommand_fn *fn =NULL ;const char *const usage[] = {
builtin/symbolic-ref.c +4 -1
@@ -41,7 +41,10 @@ static int check_symref(const char *HEAD, int quiet, int shorten, int recurse, ireturn 0 ; } -int cmd_symbolic_ref (int argc,const char **argv,const char *prefix) +int cmd_symbolic_ref (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {int quiet =0 , delete =0 , shorten =0 , recurse =1 , ret =0 ;const char *msg =NULL ;
builtin/tag.c +4 -1
@@ -457,7 +457,10 @@ static int strbuf_check_tag_ref(struct strbuf *sb, const char *name)return check_refname_format (sb->buf,0 ); } -int cmd_tag (int argc,const char **argv,const char *prefix) +int cmd_tag (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {struct strbuf buf =STRBUF_INIT ;struct strbuf ref =STRBUF_INIT ;
builtin/unpack-file.c +4 -1
@@ -25,7 +25,10 @@ static char *create_temp_file(struct object_id *oid)return path; } -int cmd_unpack_file(int argc, const char **argv, const char *prefix UNUSED) +int cmd_unpack_file (int argc, +const char **argv, + const char *prefix UNUSED, + struct repository *repo UNUSED) {struct object_id oid;
builtin/unpack-objects.c +4 -1
@@ -601,7 +601,10 @@ static void unpack_all(void)die ("unresolved deltas left after unpacking" ); } -int cmd_unpack_objects(int argc, const char **argv, const char *prefix UNUSED) +int cmd_unpack_objects (int argc, +const char **argv, + const char *prefix UNUSED, + struct repository *repo UNUSED) {int i;struct object_id oid;
builtin/update-index.c +4 -1
@@ -917,7 +917,10 @@ static enum parse_opt_result reupdate_callback(return 0 ; } -int cmd_update_index (int argc,const char **argv,const char *prefix) +int cmd_update_index (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {int newfd, entries, has_errors =0 , nul_term_line =0 ;enum uc_mode untracked_cache =UC_UNSPECIFIED ;
builtin/update-ref.c +4 -1
@@ -713,7 +713,10 @@ static void update_refs_stdin(void)strbuf_release (&input); } -int cmd_update_ref (int argc,const char **argv,const char *prefix) +int cmd_update_ref (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {const char *refname, *oldval;struct object_id oid, oldoid;
builtin/update-server-info.c +4 -1
@@ -9,7 +9,10 @@ static const char * const update_server_info_usage[] = {NULL }; -int cmd_update_server_info (int argc,const char **argv,const char *prefix) +int cmd_update_server_info (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {int force =0 ;struct option options[] = {
builtin/upload-archive.c +8 -2
@@ -18,7 +18,10 @@ static const char deadchild[] =#define MAX_ARGS (64) -int cmd_upload_archive_writer (int argc,const char **argv,const char *prefix) +int cmd_upload_archive_writer (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {struct strvec sent_argv =STRVEC_INIT ;const char *arg_cmd ="argument " ;
@@ -76,7 +79,10 @@ static ssize_t process_input(int child_fd, int band)return sz; } -int cmd_upload_archive (int argc,const char **argv,const char *prefix) +int cmd_upload_archive (int argc, +const char **argv, +const char *prefix, +struct repository *repo UNUSED) {struct child_process writer =CHILD_PROCESS_INIT ;
builtin/upload-pack.c +4 -1
@@ -17,7 +17,10 @@ static const char * const upload_pack_usage[] = {NULL }; -int cmd_upload_pack (int argc,const char **argv,const char *prefix) +int cmd_upload_pack (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {const char *dir;int strict =0 ;
builtin/var.c +4 -1
@@ -210,7 +210,10 @@ static int show_config(const char *var, const char *value,return git_default_config (var, value, ctx, cb); } -int cmd_var(int argc, const char **argv, const char *prefix UNUSED) +int cmd_var (int argc, +const char **argv, + const char *prefix UNUSED, + struct repository *repo UNUSED) {const struct git_var *git_var;char *val;
builtin/verify-commit.c +4 -1
@@ -51,7 +51,10 @@ static int verify_commit(const char *name, unsigned flags)return run_gpg_verify ((struct commit *)obj, flags); } -int cmd_verify_commit (int argc,const char **argv,const char *prefix) +int cmd_verify_commit (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {int i =1 , verbose =0 , had_error =0 ;unsigned flags =0 ;
builtin/verify-pack.c +4 -1
@@ -61,7 +61,10 @@ static const char * const verify_pack_usage[] = {NULL }; -int cmd_verify_pack (int argc,const char **argv,const char *prefix) +int cmd_verify_pack (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {int err =0 ;unsigned int flags =0 ;
builtin/verify-tag.c +4 -1
@@ -19,7 +19,10 @@ static const char * const verify_tag_usage[] = {NULL }; -int cmd_verify_tag (int argc,const char **argv,const char *prefix) +int cmd_verify_tag (int argc, +const char **argv, +const char *prefix, + struct repository *repo UNUSED) {int i =1 , verbose =0 , had_error =0 ;unsigned flags =0 ;
builtin/worktree.c +4 -1
@@ -1392,7 +1392,10 @@ static int repair(int ac, const char **av, const char *prefix)return rc; } -int cmd_worktree (int ac,const char **av,const char *prefix) +int cmd_worktree (int ac, +const char **av, +const char *prefix, + struct repository *repo UNUSED) {parse_opt_subcommand_fn *fn =NULL ;struct option options[] = {
builtin/write-tree.c +4 -1
@@ -19,7 +19,10 @@ static const char * const write_tree_usage[] = {NULL }; -int cmd_write_tree (int argc,const char **argv,const char *cmd_prefix) +int cmd_write_tree (int argc, +const char **argv, +const char *cmd_prefix, + struct repository *repo UNUSED) {int flags =0 , ret;const char *tree_prefix =NULL ;
git.c +6 -6
@@ -31,7 +31,7 @@struct cmd_struct {const char *cmd; -int (*fn)(int ,const char **,const char *); +int (*fn)(int ,const char **,const char *,struct repository *);unsigned int option; };
@@ -441,7 +441,7 @@ static int handle_alias(int *argcp, const char ***argv)return ret; } -static int run_builtin (struct cmd_struct *p,int argc,const char **argv) +static int run_builtin (struct cmd_struct *p,int argc,const char **argv,struct repository *repo) {int status, help;struct stat st;
@@ -479,9 +479,9 @@ static int run_builtin(struct cmd_struct *p, int argc, const char **argv)trace_argv_printf (argv,"trace: built-in: git" );trace2_cmd_name (p->cmd); -validate_cache_entries (the_repository->index); - status = p->fn (argc, argv, prefix); -validate_cache_entries (the_repository->index); +validate_cache_entries (repo->index); + status = p->fn (argc, argv, prefix, (p->option &RUN_SETUP )? repo :NULL ); +validate_cache_entries (repo->index);if (status)return status;
@@ -736,7 +736,7 @@ static void handle_builtin(int argc, const char **argv) builtin =get_builtin (cmd);if (builtin) -exit (run_builtin (builtin, argc, argv)); +exit (run_builtin (builtin, argc, argv, the_repository));strvec_clear (&args); }
help.c +2 -1
@@ -16,6 +16,7 @@#include "parse-options.h" #include "prompt.h" #include "fsmonitor-ipc.h" +#include "repository.h" #ifndef NO_CURL #include "git-curl-compat.h" /* For LIBCURL_VERSION only */
@@ -775,7 +776,7 @@ void get_version_info(struct strbuf *buf, int show_build_options) } } -int cmd_version (int argc,const char **argv,const char *prefix) +int cmd_version(int argc, const char **argv, const char *prefix, struct repository *repository UNUSED) {struct strbuf buf =STRBUF_INIT ;int build_options =0 ;
stkOs5Qh new file binary +0 -0
Signature · 1 line
gitgitgadget
Re: [PATCH v2 1/3] builtin: add a repository parameter for builtin functions
Quoted 3 lines · John Cai via GitGitGadget
git.c | 12 +- help.c | 3 +- stkOs5Qh | Bin 0 -> 10485768 bytes
WTH is this file?
Re: [PATCH v2 1/3] builtin: add a repository parameter for builtin functions
Quoted 7 lines · Junio C Hamano
Quoted 3 lines · John Cai via GitGitGadget
git.c | 12 +- help.c | 3 +- stkOs5Qh | Bin 0 -> 10485768 bytesWTH is this file?
It turns out to be an "ar" archive full of *.o files. Perhaps creation of libgit.a was interrupted, then later somebody said "git add .", and the file somehow ended up as a part of Git.
I've applied the series after removing the cruft.
The overall thrust to pass the repository found by the setup step to builtins as a parameter is a very good one, as most of the Git commands are designed to work in a repository.
With this, can commands that are marked with RUN_SETUP_GENTLY rely on the NULL-ness of repo parameter to decide if they are in a repository or running outside a repository?
The "nongit?" status returned from setup_git_directory_gently() call made by git.c:run_builtin() is thrown away and not passed to the builtin functions at all, so some of them currently may be doing another discovery themselves, and if we can replace such a wasteful setup_git_directory_gently() call, it would be nice, and passing the discovered repository instance to builtin commands is a good first step to go there.
Thanks.
Re: [PATCH v2 1/3] builtin: add a repository parameter for builtin functions
Quoted 8 lines · Junio C Hamano
Quoted 6 lines · Junio C Hamano
Quoted 3 lines · John Cai via GitGitGadget
git.c | 12 +- help.c | 3 +- stkOs5Qh | Bin 0 -> 10485768 bytes
Quoted 7 lines
Quoted 1 line
WTH is this file?
It turns out to be an "ar" archive full of *.o files. Perhaps creation of libgit.a was interrupted, then later somebody said "git add .", and the file somehow ended up as a part of Git.
I've applied the series after removing the cruft.
I've noticed that something leaves behind this garbage from time to time. It's a shame that its name is just random gibberish, because that makes it impossible to set up a gitignore rule for it.
Quoted 3 lines
The overall thrust to pass the repository found by the setup step to builtins as a parameter is a very good one, as most of the Git commands are designed to work in a repository.
Yup, that's the direction we want to move into. We're basically trying to approach getting rid of the_repository both bottom-up and top-down now. My changes are bottom up, libifying the low-level subsystems as we go. And this here is the first change going top-down, getting rid of the global dependency in our builtins. Eventually the plan is to meet in the middle.
Patrick
Re: [PATCH v2 1/3] builtin: add a repository parameter for builtin functions
Quoted 9 lines · Patrick Steinhardt
Quoted 5 lines
It turns out to be an "ar" archive full of *.o files. Perhaps creation of libgit.a was interrupted, then later somebody said "git add .", and the file somehow ended up as a part of Git.
I've applied the series after removing the cruft.
I've noticed that something leaves behind this garbage from time to time. It's a shame that its name is just random gibberish, because that makes it impossible to set up a gitignore rule for it.
I've seen it once or twice, too. It's always st[A-Za-z0-9]{6}, at least on my system. Doing this:
Makefile +1 -1
@@ -2860,7 +2860,7 @@ scalar$X: scalar.o GIT-LDFLAGS $(GITLIBS) $(filter %.o,$^) $(LIBS) $(LIB_FILE): $(LIB_OBJS) - $(QUIET_AR)$(RM) $@ && $(AR) $(ARFLAGS) $@ $^ + $(QUIET_AR)$(RM) $@ && ($(AR) $(ARFLAGS) $@ $^ & sleep 0.01; kill $$!) && false $(XDIFF_LIB): $(XDIFF_OBJS) $(QUIET_AR)$(RM) $@ && $(AR) $(ARFLAGS) $@ $^
and then running "make" several times got me:
Untracked files:
st5AOnzl
st8gTTvD
stJABM4u
stKA7riS
stLZ4yDr
stMWJCVY
stjYXpN0
stwcX3kZ
I don't think we'd want to put anything in the tracked .gitignore, since it involves system-specific details. But I think that:
/st[0-9a-zA-Z][0-9a-zA-Z][0-9a-zA-Z][0-9a-zA-Z][0-9a-zA-Z][0-9a-zA-Z]
in your .git/info/excludes (or user-level gitignore) would work if you want, and is probably not too likely to hit false positives (since it lacks an extension).
I do feel like I have only started seeing it in the last month or so. I wonder if a new version of binutils changed behavior or something.
-Peff
Re: [PATCH v2 1/3] builtin: add a repository parameter for builtin functions
Quoted 2 lines · Jeff King
I do feel like I have only started seeing it in the last month or so. I wonder if a new version of binutils changed behavior or something.
Since I had that Makefile reproduction, I ran it against an older version of binutils. And yeah, it produces the same outcome. So it is probably just some kind of Baader-Meinhof phenomenon.
-Peff
Re: [PATCH v2 1/3] builtin: add a repository parameter for builtin functions
Quoted 8 lines · Jeff King
Quoted 2 lines · Jeff King
I do feel like I have only started seeing it in the last month or so. I wonder if a new version of binutils changed behavior or something.
Since I had that
Makefilereproduction, I ran it against an older version of binutils. And yeah, it produces the same outcome. So it is probably just some kind of Baader-Meinhof phenomenon.
I was also reading through recent changes in binutils and couldn't spot anything. But in any case, I also had the feeling that this only started to pop up recently. Maybe it's not a change in binutils, but in our own build instructions. I couldn't find any smoking guns there either, though.
Patrick
Re: [PATCH v2 1/3] builtin: add a repository parameter for builtin functions
Quoted 11 lines · Patrick Steinhardt
Quoted 8 lines · Jeff King
Quoted 2 lines · Jeff King
I do feel like I have only started seeing it in the last month or so. I wonder if a new version of binutils changed behavior or something.
Since I had that
Makefilereproduction, I ran it against an older version of binutils. And yeah, it produces the same outcome. So it is probably just some kind of Baader-Meinhof phenomenon.
Quoted 5 lines
I was also reading through recent changes in binutils and couldn't spot anything. But in any case, I also had the feeling that this only started to pop up recently. Maybe it's not a change in binutils, but in our own build instructions. I couldn't find any smoking guns there either, though.
Sorry everyone. I totally missed that the garbage file got checked in accidentally. my apologies.
Quoted 2 lines
Patrick
PATCH v2 2/3 builtin: remove USE_THE_REPOSITORY_VARIABLE from builtin.h
In reply to John Cai via GitGitGadgetFrom: John Cai <[email protected]>
Instead of including USE_THE_REPOSITORY_VARIABLE by default on every builtin, remove it from builtin.h and add it to all the builtins that reference the_repository.
Also, remove the include statement for repository.h since it gets brought in through builtin.h.
The next step will be to migrate each builtin
from having to use the_repository.
--- builtin.h | 8 -------- builtin/add.c | 3 +-- builtin/am.c | 2 +- builtin/annotate.c | 2 ++ builtin/apply.c | 2 +- builtin/archive.c | 2 +- builtin/bisect.c | 1 + builtin/blame.c | 3 +-- builtin/branch.c | 2 +- builtin/bugreport.c | 1 + builtin/bundle.c | 2 +- builtin/cat-file.c | 2 +- builtin/check-attr.c | 2 +- builtin/check-ignore.c | 2 +- builtin/check-mailmap.c | 1 + builtin/checkout--worker.c | 1 + builtin/checkout-index.c | 3 +-- builtin/checkout.c | 1 + builtin/clean.c | 3 +-- builtin/clone.c | 3 ++- builtin/column.c | 1 + builtin/commit-graph.c | 2 +- builtin/commit-tree.c | 3 ++- builtin/commit.c | 2 +- builtin/config.c | 2 +- builtin/count-objects.c | 3 +-- builtin/credential-cache--daemon.c | 1 + builtin/credential-store.c | 1 + builtin/credential.c | 2 ++ builtin/describe.c | 1 + builtin/diff-files.c | 2 +- builtin/diff-index.c | 2 +- builtin/diff-tree.c | 2 +- builtin/diff.c | 2 +- builtin/difftool.c | 3 ++- builtin/fast-export.c | 1 + builtin/fast-import.c | 2 +- builtin/fetch-pack.c | 1 + builtin/fetch.c | 2 +- builtin/fmt-merge-msg.c | 1 + builtin/for-each-ref.c | 1 + builtin/for-each-repo.c | 2 +- builtin/fsck.c | 2 +- builtin/fsmonitor--daemon.c | 3 ++- builtin/gc.c | 3 +-- builtin/grep.c | 2 +- builtin/hash-object.c | 1 + builtin/help.c | 2 ++ builtin/hook.c | 1 + builtin/index-pack.c | 1 + builtin/init-db.c | 2 +- builtin/interpret-trailers.c | 2 +- builtin/log.c | 3 ++- builtin/ls-files.c | 2 +- builtin/ls-remote.c | 1 + builtin/ls-tree.c | 2 ++ builtin/mailinfo.c | 1 + builtin/merge-base.c | 2 +- builtin/merge-file.c | 1 + builtin/merge-index.c | 2 +- builtin/merge-ours.c | 3 ++- builtin/merge-recursive.c | 2 +- builtin/merge-tree.c | 2 +- builtin/merge.c | 3 ++- builtin/mktag.c | 1 + builtin/mktree.c | 1 + builtin/multi-pack-index.c | 1 + builtin/mv.c | 3 ++- builtin/name-rev.c | 2 +- builtin/notes.c | 4 ++-- builtin/pack-objects.c | 2 +- builtin/pack-redundant.c | 3 ++- builtin/pack-refs.c | 2 +- builtin/patch-id.c | 1 + builtin/prune.c | 1 + builtin/pull.c | 1 + builtin/push.c | 2 +- builtin/range-diff.c | 3 ++- builtin/read-tree.c | 3 +-- builtin/rebase.c | 3 ++- builtin/receive-pack.c | 3 ++- builtin/reflog.c | 2 +- builtin/refs.c | 2 +- builtin/remote.c | 1 + builtin/repack.c | 1 + builtin/replace.c | 3 +-- builtin/replay.c | 1 + builtin/rerere.c | 3 ++- builtin/reset.c | 2 +- builtin/rev-list.c | 1 + builtin/rev-parse.c | 3 ++- builtin/revert.c | 2 +- builtin/rm.c | 4 ++-- builtin/send-pack.c | 1 + builtin/shortlog.c | 2 +- builtin/show-branch.c | 3 ++- builtin/show-index.c | 2 +- builtin/show-ref.c | 1 + builtin/sparse-checkout.c | 2 +- builtin/stash.c | 1 + builtin/stripspace.c | 1 + builtin/submodule--helper.c | 3 ++- builtin/symbolic-ref.c | 1 + builtin/tag.c | 2 +- builtin/unpack-file.c | 1 + builtin/unpack-objects.c | 1 + builtin/update-index.c | 3 +-- builtin/update-ref.c | 2 +- builtin/update-server-info.c | 1 + builtin/upload-archive.c | 2 +- builtin/var.c | 2 ++ builtin/verify-commit.c | 2 +- builtin/verify-pack.c | 1 + builtin/verify-tag.c | 1 + builtin/worktree.c | 2 +- builtin/write-tree.c | 3 +-- 116 files changed, 138 insertions(+), 91 deletions(-)
builtin.h +0 -8
@@ -1,14 +1,6 @@#ifndef BUILTIN_H #define BUILTIN_H -/* -* TODO: Almost all of our builtins access `the_repository` by necessity -* because they do not get passed a pointer to it. We should adapt the function -* signature of those main functions to accept a `struct repository *` and then -* remove the macro here. -*/ -#define USE_THE_REPOSITORY_VARIABLE -#include "git-compat-util.h" #include "repository.h"
builtin/add.c +1 -2
@@ -3,7 +3,7 @@* * Copyright (C) 2006 Linus Torvalds */ - +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "advice.h" #include "config.h"
@@ -18,7 +18,6 @@#include "preload-index.h" #include "diff.h" #include "read-cache.h" -#include "repository.h" #include "revision.h" #include "bulk-checkin.h" #include "strvec.h"
builtin/am.c +1 -1
@@ -4,6 +4,7 @@* Based on git-am.sh by Junio C Hamano. */ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "abspath.h" #include "advice.h"
@@ -38,7 +39,6 @@#include "string-list.h" #include "pager.h" #include "path.h" -#include "repository.h" #include "pretty.h" /**
builtin/annotate.c +2 -0
@@ -3,6 +3,8 @@* * Copyright (C) 2006 Ryan Anderson */ + +#define USE_THE_REPOSITORY_VARIABLE #include "git-compat-util.h" #include "builtin.h" #include "strvec.h"
builtin/apply.c +1 -1
@@ -1,6 +1,6 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "gettext.h" -#include "repository.h" #include "hash.h" #include "apply.h"
builtin/archive.c +1 -1
@@ -2,13 +2,13 @@* Copyright (c) 2006 Franck Bui-Huu * Copyright (c) 2006 Rene Scharfe */ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "archive.h" #include "gettext.h" #include "transport.h" #include "parse-options.h" #include "pkt-line.h" -#include "repository.h" static void create_output_file (const char *output_file) {
builtin/bisect.c +1 -0
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "copy.h" #include "environment.h"
builtin/blame.c +1 -2
@@ -4,7 +4,7 @@* Copyright (c) 2006, 2014 by its authors * See COPYING for licensing conditions */ - +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "config.h" #include "color.h"
@@ -12,7 +12,6 @@#include "environment.h" #include "gettext.h" #include "hex.h" -#include "repository.h" #include "commit.h" #include "diff.h" #include "revision.h"
builtin/branch.c +1 -1
@@ -4,7 +4,7 @@* Copyright (c) 2006 Kristian Høgsberg <[email protected]> * Based on git-branch.sh by Junio C Hamano. */ - +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "config.h" #include "color.h"
builtin/bugreport.c +1 -0
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "abspath.h" #include "editor.h"
builtin/bundle.c +1 -1
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "abspath.h" #include "gettext.h"
@@ -5,7 +6,6 @@#include "strvec.h" #include "parse-options.h" #include "pkt-line.h" -#include "repository.h" #include "bundle.h" /*
builtin/cat-file.c +1 -1
@@ -3,7 +3,7 @@* * Copyright (C) Linus Torvalds, 2005 */ - +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "config.h" #include "convert.h"
builtin/check-attr.c +1 -1
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "config.h" #include "attr.h"
@@ -5,7 +6,6 @@#include "gettext.h" #include "object-name.h" #include "quote.h" -#include "repository.h" #include "setup.h" #include "parse-options.h" #include "write-or-die.h"
builtin/check-ignore.c +1 -1
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "config.h" #include "dir.h"
@@ -5,7 +6,6 @@#include "quote.h" #include "pathspec.h" #include "parse-options.h" -#include "repository.h" #include "submodule.h" #include "write-or-die.h"
builtin/check-mailmap.c +1 -0
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "config.h" #include "gettext.h"
builtin/checkout--worker.c +1 -0
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "config.h" #include "entry.h"
builtin/checkout-index.c +1 -2
@@ -4,13 +4,12 @@* Copyright (C) 2005 Linus Torvalds * */ - +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "config.h" #include "gettext.h" #include "lockfile.h" #include "quote.h" -#include "repository.h" #include "cache-tree.h" #include "parse-options.h" #include "entry.h"
builtin/checkout.c +1 -0
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "advice.h" #include "branch.h"
builtin/clean.c +1 -2
@@ -5,7 +5,7 @@* * Based on git-clean.sh by Pavel Roskin */ - +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "abspath.h" #include "config.h"
@@ -14,7 +14,6 @@#include "parse-options.h" #include "path.h" #include "read-cache-ll.h" -#include "repository.h" #include "setup.h" #include "string-list.h" #include "quote.h"
builtin/clone.c +2 -1
@@ -7,8 +7,9 @@* * Clone a repository into a different directory that does not yet exist. */ - +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" +#include "abspath.h" #include "advice.h" #include "config.h"
builtin/column.c +1 -0
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "config.h" #include "gettext.h"
builtin/commit-graph.c +1 -1
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "commit.h" #include "config.h"
@@ -5,7 +6,6 @@#include "gettext.h" #include "hex.h" #include "parse-options.h" -#include "repository.h" #include "commit-graph.h" #include "object-store-ll.h" #include "progress.h"
builtin/commit-tree.c +2 -1
@@ -3,13 +3,14 @@* * Copyright (C) Linus Torvalds, 2005 */ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "config.h" #include "gettext.h" #include "hex.h" #include "object-name.h" #include "object-store-ll.h" -#include "repository.h" +#include "commit.h" #include "parse-options.h"
builtin/commit.c +1 -1
@@ -4,7 +4,7 @@* Copyright (c) 2007 Kristian Høgsberg <[email protected]> * Based on git-commit.sh by Junio C Hamano and Linus Torvalds */ - +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "advice.h" #include "config.h"
builtin/config.c +1 -1
@@ -1,10 +1,10 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "abspath.h" #include "config.h" #include "color.h" #include "editor.h" #include "environment.h" -#include "repository.h" #include "gettext.h" #include "ident.h" #include "parse-options.h"
builtin/count-objects.c +1 -2
@@ -3,14 +3,13 @@* * Copyright (c) 2006 Junio C Hamano */ - +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "config.h" #include "dir.h" #include "environment.h" #include "gettext.h" #include "path.h" -#include "repository.h" #include "parse-options.h" #include "quote.h" #include "packfile.h"
builtin/credential-cache--daemon.c +1 -0
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "abspath.h" #include "gettext.h"
builtin/credential-store.c +1 -0
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "config.h" #include "gettext.h"
builtin/credential.c +2 -0
@@ -1,3 +1,5 @@ +#define USE_THE_REPOSITORY_VARIABLE +#include "git-compat-util.h" #include "credential.h" #include "builtin.h"
builtin/describe.c +1 -0
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "config.h" #include "environment.h"
builtin/diff-files.c +1 -1
@@ -3,13 +3,13 @@* * Copyright (C) Linus Torvalds, 2005 */ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "config.h" #include "diff.h" #include "diff-merges.h" #include "commit.h" #include "preload-index.h" -#include "repository.h" #include "revision.h" static const char diff_files_usage[] =
builtin/diff-index.c +1 -1
@@ -1,10 +1,10 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "config.h" #include "diff.h" #include "diff-merges.h" #include "commit.h" #include "preload-index.h" -#include "repository.h" #include "revision.h" #include "setup.h"
builtin/diff-tree.c +1 -1
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "config.h" #include "diff.h"
@@ -6,7 +7,6 @@#include "hex.h" #include "log-tree.h" #include "read-cache-ll.h" -#include "repository.h" #include "revision.h" #include "tmp-objdir.h" #include "tree.h"
builtin/diff.c +1 -1
@@ -3,7 +3,7 @@* * Copyright (c) 2006 Junio C Hamano */ - +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "config.h" #include "ewah/ewok.h"
builtin/difftool.c +2 -1
@@ -11,8 +11,9 @@* * Copyright (C) 2016 Johannes Schindelin */ - +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" +#include "abspath.h" #include "config.h" #include "copy.h"
builtin/fast-export.c +1 -0
@@ -3,6 +3,7 @@* * Copyright (C) 2007 Johannes E. Schindelin */ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "config.h" #include "gettext.h"
builtin/fast-import.c +1 -1
@@ -1,9 +1,9 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "abspath.h" #include "environment.h" #include "gettext.h" #include "hex.h" -#include "repository.h" #include "config.h" #include "lockfile.h" #include "object.h"
builtin/fetch-pack.c +1 -0
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "gettext.h" #include "hex.h"
builtin/fetch.c +1 -1
@@ -1,13 +1,13 @@/* * "git fetch" */ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "advice.h" #include "config.h" #include "gettext.h" #include "environment.h" #include "hex.h" -#include "repository.h" #include "refs.h" #include "refspec.h" #include "object-name.h"
builtin/fmt-merge-msg.c +1 -0
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "config.h" #include "fmt-merge-msg.h"
builtin/for-each-ref.c +1 -0
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "commit.h" #include "config.h"
builtin/for-each-repo.c +1 -1
@@ -1,9 +1,9 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "config.h" #include "gettext.h" #include "parse-options.h" #include "path.h" -#include "repository.h" #include "run-command.h" #include "string-list.h"
builtin/fsck.c +1 -1
@@ -1,7 +1,7 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "gettext.h" #include "hex.h" -#include "repository.h" #include "config.h" #include "commit.h" #include "tree.h"
builtin/fsmonitor--daemon.c +2 -1
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "abspath.h" #include "config.h"
@@ -11,7 +12,7 @@#include "compat/fsmonitor/fsm-health.h" #include "compat/fsmonitor/fsm-listen.h" #include "fsmonitor--daemon.h" -#include "repository.h" +#include "simple-ipc.h" #include "khash.h" #include "run-command.h"
builtin/gc.c +1 -2
@@ -9,13 +9,12 @@* * Copyright (c) 2006 Shawn O. Pearce */ - +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "abspath.h" #include "date.h" #include "environment.h" #include "hex.h" -#include "repository.h" #include "config.h" #include "tempfile.h" #include "lockfile.h"
builtin/grep.c +1 -1
@@ -3,11 +3,11 @@* * Copyright (c) 2006 Junio C Hamano */ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "abspath.h" #include "gettext.h" #include "hex.h" -#include "repository.h" #include "config.h" #include "tag.h" #include "tree-walk.h"
builtin/hash-object.c +1 -0
@@ -4,6 +4,7 @@* Copyright (C) Linus Torvalds, 2005 * Copyright (C) Junio C Hamano, 2005 */ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "abspath.h" #include "config.h"
builtin/help.c +2 -0
@@ -1,6 +1,8 @@ +/* * Builtin help command */ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "config.h" #include "exec-cmd.h"
builtin/hook.c +1 -0
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "config.h" #include "gettext.h"
builtin/index-pack.c +1 -0
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "config.h" #include "delta.h"
builtin/init-db.c +1 -1
@@ -3,6 +3,7 @@* * Copyright (C) Linus Torvalds, 2005 */ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "abspath.h" #include "environment.h"
@@ -11,7 +12,6 @@#include "parse-options.h" #include "path.h" #include "refs.h" -#include "repository.h" #include "setup.h" #include "strbuf.h"
builtin/interpret-trailers.c +1 -1
@@ -4,7 +4,7 @@* Copyright (c) 2013, 2014 Christian Couder <[email protected]> * */ - +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "gettext.h" #include "parse-options.h"
builtin/log.c +2 -1
@@ -4,6 +4,7 @@* (C) Copyright 2006 Linus Torvalds * 2006 Junio Hamano */ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "abspath.h" #include "config.h"
@@ -37,7 +38,7 @@#include "mailmap.h" #include "progress.h" #include "commit-slab.h" -#include "repository.h" +#include "commit-reach.h" #include "range-diff.h" #include "tmp-objdir.h"
builtin/ls-files.c +1 -1
@@ -5,8 +5,8 @@* * Copyright (C) Linus Torvalds, 2005 */ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" -#include "repository.h" #include "config.h" #include "convert.h" #include "quote.h"
builtin/ls-remote.c +1 -0
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "gettext.h" #include "hex.h"
builtin/ls-tree.c +2 -0
@@ -3,7 +3,9 @@* * Copyright (C) Linus Torvalds, 2005 */ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" +#include "config.h" #include "gettext.h" #include "hex.h"
builtin/mailinfo.c +1 -0
@@ -2,6 +2,7 @@* Another stupid program, this one parsing the headers of an * email to figure out authorship and subject */ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "abspath.h" #include "environment.h"
builtin/merge-base.c +1 -1
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "config.h" #include "commit.h"
@@ -5,7 +6,6 @@#include "hex.h" #include "object-name.h" #include "parse-options.h" -#include "repository.h" #include "commit-reach.h" static int show_merge_base (struct commit **rev,int rev_nr,int show_all)
builtin/merge-file.c +1 -0
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "abspath.h" #include "diff.h"
builtin/merge-index.c +1 -1
@@ -1,7 +1,7 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "hex.h" #include "read-cache-ll.h" -#include "repository.h" #include "run-command.h" #include "sparse-index.h"
builtin/merge-ours.c +2 -1
@@ -7,10 +7,11 @@* * Pretend we resolved the heads, but declare our tree trumps everybody else. */ +#define USE_THE_REPOSITORY_VARIABLE #include "git-compat-util.h" #include "builtin.h" #include "diff.h" -#include "repository.h" +static const char builtin_merge_ours_usage[] ="git merge-ours <base>... -- HEAD <remote>..." ;
builtin/merge-recursive.c +1 -1
@@ -1,10 +1,10 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "advice.h" #include "gettext.h" #include "hash.h" #include "merge-recursive.h" #include "object-name.h" -#include "repository.h" static const char builtin_merge_recursive_usage[] ="git %s <base>... -- <head> <remote> ..." ;
builtin/merge-tree.c +1 -1
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "tree-walk.h" #include "xdiff-interface.h"
@@ -10,7 +11,6 @@#include "object-name.h" #include "object-store-ll.h" #include "parse-options.h" -#include "repository.h" #include "blob.h" #include "merge-blobs.h" #include "quote.h"
builtin/merge.c +2 -1
@@ -5,8 +5,9 @@* * Based on git-merge.sh by Junio C Hamano. */ - +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" +#include "abspath.h" #include "advice.h" #include "config.h"
builtin/mktag.c +1 -0
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "gettext.h" #include "hex.h"
builtin/mktree.c +1 -0
@@ -3,6 +3,7 @@* * Copyright (c) Junio C Hamano, 2006, 2009 */ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "gettext.h" #include "hex.h"
builtin/multi-pack-index.c +1 -0
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "abspath.h" #include "config.h"
builtin/mv.c +2 -1
@@ -3,6 +3,7 @@* * Copyright (C) 2006 Johannes Schindelin */ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "abspath.h"
@@ -18,7 +19,7 @@#include "string-list.h" #include "parse-options.h" #include "read-cache-ll.h" -#include "repository.h" +#include "setup.h" #include "strvec.h" #include "submodule.h"
builtin/name-rev.c +1 -1
@@ -1,8 +1,8 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "environment.h" #include "gettext.h" #include "hex.h" -#include "repository.h" #include "config.h" #include "commit.h" #include "tag.h"
builtin/notes.c +2 -2
@@ -6,7 +6,7 @@* Based on git-notes.sh by Johannes Schindelin, * and builtin/tag.c by Kristian Høgsberg and Carlos Rica. */ - +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "config.h" #include "editor.h"
@@ -17,7 +17,7 @@#include "object-name.h" #include "object-store-ll.h" #include "path.h" -#include "repository.h" +#include "pretty.h" #include "refs.h" #include "exec-cmd.h"
builtin/pack-objects.c +1 -1
@@ -1,8 +1,8 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "environment.h" #include "gettext.h" #include "hex.h" -#include "repository.h" #include "config.h" #include "attr.h" #include "object.h"
builtin/pack-redundant.c +2 -1
@@ -5,11 +5,12 @@* This file is licensed under the GPL v2. * */ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "gettext.h" #include "hex.h" -#include "repository.h" +#include "packfile.h" #include "object-store-ll.h"
builtin/pack-refs.c +1 -1
@@ -1,9 +1,9 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "config.h" #include "gettext.h" #include "parse-options.h" #include "refs.h" -#include "repository.h" #include "revision.h" static char const *const pack_refs_usage[] = {
builtin/patch-id.c +1 -0
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "config.h" #include "diff.h"
builtin/prune.c +1 -0
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "commit.h" #include "diff.h"
builtin/pull.c +1 -0
@@ -6,6 +6,7 @@* Fetch one or more remote refs and merge it/them into the current HEAD. */ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "advice.h" #include "config.h"
builtin/push.c +1 -1
@@ -1,6 +1,7 @@/* * "git push" */ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "advice.h" #include "branch.h"
@@ -13,7 +14,6 @@#include "transport.h" #include "parse-options.h" #include "pkt-line.h" -#include "repository.h" #include "submodule.h" #include "submodule-config.h" #include "send-pack.h"
builtin/range-diff.c +2 -1
@@ -1,10 +1,11 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "gettext.h" #include "object-name.h" #include "parse-options.h" #include "range-diff.h" #include "config.h" -#include "repository.h" +static const char *const builtin_range_diff_usage[] = {N_ ("git range-diff [<options>] <old-base>..<old-tip> <new-base>..<new-tip>" ),
builtin/read-tree.c +1 -2
@@ -3,7 +3,7 @@* * Copyright (C) Linus Torvalds, 2005 */ - +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "config.h" #include "gettext.h"
@@ -16,7 +16,6 @@#include "cache-tree.h" #include "unpack-trees.h" #include "parse-options.h" -#include "repository.h" #include "resolve-undo.h" #include "setup.h" #include "sparse-index.h"
builtin/rebase.c +2 -1
@@ -3,8 +3,9 @@* * Copyright (c) 2018 Pratik Karki */ - +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" +#include "abspath.h" #include "environment.h" #include "gettext.h"
builtin/receive-pack.c +2 -1
@@ -1,6 +1,7 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "abspath.h" -#include "repository.h" +#include "config.h" #include "environment.h" #include "gettext.h"
builtin/reflog.c +1 -1
@@ -1,7 +1,7 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "config.h" #include "gettext.h" -#include "repository.h" #include "revision.h" #include "reachable.h" #include "wildmatch.h"
builtin/refs.c +1 -1
@@ -1,9 +1,9 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "config.h" #include "fsck.h" #include "parse-options.h" #include "refs.h" -#include "repository.h" #include "strbuf.h" #define REFS_MIGRATE_USAGE \
builtin/remote.c +1 -0
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "config.h" #include "gettext.h"
builtin/repack.c +1 -0
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "config.h" #include "dir.h"
builtin/replace.c +1 -2
@@ -7,7 +7,7 @@* and Carlos Rica <[email protected]> that was itself based on * git-tag.sh and mktag.c by Linus Torvalds. */ - +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "config.h" #include "editor.h"
@@ -22,7 +22,6 @@#include "object-name.h" #include "object-store-ll.h" #include "replace-object.h" -#include "repository.h" #include "tag.h" #include "wildmatch.h"
builtin/replay.c +1 -0
@@ -4,6 +4,7 @@#include "git-compat-util.h" +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "environment.h" #include "hex.h"
builtin/rerere.c +2 -1
@@ -1,8 +1,9 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "config.h" #include "gettext.h" #include "parse-options.h" -#include "repository.h" +#include "string-list.h" #include "rerere.h" #include "xdiff/xdiff.h"
builtin/reset.c +1 -1
@@ -7,7 +7,7 @@* * Copyright (c) 2005, 2006 Linus Torvalds and Junio C Hamano */ - +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "advice.h" #include "config.h"
builtin/rev-list.c +1 -0
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "config.h" #include "commit.h"
builtin/rev-parse.c +2 -1
@@ -3,8 +3,9 @@* * Copyright (C) Linus Torvalds, 2005 */ - +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" +#include "abspath.h" #include "config.h" #include "commit.h"
builtin/revert.c +1 -1
@@ -1,9 +1,9 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "git-compat-util.h" #include "builtin.h" #include "parse-options.h" #include "diff.h" #include "gettext.h" -#include "repository.h" #include "revision.h" #include "rerere.h" #include "sequencer.h"
builtin/rm.c +2 -2
@@ -3,7 +3,7 @@* * Copyright (C) Linus Torvalds 2006 */ - +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "advice.h" #include "config.h"
@@ -15,7 +15,7 @@#include "object-name.h" #include "parse-options.h" #include "read-cache.h" -#include "repository.h" +#include "string-list.h" #include "setup.h" #include "sparse-index.h"
builtin/send-pack.c +1 -0
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "config.h" #include "hex.h"
builtin/shortlog.c +1 -1
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "config.h" #include "commit.h"
@@ -5,7 +6,6 @@#include "environment.h" #include "gettext.h" #include "string-list.h" -#include "repository.h" #include "revision.h" #include "utf8.h" #include "mailmap.h"
builtin/show-branch.c +2 -1
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "config.h" #include "environment.h"
@@ -10,7 +11,7 @@#include "strvec.h" #include "object-name.h" #include "parse-options.h" -#include "repository.h" +#include "dir.h" #include "commit-slab.h" #include "date.h"
builtin/show-index.c +1 -1
@@ -1,10 +1,10 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "gettext.h" #include "hash.h" #include "hex.h" #include "pack.h" #include "parse-options.h" -#include "repository.h" static const char *const show_index_usage[] = {"git show-index [--object-format=<hash-algorithm>]" ,
builtin/show-ref.c +1 -0
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "config.h" #include "gettext.h"
builtin/sparse-checkout.c +1 -1
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "config.h" #include "dir.h"
@@ -7,7 +8,6 @@#include "object-name.h" #include "parse-options.h" #include "pathspec.h" -#include "repository.h" #include "strbuf.h" #include "string-list.h" #include "lockfile.h"
builtin/stash.c +1 -0
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "abspath.h" #include "config.h"
builtin/stripspace.c +1 -0
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "config.h" #include "environment.h"
builtin/submodule--helper.c +2 -1
@@ -1,9 +1,10 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "abspath.h" #include "environment.h" #include "gettext.h" #include "hex.h" -#include "repository.h" +#include "config.h" #include "parse-options.h" #include "quote.h"
builtin/symbolic-ref.c +1 -0
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "config.h" #include "gettext.h"
builtin/tag.c +1 -1
@@ -5,7 +5,7 @@* Carlos Rica <[email protected]> * Based on git-tag.sh and mktag.c by Linus Torvalds. */ - +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "advice.h" #include "config.h"
builtin/unpack-file.c +1 -0
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "config.h" #include "hex.h"
builtin/unpack-objects.c +1 -0
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "bulk-checkin.h" #include "config.h"
builtin/update-index.c +1 -2
@@ -3,7 +3,7 @@* * Copyright (C) Linus Torvalds, 2005 */ - +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "bulk-checkin.h" #include "config.h"
@@ -22,7 +22,6 @@#include "pathspec.h" #include "dir.h" #include "read-cache.h" -#include "repository.h" #include "setup.h" #include "sparse-index.h" #include "split-index.h"
builtin/update-ref.c +1 -1
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "config.h" #include "gettext.h"
@@ -6,7 +7,6 @@#include "object-name.h" #include "parse-options.h" #include "quote.h" -#include "repository.h" static const char *const git_update_ref_usage[] = {N_ ("git update-ref [<options>] -d <refname> [<old-oid>]" ),
builtin/update-server-info.c +1 -0
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "config.h" #include "gettext.h"
builtin/upload-archive.c +1 -1
@@ -1,12 +1,12 @@/* * Copyright (c) 2006 Franck Bui-Huu */ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "archive.h" #include "path.h" #include "pkt-line.h" #include "sideband.h" -#include "repository.h" #include "run-command.h" #include "strvec.h"
builtin/var.c +2 -0
@@ -3,7 +3,9 @@* * Copyright (C) Eric Biederman, 2005 */ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" +#include "attr.h" #include "config.h" #include "editor.h"
builtin/verify-commit.c +1 -1
@@ -5,11 +5,11 @@* * Based on git-verify-tag */ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "config.h" #include "gettext.h" #include "object-name.h" -#include "repository.h" #include "commit.h" #include "parse-options.h" #include "gpg-interface.h"
builtin/verify-pack.c +1 -0
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "config.h" #include "gettext.h"
builtin/verify-tag.c +1 -0
@@ -5,6 +5,7 @@* * Based on git-verify-tag.sh */ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "config.h" #include "gettext.h"
builtin/worktree.c +1 -1
@@ -1,3 +1,4 @@ +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "abspath.h" #include "advice.h"
@@ -17,7 +18,6 @@#include "read-cache-ll.h" #include "refs.h" #include "remote.h" -#include "repository.h" #include "run-command.h" #include "hook.h" #include "sigchain.h"
builtin/write-tree.c +1 -2
@@ -3,7 +3,7 @@* * Copyright (C) Linus Torvalds, 2005 */ - +#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "config.h" #include "environment.h"
@@ -12,7 +12,6 @@#include "tree.h" #include "cache-tree.h" #include "parse-options.h" -#include "repository.h" static const char *const write_tree_usage[] = {N_ ("git write-tree [--missing-ok] [--prefix=<prefix>/]" ),
Signature · 1 line
gitgitgadget
Re: [PATCH v2 2/3] builtin: remove USE_THE_REPOSITORY_VARIABLE from builtin.h
Quoted 8 lines · John Cai via GitGitGadget
From: John Cai <[email protected]>
Instead of including
USE_THE_REPOSITORY_VARIABLEby default on every builtin, remove it frombuiltin.hand add it to all the builtins that referencethe_repository.Also, remove the include statement for
repository.hsince it gets brought in throughbuiltin.h.
Can we have _all_ builtin/*.c files that include "builtin.h" to gain "#define USE_THE_REPOSITORY_VARIABLE" in this step to make it more mechanical? That way we do not have to go through this large patch manually to review it.
Then another patch can immediately remove the "#define" (and doing nothing else) from some of the files in builtin/*.c with its commit message saying "These do not need implicit or explicit accesses to the_repository as-is", which would make it trivially reviewable, because such a claim in its commit message can trivially be verified by simply compiling these files.
After that, manual work to remove implicit or explicit accesses to the_repository, which would remove the "#define" that becomes unnecessary, one-patch-per-file can build on top. Each of them would be reviewable again.
Quoted 2 lines
The next step will be to migrate each builtin
from having to usethe_repository.
I am not sure what this "to migrate" refers to. Is it referring exactly the same thing as what I called "manual work" above?
Thanks.
Re: [PATCH v2 2/3] builtin: remove USE_THE_REPOSITORY_VARIABLE from builtin.h
Quoted 24 lines · Junio C Hamano
Quoted 8 lines · John Cai via GitGitGadget
From: John Cai <[email protected]>
Instead of including
USE_THE_REPOSITORY_VARIABLEby default on every builtin, remove it frombuiltin.hand add it to all the builtins that referencethe_repository.Also, remove the include statement for
repository.hsince it gets brought in throughbuiltin.h.Can we have _all_ builtin/*.c files that include "
builtin.h" to gain "#defineUSE_THE_REPOSITORY_VARIABLE" in this step to make it more mechanical? That way we do not have to go through this large patch manually to review it.Then another patch can immediately remove the "#define" (and doing nothing else) from some of the files in builtin/*.c with its commit message saying "These do not need implicit or explicit accesses to
the_repositoryas-is", which would make it trivially reviewable, because such a claim in its commit message can trivially be verified by simply compiling these files.
Quoted 4 lines
After that, manual work to remove implicit or explicit accesses to
the_repository, which would remove the "#define" that becomes unnecessary, one-patch-per-file can build on top. Each of them would be reviewable again.
Okay I see what you mean. Yeah I can do that.
Quoted 6 lines
Quoted 3 lines
The next step will be to migrate each builtin
from having to usethe_repository.I am not sure what this "to migrate" refers to. Is it referring exactly the same thing as what I called "manual work" above?
Yes, by migrate I meant the process of removing #define and passing in the repository
argument through to replace the_repository global.
Quoted 1 line
Thanks.
PATCH v2 3/3 add: pass in repo variable instead of global the_repository
In reply to John Cai via GitGitGadgetFrom: John Cai <[email protected]>
With the repository variable available in the builtin function as an argument, pass this down into helper functions instead of using the global the_repository.
--- builtin/add.c | 116 +++++++++++++++++++++++++---------------------- builtin/commit.c | 2 +- commit.h | 5 +- 3 files changed, 68 insertions(+), 55 deletions(-)
builtin/add.c +63 -53
@@ -3,7 +3,6 @@* * Copyright (C) 2006 Linus Torvalds */ -#define USE_THE_REPOSITORY_VARIABLE #include "builtin.h" #include "advice.h" #include "config.h"
@@ -35,24 +34,27 @@ static int pathspec_file_nul;static int include_sparse;static const char *pathspec_from_file; -static int chmod_pathspec (struct pathspec *pathspec,char flip,int show_only) +static int chmod_pathspec (struct repository *repo, +struct pathspec *pathspec, +char flip, +int show_only) {int i, ret =0 ; -for (i =0 ; i < the_repository->index->cache_nr; i++) { -struct cache_entry *ce = the_repository->index->cache[i]; +for (i =0 ; i < repo->index->cache_nr; i++) { +struct cache_entry *ce = repo->index->cache[i];int err;if (!include_sparse && (ce_skip_worktree (ce) || - !path_in_sparse_checkout (ce->name, the_repository->index))) + !path_in_sparse_checkout (ce->name, repo->index)))continue ; -if (pathspec && !ce_path_match (the_repository->index, ce, pathspec,NULL )) +if (pathspec && !ce_path_match (repo->index, ce, pathspec,NULL ))continue ;if (!show_only) - err =chmod_index_entry (the_repository->index, ce, flip); + err =chmod_index_entry (repo->index, ce, flip);else err =S_ISREG (ce->ce_mode) ?0 :-1 ;
@@ -63,31 +65,36 @@ static int chmod_pathspec(struct pathspec *pathspec, char flip, int show_only)return ret; } -static int renormalize_tracked_files (const struct pathspec *pathspec,int flags) +static int renormalize_tracked_files (struct repository *repo, +const struct pathspec *pathspec, +int flags) {int i, retval =0 ; -for (i =0 ; i < the_repository->index->cache_nr; i++) { -struct cache_entry *ce = the_repository->index->cache[i]; +for (i =0 ; i < repo->index->cache_nr; i++) { +struct cache_entry *ce = repo->index->cache[i];if (!include_sparse && (ce_skip_worktree (ce) || - !path_in_sparse_checkout (ce->name, the_repository->index))) + !path_in_sparse_checkout (ce->name, repo->index)))continue ;if (ce_stage (ce))continue ;/* do not touch unmerged paths */ if (!S_ISREG (ce->ce_mode) && !S_ISLNK (ce->ce_mode))continue ;/* do not touch non blobs */ -if (pathspec && !ce_path_match (the_repository->index, ce, pathspec,NULL )) +if (pathspec && !ce_path_match (repo->index, ce, pathspec,NULL ))continue ; - retval |=add_file_to_index (the_repository->index, ce->name, + retval |=add_file_to_index (repo->index, ce->name, flags |ADD_CACHE_RENORMALIZE ); }return retval; } -static char *prune_directory (struct dir_struct *dir,struct pathspec *pathspec,int prefix) +static char *prune_directory (struct repository *repo, +struct dir_struct *dir, +struct pathspec *pathspec, +int prefix) {char *seen;int i;
@@ -99,16 +106,16 @@ static char *prune_directory(struct dir_struct *dir, struct pathspec *pathspec, i = dir->nr;while (--i >=0 ) {struct dir_entry *entry = *src++; -if (dir_path_match (the_repository->index, entry, pathspec, prefix, seen)) +if (dir_path_match (repo->index, entry, pathspec, prefix, seen)) *dst++ = entry; } dir->nr = dst - dir->entries; -add_pathspec_matches_against_index (pathspec, the_repository->index, seen, +add_pathspec_matches_against_index (pathspec, repo->index, seen,PS_IGNORE_SKIP_WORKTREE );return seen; } -static int refresh (int verbose,const struct pathspec *pathspec) +static int refresh (struct repository *repo,int verbose,const struct pathspec *pathspec) {char *seen;int i, ret =0 ;
@@ -118,14 +125,14 @@ static int refresh(int verbose, const struct pathspec *pathspec) (verbose ?REFRESH_IN_PORCELAIN :REFRESH_QUIET ); seen =xcalloc (pathspec->nr,1 ); -refresh_index (the_repository->index, flags, pathspec, seen, +refresh_index (repo->index, flags, pathspec, seen,_ ("Unstaged changes after refreshing the index:" ));for (i =0 ; i < pathspec->nr; i++) {if (!seen[i]) {const char *path = pathspec->items[i].original;if (matches_skip_worktree (pathspec, i, &skip_worktree_seen) || - !path_in_sparse_checkout (path, the_repository->index)) { + !path_in_sparse_checkout (path, repo->index)) {string_list_append (&only_match_skip_worktree, pathspec->items[i].original); }else {
@@ -146,7 +153,10 @@ static int refresh(int verbose, const struct pathspec *pathspec)return ret; } -int interactive_add (const char **argv,const char *prefix,int patch) +int interactive_add (struct repository *repo, +const char **argv, +const char *prefix, +int patch) {struct pathspec pathspec;int ret;
@@ -158,31 +168,31 @@ int interactive_add(const char **argv, const char *prefix, int patch) prefix, argv);if (patch) - ret = !!run_add_p (the_repository,ADD_P_ADD ,NULL , &pathspec); + ret = !!run_add_p (repo,ADD_P_ADD ,NULL , &pathspec);else - ret = !!run_add_i (the_repository, &pathspec); + ret = !!run_add_i (repo, &pathspec);clear_pathspec (&pathspec);return ret; } -static int edit_patch (int argc, +static int edit_patch (struct repository *repo, +int argc,const char **argv, -const char *prefix, - struct repository *repo UNUSED) +const char *prefix) { -char *file =git_pathdup ("ADD_EDIT.patch" ); +char *file =repo_git_path (repo,"ADD_EDIT.patch" );struct child_process child =CHILD_PROCESS_INIT ;struct rev_info rev;int out;struct stat st; -git_config (git_diff_basic_config,NULL );/* no "diff" UI options */ +repo_config (repo, git_diff_basic_config,NULL ); -if (repo_read_index (the_repository) <0 ) +if (repo_read_index (repo) <0 )die (_ ("could not read the index" )); -repo_init_revisions (the_repository, &rev, prefix); +repo_init_revisions (repo, &rev, prefix); rev.diffopt.context =7 ; argc =setup_revisions (argc, argv, &rev,NULL );
@@ -320,7 +330,7 @@ static void check_embedded_repo(const char *path)strbuf_release (&name); } -static int add_files (struct dir_struct *dir,int flags) +static int add_files (struct repository *repo,struct dir_struct *dir,int flags) {int i, exit_status =0 ;struct string_list matched_sparse_paths =STRING_LIST_INIT_NODUP ;
@@ -336,12 +346,12 @@ static int add_files(struct dir_struct *dir, int flags)for (i =0 ; i < dir->nr; i++) {if (!include_sparse && - !path_in_sparse_checkout (dir->entries[i]->name, the_repository->index)) { + !path_in_sparse_checkout (dir->entries[i]->name, repo->index)) {string_list_append (&matched_sparse_paths, dir->entries[i]->name);continue ; } -if (add_file_to_index (the_repository->index, dir->entries[i]->name, flags)) { +if (add_file_to_index (repo->index, dir->entries[i]->name, flags)) {if (!ignore_add_errors)die (_ ("adding files failed" )); exit_status =1 ;
@@ -363,7 +373,7 @@ static int add_files(struct dir_struct *dir, int flags)int cmd_add (int argc,const char **argv,const char *prefix, - struct repository *repo UNUSED) +struct repository *repo) {int exit_status =0 ;struct pathspec pathspec;
@@ -375,7 +385,7 @@ int cmd_add(int argc,char *ps_matched =NULL ;struct lock_file lock_file =LOCK_INIT ; -git_config (add_config,NULL ); +repo_config (repo, add_config,NULL ); argc =parse_options (argc, argv, prefix, builtin_add_options, builtin_add_usage,PARSE_OPT_KEEP_ARGV0 );
@@ -386,13 +396,13 @@ int cmd_add(int argc,die (_ ("options '%s' and '%s' cannot be used together" ),"--dry-run" ,"--interactive/--patch" );if (pathspec_from_file)die (_ ("options '%s' and '%s' cannot be used together" ),"--pathspec-from-file" ,"--interactive/--patch" ); -exit (interactive_add (argv +1 , prefix, patch_interactive)); +exit (interactive_add (repo, argv +1 , prefix, patch_interactive)); }if (edit_interactive) {if (pathspec_from_file)die (_ ("options '%s' and '%s' cannot be used together" ),"--pathspec-from-file" ,"--edit" ); -return (edit_patch (argc, argv, prefix, the_repository)); +return (edit_patch (repo, argc, argv, prefix)); } argc--; argv++;
@@ -415,10 +425,10 @@ int cmd_add(int argc, add_new_files = !take_worktree_changes && !refresh_only && !add_renormalize; require_pathspec = !(take_worktree_changes || (0 < addremove_explicit)); -prepare_repo_settings (the_repository); - the_repository->settings.command_requires_full_index =0 ; +prepare_repo_settings (repo); + repo->settings.command_requires_full_index =0 ; -repo_hold_locked_index (the_repository, &lock_file,LOCK_DIE_ON_ERROR ); +repo_hold_locked_index (repo, &lock_file,LOCK_DIE_ON_ERROR );/* * Check the "pathspec '%s' did not match any files" block
@@ -459,11 +469,11 @@ int cmd_add(int argc, (!(addremove || take_worktree_changes) ? ADD_CACHE_IGNORE_REMOVAL : 0)); -if (repo_read_index_preload (the_repository, &pathspec,0 ) <0 ) +if (repo_read_index_preload (repo, &pathspec,0 ) <0 )die (_ ("index file corrupt" )); -die_in_unpopulated_submodule (the_repository->index, prefix); -die_path_inside_submodule (the_repository->index, &pathspec); +die_in_unpopulated_submodule (repo->index, prefix); +die_path_inside_submodule (repo->index, &pathspec);if (add_new_files) {int baselen;
@@ -475,13 +485,13 @@ int cmd_add(int argc, }/* This picks up the paths that are not tracked */ - baselen =fill_directory (&dir, the_repository->index, &pathspec); + baselen =fill_directory (&dir, repo->index, &pathspec);if (pathspec.nr) - seen =prune_directory (&dir, &pathspec, baselen); + seen =prune_directory (repo, &dir, &pathspec, baselen); }if (refresh_only) { - exit_status |=refresh (verbose, &pathspec); + exit_status |=refresh (repo, verbose, &pathspec); goto finish; }
@@ -492,7 +502,7 @@ int cmd_add(int argc,if (!seen) seen =find_pathspecs_matching_against_index (&pathspec, - the_repository->index,PS_IGNORE_SKIP_WORKTREE ); + repo->index,PS_IGNORE_SKIP_WORKTREE );/* * file_exists() assumes exact match
@@ -528,8 +538,8 @@ int cmd_add(int argc, !file_exists(path)) {if (ignore_missing) {int dtype =DT_UNKNOWN ; -if (is_excluded (&dir, the_repository->index, path, &dtype)) -dir_add_ignored (&dir, the_repository->index, +if (is_excluded (&dir, repo->index, path, &dtype)) +dir_add_ignored (&dir, repo->index, path, pathspec.items[i].len); }else die(_("pathspec '%s' did not match any files"),
@@ -552,9 +562,9 @@ int cmd_add(int argc, ps_matched =xcalloc (pathspec.nr,1 );if (add_renormalize) - exit_status |=renormalize_tracked_files (&pathspec, flags); + exit_status |=renormalize_tracked_files (repo, &pathspec, flags);else - exit_status |=add_files_to_cache (the_repository, prefix, + exit_status |=add_files_to_cache (repo, prefix, &pathspec, ps_matched, include_sparse, flags);
@@ -563,14 +573,14 @@ int cmd_add(int argc,exit (128 );if (add_new_files) - exit_status |=add_files (&dir, flags); + exit_status |=add_files (repo, &dir, flags);if (chmod_arg && pathspec.nr) - exit_status |=chmod_pathspec (&pathspec, chmod_arg[0 ], show_only); + exit_status |=chmod_pathspec (repo, &pathspec, chmod_arg[0 ], show_only);end_odb_transaction (); finish: -if (write_locked_index (the_repository->index, &lock_file, +if (write_locked_index (repo->index, &lock_file,COMMIT_LOCK |SKIP_IF_UNCHANGED ))die (_ ("unable to write new index file" ));
builtin/commit.c +1 -1
@@ -395,7 +395,7 @@ static const char *prepare_index(const char **argv, const char *prefix, old_index_env =xstrdup_or_null (getenv (INDEX_ENVIRONMENT ));setenv (INDEX_ENVIRONMENT , the_repository->index_file,1 ); -if (interactive_add (argv, prefix, patch_interactive) !=0 ) +if (interactive_add (the_repository, argv, prefix, patch_interactive) !=0 )die (_ ("interactive add failed" )); the_repository->index_file = old_repo_index_file;
commit.h +4 -1
@@ -253,7 +253,10 @@ struct oid_array;struct ref ;int for_each_commit_graft (each_commit_graft_fn ,void *); -int interactive_add (const char **argv,const char *prefix,int patch); +int interactive_add (struct repository *repo, +const char **argv, +const char *prefix, +int patch);struct commit_extra_header {struct commit_extra_header *next;
Signature · 1 line
gitgitgadget
Re: [PATCH v2 3/3] add: pass in repo variable instead of global the_repository
Quoted 5 lines · John Cai via GitGitGadget
From: John Cai <[email protected]>
With the repository variable available in the builtin function as an argument, pass this down into helper functions instead of using the global
the_repository.
Nicely done.
v3 cover Add repository parameter to builtins
In reply to John Cai via GitGitGadgetAs part of the effort to remove global state of the_repository, add a repository parameter to builtins so that a repository variable can be passed down. The patches are ordered as follows:
1. Changes the signature of builtins and passes the_repository down in git.c to be called by all builtins.
2. Remove USE_THE_REPOSITORY_VARIABLE from builtin.h, and instead add it to each individual builtin. This paves the way for a migration process whereby each builtin can be migrated away from using the_repository.
3. Remove USE_THE_REPOSITORY_VARIABLE from bulitins that do not use the_repository.
4. As an example, migrate builtin/add.c to get rid of the_repository by instead passing the repository argument down into helper functions.
Changes since V2:
* Add USE_THE_REPOSITORY_VARIABLE to all builtins under builtin/ that contain builtin.h, and subsequently add a patch that removes it from builtins that do not use the_repository.
* removed random generated file
Changes since V1:
* Removed USE_THE_REPOSITORY_VARIABLE from add.c
* removed changes that conflict with existing topics in seen
* Fixed overly long lines formatting issues
John Cai (4):
builtin: add a repository parameter for builtin functions
builtin: remove USE_THE_REPOSITORY_VARIABLE from builtin.h
builtin: remove USE_THE_REPOSITORY for those without the_repository
add: pass in repo variable instead of global the_repository
builtin.h | 285 ++++++++++++++--------------- builtin/add.c | 119 ++++++------ builtin/am.c | 7 +- builtin/annotate.c | 9 +- builtin/apply.c | 7 +- builtin/archive.c | 7 +- builtin/bisect.c | 6 +- builtin/blame.c | 8 +- builtin/branch.c | 7 +- builtin/bugreport.c | 6 +- builtin/bundle.c | 7 +- builtin/cat-file.c | 9 +- builtin/check-attr.c | 7 +- builtin/check-ignore.c | 7 +- builtin/check-mailmap.c | 6 +- builtin/check-ref-format.c | 6 +- builtin/checkout--worker.c | 6 +- builtin/checkout-index.c | 8 +- builtin/checkout.c | 16 +- builtin/clean.c | 8 +- builtin/clone.c | 8 +- builtin/column.c | 6 +- builtin/commit-graph.c | 7 +- builtin/commit-tree.c | 8 +- builtin/commit.c | 14 +- builtin/config.c | 7 +- builtin/count-objects.c | 8 +- builtin/credential-cache--daemon.c | 11 +- builtin/credential-cache.c | 5 +- builtin/credential-store.c | 6 +- builtin/credential.c | 7 +- builtin/describe.c | 8 +- builtin/diagnose.c | 5 +- builtin/diff-files.c | 7 +- builtin/diff-index.c | 7 +- builtin/diff-tree.c | 7 +- builtin/diff.c | 7 +- builtin/difftool.c | 8 +- builtin/fast-export.c | 6 +- builtin/fast-import.c | 7 +- builtin/fetch-pack.c | 6 +- builtin/fetch.c | 7 +- builtin/fmt-merge-msg.c | 6 +- builtin/for-each-ref.c | 6 +- builtin/for-each-repo.c | 7 +- builtin/fsck.c | 7 +- builtin/fsmonitor--daemon.c | 10 +- builtin/gc.c | 13 +- builtin/get-tar-commit-id.c | 5 +- builtin/grep.c | 7 +- builtin/hash-object.c | 6 +- builtin/help.c | 7 +- builtin/hook.c | 6 +- builtin/index-pack.c | 6 +- builtin/init-db.c | 7 +- builtin/interpret-trailers.c | 7 +- builtin/log.c | 33 +++- builtin/ls-files.c | 7 +- builtin/ls-remote.c | 6 +- builtin/ls-tree.c | 7 +- builtin/mailinfo.c | 6 +- builtin/mailsplit.c | 5 +- builtin/merge-base.c | 7 +- builtin/merge-file.c | 6 +- builtin/merge-index.c | 7 +- builtin/merge-ours.c | 8 +- builtin/merge-recursive.c | 7 +- builtin/merge-tree.c | 7 +- builtin/merge.c | 12 +- builtin/mktag.c | 6 +- builtin/mktree.c | 7 +- builtin/multi-pack-index.c | 7 +- builtin/mv.c | 8 +- builtin/name-rev.c | 7 +- builtin/notes.c | 9 +- builtin/pack-objects.c | 7 +- builtin/pack-redundant.c | 10 +- builtin/pack-refs.c | 7 +- builtin/patch-id.c | 6 +- builtin/prune-packed.c | 5 +- builtin/prune.c | 6 +- builtin/pull.c | 6 +- builtin/push.c | 7 +- builtin/range-diff.c | 8 +- builtin/read-tree.c | 8 +- builtin/rebase.c | 8 +- builtin/receive-pack.c | 8 +- builtin/reflog.c | 11 +- builtin/refs.c | 7 +- builtin/remote-ext.c | 5 +- builtin/remote-fd.c | 5 +- builtin/remote.c | 6 +- builtin/repack.c | 6 +- builtin/replace.c | 8 +- builtin/replay.c | 6 +- builtin/rerere.c | 8 +- builtin/reset.c | 7 +- builtin/rev-list.c | 6 +- builtin/rev-parse.c | 8 +- builtin/revert.c | 12 +- builtin/rm.c | 9 +- builtin/send-pack.c | 6 +- builtin/shortlog.c | 7 +- builtin/show-branch.c | 8 +- builtin/show-index.c | 7 +- builtin/show-ref.c | 6 +- builtin/sparse-checkout.c | 7 +- builtin/stash.c | 6 +- builtin/stripspace.c | 6 +- builtin/submodule--helper.c | 8 +- builtin/symbolic-ref.c | 6 +- builtin/tag.c | 7 +- builtin/unpack-file.c | 6 +- builtin/unpack-objects.c | 6 +- builtin/update-index.c | 8 +- builtin/update-ref.c | 7 +- builtin/update-server-info.c | 6 +- builtin/upload-archive.c | 12 +- builtin/upload-pack.c | 5 +- builtin/var.c | 7 +- builtin/verify-commit.c | 7 +- builtin/verify-pack.c | 6 +- builtin/verify-tag.c | 6 +- builtin/worktree.c | 7 +- builtin/write-tree.c | 8 +- commit.h | 5 +- git.c | 12 +- help.c | 3 +- 128 files changed, 903 insertions(+), 437 deletions(-)
base-commit: 57974d46a4d5a079471c4f7eaa5933b1922299e4
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-git-1778%2Fjohn-cai%2Fjc%2Fadd-the-repository-to-builtin-signature-v3
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-git-1778/john-cai/jc/add-the-repository-to-builtin-signature-v3
Pull-Request: https://github.com/git/git/pull/1778
Range-diff vs v2:
1: 9aaf9662544 ! 1: 02a4466ecc9 builtin: add a repository parameter for builtin functions
@@ builtin/fetch-pack.c: static void add_sought_entry(struct ref ***sought, int *nr
+ struct repository *repo UNUSED)
{
int i, ret;
- struct ref *ref = NULL;
+ struct ref *fetched_refs = NULL, *remote_refs = NULL;
## builtin/fetch.c ##
@@ builtin/fetch.c: static int fetch_one(struct remote *remote, int argc, const char **argv,
@@ help.c: void get_version_info(struct strbuf *buf, int show_build_options)
{
struct strbuf buf = STRBUF_INIT;
int build_options = 0;
-
- ## stkOs5Qh (new) ##
- Binary files /dev/null and stkOs5Qh differ
2: 434c8babbb1 ! 2: 7becd3751fc builtin: remove USE_THE_REPOSITORY_VARIABLE from builtin.h
@@ builtin/check-mailmap.c
#include "config.h"
#include "gettext.h"
+ ## builtin/check-ref-format.c ##
+@@
+ /*
+ * GIT - The information manager from hell
+ */
+-
++#define USE_THE_REPOSITORY_VARIABLE
+ #include "builtin.h"
+ #include "refs.h"
+ #include "setup.h"
+
## builtin/checkout--worker.c ##
@@
+#define USE_THE_REPOSITORY_VARIABLE
@@ builtin/credential-cache--daemon.c
#include "abspath.h"
#include "gettext.h"
+ ## builtin/credential-cache.c ##
+@@
++#define USE_THE_REPOSITORY_VARIABLE
+ #include "builtin.h"
+ #include "credential.h"
+ #include "gettext.h"
+
## builtin/credential-store.c ##
@@
+#define USE_THE_REPOSITORY_VARIABLE
@@ builtin/describe.c
#include "config.h"
#include "environment.h"
+ ## builtin/diagnose.c ##
+@@
++#define USE_THE_REPOSITORY_VARIABLE
+ #include "builtin.h"
+ #include "abspath.h"
+ #include "gettext.h"
+
## builtin/diff-files.c ##
@@
*
@@ builtin/gc.c
#include "tempfile.h"
#include "lockfile.h"
+ ## builtin/get-tar-commit-id.c ##
+@@
+ /*
+ * Copyright (c) 2005, 2006 Rene Scharfe
+ */
++#define USE_THE_REPOSITORY_VARIABLE
+ #include "builtin.h"
+ #include "commit.h"
+ #include "tar.h"
+
## builtin/grep.c ##
@@
*
@@ builtin/mailinfo.c
#include "abspath.h"
#include "environment.h"
+ ## builtin/mailsplit.c ##
+@@
+ * It just splits a mbox into a list of files: "0001" "0002" ..
+ * so you can process them further from there.
+ */
++#define USE_THE_REPOSITORY_VARIABLE
+ #include "builtin.h"
+ #include "gettext.h"
+ #include "string-list.h"
+
## builtin/merge-base.c ##
@@
+#define USE_THE_REPOSITORY_VARIABLE
@@ builtin/patch-id.c
#include "config.h"
#include "diff.h"
+ ## builtin/prune-packed.c ##
+@@
++#define USE_THE_REPOSITORY_VARIABLE
+ #include "builtin.h"
+ #include "gettext.h"
+ #include "parse-options.h"
+
## builtin/prune.c ##
@@
+#define USE_THE_REPOSITORY_VARIABLE
@@ builtin/refs.c
#define REFS_MIGRATE_USAGE \
+ ## builtin/remote-ext.c ##
+@@
++#define USE_THE_REPOSITORY_VARIABLE
+ #include "builtin.h"
+ #include "transport.h"
+ #include "run-command.h"
+
+ ## builtin/remote-fd.c ##
+@@
++#define USE_THE_REPOSITORY_VARIABLE
+ #include "builtin.h"
+ #include "transport.h"
+
+
## builtin/remote.c ##
@@
+#define USE_THE_REPOSITORY_VARIABLE
@@ builtin/upload-archive.c
#include "strvec.h"
+ ## builtin/upload-pack.c ##
+@@
++#define USE_THE_REPOSITORY_VARIABLE
+ #include "builtin.h"
+ #include "exec-cmd.h"
+ #include "gettext.h"
+
## builtin/var.c ##
@@
*
-: ----------- > 3: 004283a1e5b builtin: remove USE_THE_REPOSITORY for those without the_repository
3: 6956d3fe897 = 4: d32f8ade1e0 add: pass in repo variable instead of global the_repositorySignature · 1 line
gitgitgadget