96e7225b31
In order to enable hooks to be run as an external process, by a standalone Git command, or by tools which wrap Git, provide an external means to run all configured hook commands for a given hook event. Most of our hooks require more complex functionality than this, but let's start with the bare minimum required to support our simplest hooks. In terms of implementation the usage_with_options() and "goto usage" pattern here mirrors that of builtin/{commit-graph,multi-pack-index}.c. Some of the implementation here, such as a function being named run_hooks_opt() when it's tasked with running one hook, to using the run_processes_parallel_tr2() API to run with jobs=1 is somewhere between a bit odd and and an overkill for the current features of this "hook run" command and the hook.[ch] API. This code will eventually be able to run multiple hooks declared in config in parallel, by starting out with these names and APIs we reduce the later churn of renaming functions, switching from the run_command() to run_processes_parallel_tr2() API etc. Signed-off-by: Emily Shaffer <emilyshaffer@google.com> Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com> Acked-by: Emily Shaffer <emilyshaffer@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
218 lines
12 KiB
Plaintext
218 lines
12 KiB
Plaintext
# Command classification list
|
|
# ---------------------------
|
|
# All supported commands, builtin or external, must be described in
|
|
# here. This info is used to list commands in various places. Each
|
|
# command is on one line followed by one or more attributes.
|
|
#
|
|
# The first attribute group is mandatory and indicates the command
|
|
# type. This group includes:
|
|
#
|
|
# mainporcelain
|
|
# ancillarymanipulators
|
|
# ancillaryinterrogators
|
|
# foreignscminterface
|
|
# plumbingmanipulators
|
|
# plumbinginterrogators
|
|
# synchingrepositories
|
|
# synchelpers
|
|
# purehelpers
|
|
#
|
|
# The type names are self explanatory. But if you want to see what
|
|
# command belongs to what group to get a better picture, have a look
|
|
# at "git" man page, "GIT COMMANDS" section.
|
|
#
|
|
# Commands of type mainporcelain can also optionally have one of these
|
|
# attributes:
|
|
#
|
|
# init
|
|
# worktree
|
|
# info
|
|
# history
|
|
# remote
|
|
#
|
|
# These commands are considered "common" and will show up in "git
|
|
# help" output in groups. Uncommon porcelain commands must not
|
|
# specify any of these attributes.
|
|
#
|
|
# "complete" attribute is used to mark that the command should be
|
|
# completable by git-completion.bash. Note that by default,
|
|
# mainporcelain commands are completable so you don't need this
|
|
# attribute.
|
|
#
|
|
# As part of the Git man page list, the man(5/7) guides are also
|
|
# specified here, which can only have "guide" attribute and nothing
|
|
# else.
|
|
#
|
|
### command list (do not change this line)
|
|
# command name category [category] [category]
|
|
git-add mainporcelain worktree
|
|
git-am mainporcelain
|
|
git-annotate ancillaryinterrogators
|
|
git-apply plumbingmanipulators complete
|
|
git-archimport foreignscminterface
|
|
git-archive mainporcelain
|
|
git-bisect mainporcelain info
|
|
git-blame ancillaryinterrogators complete
|
|
git-branch mainporcelain history
|
|
git-bugreport ancillaryinterrogators
|
|
git-bundle mainporcelain
|
|
git-cat-file plumbinginterrogators
|
|
git-check-attr purehelpers
|
|
git-check-ignore purehelpers
|
|
git-check-mailmap purehelpers
|
|
git-check-ref-format purehelpers
|
|
git-checkout mainporcelain
|
|
git-checkout-index plumbingmanipulators
|
|
git-cherry plumbinginterrogators complete
|
|
git-cherry-pick mainporcelain
|
|
git-citool mainporcelain
|
|
git-clean mainporcelain
|
|
git-clone mainporcelain init
|
|
git-column purehelpers
|
|
git-commit mainporcelain history
|
|
git-commit-graph plumbingmanipulators
|
|
git-commit-tree plumbingmanipulators
|
|
git-config ancillarymanipulators complete
|
|
git-count-objects ancillaryinterrogators
|
|
git-credential purehelpers
|
|
git-credential-cache purehelpers
|
|
git-credential-store purehelpers
|
|
git-cvsexportcommit foreignscminterface
|
|
git-cvsimport foreignscminterface
|
|
git-cvsserver foreignscminterface
|
|
git-daemon synchingrepositories
|
|
git-describe mainporcelain
|
|
git-diff mainporcelain info
|
|
git-diff-files plumbinginterrogators
|
|
git-diff-index plumbinginterrogators
|
|
git-diff-tree plumbinginterrogators
|
|
git-difftool ancillaryinterrogators complete
|
|
git-fast-export ancillarymanipulators
|
|
git-fast-import ancillarymanipulators
|
|
git-fetch mainporcelain remote
|
|
git-fetch-pack synchingrepositories
|
|
git-filter-branch ancillarymanipulators
|
|
git-fmt-merge-msg purehelpers
|
|
git-for-each-ref plumbinginterrogators
|
|
git-for-each-repo plumbinginterrogators
|
|
git-format-patch mainporcelain
|
|
git-fsck ancillaryinterrogators complete
|
|
git-gc mainporcelain
|
|
git-get-tar-commit-id plumbinginterrogators
|
|
git-grep mainporcelain info
|
|
git-gui mainporcelain
|
|
git-hash-object plumbingmanipulators
|
|
git-help ancillaryinterrogators complete
|
|
git-hook purehelpers
|
|
git-http-backend synchingrepositories
|
|
git-http-fetch synchelpers
|
|
git-http-push synchelpers
|
|
git-imap-send foreignscminterface
|
|
git-index-pack plumbingmanipulators
|
|
git-init mainporcelain init
|
|
git-instaweb ancillaryinterrogators complete
|
|
git-interpret-trailers purehelpers
|
|
git-log mainporcelain info
|
|
git-ls-files plumbinginterrogators
|
|
git-ls-remote plumbinginterrogators
|
|
git-ls-tree plumbinginterrogators
|
|
git-mailinfo purehelpers
|
|
git-mailsplit purehelpers
|
|
git-maintenance mainporcelain
|
|
git-merge mainporcelain history
|
|
git-merge-base plumbinginterrogators
|
|
git-merge-file plumbingmanipulators
|
|
git-merge-index plumbingmanipulators
|
|
git-merge-one-file purehelpers
|
|
git-merge-tree ancillaryinterrogators
|
|
git-mergetool ancillarymanipulators complete
|
|
git-mktag plumbingmanipulators
|
|
git-mktree plumbingmanipulators
|
|
git-multi-pack-index plumbingmanipulators
|
|
git-mv mainporcelain worktree
|
|
git-name-rev plumbinginterrogators
|
|
git-notes mainporcelain
|
|
git-p4 foreignscminterface
|
|
git-pack-objects plumbingmanipulators
|
|
git-pack-redundant plumbinginterrogators
|
|
git-pack-refs ancillarymanipulators
|
|
git-patch-id purehelpers
|
|
git-prune ancillarymanipulators complete
|
|
git-prune-packed plumbingmanipulators
|
|
git-pull mainporcelain remote
|
|
git-push mainporcelain remote
|
|
git-quiltimport foreignscminterface
|
|
git-range-diff mainporcelain
|
|
git-read-tree plumbingmanipulators
|
|
git-rebase mainporcelain history
|
|
git-receive-pack synchelpers
|
|
git-reflog ancillarymanipulators complete
|
|
git-remote ancillarymanipulators complete
|
|
git-repack ancillarymanipulators complete
|
|
git-replace ancillarymanipulators complete
|
|
git-request-pull foreignscminterface complete
|
|
git-rerere ancillaryinterrogators
|
|
git-reset mainporcelain history
|
|
git-restore mainporcelain worktree
|
|
git-rev-list plumbinginterrogators
|
|
git-rev-parse plumbinginterrogators
|
|
git-revert mainporcelain
|
|
git-rm mainporcelain worktree
|
|
git-send-email foreignscminterface complete
|
|
git-send-pack synchingrepositories
|
|
git-sh-i18n purehelpers
|
|
git-sh-setup purehelpers
|
|
git-shell synchelpers
|
|
git-shortlog mainporcelain
|
|
git-show mainporcelain info
|
|
git-show-branch ancillaryinterrogators complete
|
|
git-show-index plumbinginterrogators
|
|
git-show-ref plumbinginterrogators
|
|
git-sparse-checkout mainporcelain
|
|
git-stage complete
|
|
git-stash mainporcelain
|
|
git-status mainporcelain info
|
|
git-stripspace purehelpers
|
|
git-submodule mainporcelain
|
|
git-svn foreignscminterface
|
|
git-switch mainporcelain history
|
|
git-symbolic-ref plumbingmanipulators
|
|
git-tag mainporcelain history
|
|
git-unpack-file plumbinginterrogators
|
|
git-unpack-objects plumbingmanipulators
|
|
git-update-index plumbingmanipulators
|
|
git-update-ref plumbingmanipulators
|
|
git-update-server-info synchingrepositories
|
|
git-upload-archive synchelpers
|
|
git-upload-pack synchelpers
|
|
git-var plumbinginterrogators
|
|
git-verify-commit ancillaryinterrogators
|
|
git-verify-pack plumbinginterrogators
|
|
git-verify-tag ancillaryinterrogators
|
|
git-whatchanged ancillaryinterrogators complete
|
|
git-worktree mainporcelain
|
|
git-write-tree plumbingmanipulators
|
|
gitattributes guide
|
|
gitcli guide
|
|
gitcore-tutorial guide
|
|
gitcredentials guide
|
|
gitcvs-migration guide
|
|
gitdiffcore guide
|
|
giteveryday guide
|
|
gitfaq guide
|
|
gitglossary guide
|
|
githooks guide
|
|
gitignore guide
|
|
gitk mainporcelain
|
|
gitmailmap guide
|
|
gitmodules guide
|
|
gitnamespaces guide
|
|
gitremote-helpers guide
|
|
gitrepository-layout guide
|
|
gitrevisions guide
|
|
gitsubmodules guide
|
|
gittutorial guide
|
|
gittutorial-2 guide
|
|
gitweb ancillaryinterrogators
|
|
gitworkflows guide
|