mirror of
https://github.com/git/git.git
synced 2025-12-12 20:36:24 +01:00
Through git-diff(1), a single diff can be generated from a pair of blob revisions directly. Unfortunately, there is not a mechanism to compute batches of specific file pair diffs in a single process. Such a feature is particularly useful on the server-side where diffing between a large set of changes is not feasible all at once due to timeout concerns. To facilitate this, introduce git-diff-pairs(1) which acts as a backend passing its NUL-terminated raw diff format input from stdin through diff machinery to produce various forms of output such as patch or raw. The raw format was originally designed as an interchange format and represents the contents of the diff_queued_diff list making it possible to break the diff pipeline into separate stages. For example, git-diff-tree(1) can be used as a frontend to compute file pairs to queue and feed its raw output to git-diff-pairs(1) to compute patches. With this, batches of diffs can be progressively generated without having to recompute renames or retrieve object context. Something like the following: git diff-tree -r -z -M $old $new | git diff-pairs -p -z should generate the same output as `git diff-tree -p -M`. Furthermore, each line of raw diff formatted input can also be individually fed to a separate git-diff-pairs(1) process and still produce the same output. Based-on-patch-by: Jeff King <peff@peff.net> Signed-off-by: Justin Tobler <jltobler@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
245 lines
13 KiB
Plaintext
245 lines
13 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.
|
|
#
|
|
# User-facing repository, command and file interfaces such as
|
|
# documentation for the .gitmodules, .mailmap etc. files lives in man
|
|
# sections 5 and 7. These entries can only have the "userinterfaces"
|
|
# attribute and nothing else.
|
|
#
|
|
# Git's file formats and protocols, such as documentation for the
|
|
# *.bundle format lives in man section 5. These entries can only have
|
|
# the "developerinterfaces" 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-backfill mainporcelain history
|
|
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-diagnose ancillaryinterrogators
|
|
git-diff mainporcelain info
|
|
git-diff-files plumbinginterrogators
|
|
git-diff-index plumbinginterrogators
|
|
git-diff-pairs 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-refs ancillarymanipulators complete
|
|
git-remote ancillarymanipulators complete
|
|
git-repack ancillarymanipulators complete
|
|
git-replace ancillarymanipulators complete
|
|
git-replay plumbingmanipulators
|
|
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-version ancillaryinterrogators
|
|
git-whatchanged ancillaryinterrogators complete
|
|
git-worktree mainporcelain
|
|
git-write-tree plumbingmanipulators
|
|
gitattributes userinterfaces
|
|
gitcli userinterfaces
|
|
gitcore-tutorial guide
|
|
gitcredentials guide
|
|
gitcvs-migration guide
|
|
gitdiffcore guide
|
|
giteveryday guide
|
|
gitfaq guide
|
|
gitformat-bundle developerinterfaces
|
|
gitformat-chunk developerinterfaces
|
|
gitformat-commit-graph developerinterfaces
|
|
gitformat-index developerinterfaces
|
|
gitformat-pack developerinterfaces
|
|
gitformat-signature developerinterfaces
|
|
gitglossary guide
|
|
githooks userinterfaces
|
|
gitignore userinterfaces
|
|
gitk mainporcelain
|
|
gitmailmap userinterfaces
|
|
gitmodules userinterfaces
|
|
gitnamespaces guide
|
|
gitprotocol-capabilities developerinterfaces
|
|
gitprotocol-common developerinterfaces
|
|
gitprotocol-http developerinterfaces
|
|
gitprotocol-pack developerinterfaces
|
|
gitprotocol-v2 developerinterfaces
|
|
gitremote-helpers guide
|
|
gitrepository-layout userinterfaces
|
|
gitrevisions userinterfaces
|
|
gitsubmodules guide
|
|
gittutorial guide
|
|
gittutorial-2 guide
|
|
gitweb ancillaryinterrogators
|
|
gitworkflows guide
|
|
scalar mainporcelain
|