# command name category [category] [category]
git-add mainporcelain worktree
git-am mainporcelain
-git-annotate ancillaryinterrogators
-git-apply plumbingmanipulators
+git-annotate ancillaryinterrogators complete
+git-apply plumbingmanipulators complete
git-archimport foreignscminterface
git-archive mainporcelain
git-bisect mainporcelain info
-git-blame ancillaryinterrogators
+git-blame ancillaryinterrogators complete
git-branch mainporcelain history
git-bundle mainporcelain
git-cat-file plumbinginterrogators
git-checkout mainporcelain history
git-checkout-index plumbingmanipulators
git-check-ref-format purehelpers
-git-cherry ancillaryinterrogators
+git-cherry ancillaryinterrogators complete
git-cherry-pick mainporcelain
git-citool mainporcelain
git-clean mainporcelain
git-column purehelpers
git-commit mainporcelain history
git-commit-tree plumbingmanipulators
-git-config ancillarymanipulators
+git-config ancillarymanipulators complete
git-count-objects ancillaryinterrogators
git-credential purehelpers
git-credential-cache purehelpers
git-diff-files plumbinginterrogators
git-diff-index plumbinginterrogators
git-diff-tree plumbinginterrogators
-git-difftool ancillaryinterrogators
+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-filter-branch ancillarymanipulators complete
git-fmt-merge-msg purehelpers
git-for-each-ref plumbinginterrogators
git-format-patch mainporcelain
-git-fsck ancillaryinterrogators
+git-fsck ancillaryinterrogators complete
git-gc mainporcelain
-git-get-tar-commit-id ancillaryinterrogators
+git-get-tar-commit-id ancillaryinterrogators complete
git-grep mainporcelain info
git-gui mainporcelain
git-hash-object plumbingmanipulators
-git-help ancillaryinterrogators
+git-help ancillaryinterrogators complete
git-http-backend synchingrepositories
git-http-fetch synchelpers
git-http-push synchelpers
-git-imap-send foreignscminterface
+git-imap-send foreignscminterface complete
git-index-pack plumbingmanipulators
git-init mainporcelain init
-git-instaweb ancillaryinterrogators
-git-interpret-trailers purehelpers
+git-instaweb ancillaryinterrogators complete
+git-interpret-trailers purehelpers complete
gitk mainporcelain
git-log mainporcelain info
git-ls-files plumbinginterrogators
git-merge-file plumbingmanipulators
git-merge-index plumbingmanipulators
git-merge-one-file purehelpers
-git-mergetool ancillarymanipulators
+git-mergetool ancillarymanipulators complete
git-merge-tree ancillaryinterrogators
git-mktag plumbingmanipulators
git-mktree plumbingmanipulators
git-mv mainporcelain worktree
-git-name-rev plumbinginterrogators
+git-name-rev plumbinginterrogators complete
git-notes mainporcelain
-git-p4 foreignscminterface
+git-p4 foreignscminterface complete
git-pack-objects plumbingmanipulators
git-pack-redundant plumbinginterrogators
git-pack-refs ancillarymanipulators
git-read-tree plumbingmanipulators
git-rebase mainporcelain history
git-receive-pack synchelpers
-git-reflog ancillarymanipulators
-git-remote ancillarymanipulators
-git-repack ancillarymanipulators
-git-replace ancillarymanipulators
-git-request-pull foreignscminterface
+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 worktree
git-revert mainporcelain
git-rev-list plumbinginterrogators
git-rev-parse ancillaryinterrogators
git-rm mainporcelain worktree
-git-send-email foreignscminterface
+git-send-email foreignscminterface complete
git-send-pack synchingrepositories
git-shell synchelpers
git-shortlog mainporcelain
git-show mainporcelain info
-git-show-branch ancillaryinterrogators
+git-show-branch ancillaryinterrogators complete
git-show-index plumbinginterrogators
git-show-ref plumbinginterrogators
git-sh-i18n purehelpers
git-sh-setup purehelpers
git-stash mainporcelain
+git-stage complete
git-status mainporcelain info
git-stripspace purehelpers
git-submodule mainporcelain
-git-svn foreignscminterface
+git-svn foreignscminterface complete
git-symbolic-ref plumbingmanipulators
git-tag mainporcelain history
git-unpack-file plumbinginterrogators
git-upload-archive synchelpers
git-upload-pack synchelpers
git-var plumbinginterrogators
-git-verify-commit ancillaryinterrogators
+git-verify-commit ancillaryinterrogators complete
git-verify-pack plumbinginterrogators
git-verify-tag ancillaryinterrogators
gitweb ancillaryinterrogators
-git-whatchanged ancillaryinterrogators
+git-whatchanged ancillaryinterrogators complete
git-worktree mainporcelain
git-write-tree plumbingmanipulators
gitattributes guide
return 1
}
+# __git_commands requires 1 argument:
+# 1: the command group, either "all" or "porcelain"
__git_commands () {
- if test -n "${GIT_TESTING_COMMAND_COMPLETION:-}"
- then
- printf "%s" "${GIT_TESTING_COMMAND_COMPLETION}"
- else
- git --list-cmds=main,others
- fi
+ case "$1" in
+ porcelain)
+ if test -n "$GIT_TESTING_PORCELAIN_COMMAND_LIST"
+ then
+ printf "%s" "$GIT_TESTING_PORCELAIN_COMMAND_LIST"
+ else
+ git --list-cmds=list-mainporcelain,others,list-complete
+ fi
+ ;;
+ all)
+ if test -n "$GIT_TESTING_ALL_COMMAND_LIST"
+ then
+ printf "%s" "$GIT_TESTING_ALL_COMMAND_LIST"
+ else
+ git --list-cmds=main,others
+ fi
+ ;;
+ esac
}
-__git_list_all_commands ()
+__git_list_commands ()
{
local i IFS=" "$'\n'
- for i in $(__git_commands)
+ for i in $(__git_commands $1)
do
case $i in
*--*) : helper pattern;;
done
}
+__git_list_all_commands ()
+{
+ __git_list_commands all
+}
+
__git_all_commands=
__git_compute_all_commands ()
{
__git_list_porcelain_commands ()
{
- local i IFS=" "$'\n'
- __git_compute_all_commands
- for i in $__git_all_commands
- do
- case $i in
- *--*) : helper pattern;;
- applymbox) : ask gittus;;
- applypatch) : ask gittus;;
- archimport) : import;;
- cat-file) : plumbing;;
- check-attr) : plumbing;;
- check-ignore) : plumbing;;
- check-mailmap) : plumbing;;
- check-ref-format) : plumbing;;
- checkout-index) : plumbing;;
- column) : internal helper;;
- commit-tree) : plumbing;;
- count-objects) : infrequent;;
- credential) : credentials;;
- credential-*) : credentials helper;;
- cvsexportcommit) : export;;
- cvsimport) : import;;
- cvsserver) : daemon;;
- daemon) : daemon;;
- diff-files) : plumbing;;
- diff-index) : plumbing;;
- diff-tree) : plumbing;;
- fast-import) : import;;
- fast-export) : export;;
- fsck-objects) : plumbing;;
- fetch-pack) : plumbing;;
- fmt-merge-msg) : plumbing;;
- for-each-ref) : plumbing;;
- hash-object) : plumbing;;
- http-*) : transport;;
- index-pack) : plumbing;;
- init-db) : deprecated;;
- local-fetch) : plumbing;;
- ls-files) : plumbing;;
- ls-remote) : plumbing;;
- ls-tree) : plumbing;;
- mailinfo) : plumbing;;
- mailsplit) : plumbing;;
- merge-*) : plumbing;;
- mktree) : plumbing;;
- mktag) : plumbing;;
- pack-objects) : plumbing;;
- pack-redundant) : plumbing;;
- pack-refs) : plumbing;;
- parse-remote) : plumbing;;
- patch-id) : plumbing;;
- prune) : plumbing;;
- prune-packed) : plumbing;;
- quiltimport) : import;;
- read-tree) : plumbing;;
- receive-pack) : plumbing;;
- remote-*) : transport;;
- rerere) : plumbing;;
- rev-list) : plumbing;;
- rev-parse) : plumbing;;
- runstatus) : plumbing;;
- sh-setup) : internal;;
- shell) : daemon;;
- show-ref) : plumbing;;
- send-pack) : plumbing;;
- show-index) : plumbing;;
- ssh-*) : transport;;
- stripspace) : plumbing;;
- symbolic-ref) : plumbing;;
- unpack-file) : plumbing;;
- unpack-objects) : plumbing;;
- update-index) : plumbing;;
- update-ref) : plumbing;;
- update-server-info) : daemon;;
- upload-archive) : plumbing;;
- upload-pack) : plumbing;;
- write-tree) : plumbing;;
- var) : infrequent;;
- verify-pack) : infrequent;;
- verify-tag) : plumbing;;
- *) echo $i;;
- esac
- done
+ __git_list_commands porcelain
}
__git_porcelain_commands=