git/Documentation
Xiaolong Ye fa2ab86d18 format-patch: add '--base' option to record base tree info
Maintainers or third party testers may want to know the exact base tree
the patch series applies to. Teach git format-patch a '--base' option
to record the base tree info and append it at the end of the first
message (either the cover letter or the first patch in the series).

The base tree info consists of the "base commit", which is a well-known
commit that is part of the stable part of the project history everybody
else works off of, and zero or more "prerequisite patches", which are
well-known patches in flight that is not yet part of the "base commit"
that need to be applied on top of "base commit" in topological order
before the patches can be applied.

The "base commit" is shown as "base-commit: " followed by the 40-hex of
the commit object name.  A "prerequisite patch" is shown as
"prerequisite-patch-id: " followed by the 40-hex "patch id", which can
be obtained by passing the patch through the "git patch-id --stable"
command.

Imagine that on top of the public commit P, you applied well-known
patches X, Y and Z from somebody else, and then built your three-patch
series A, B, C, the history would be like:

---P---X---Y---Z---A---B---C

With "git format-patch --base=P -3 C" (or variants thereof, e.g. with
"--cover-letter" of using "Z..C" instead of "-3 C" to specify the
range), the base tree information block is shown at the end of the
first message the command outputs (either the first patch, or the
cover letter), like this:

base-commit: P
prerequisite-patch-id: X
prerequisite-patch-id: Y
prerequisite-patch-id: Z

Helped-by: Junio C Hamano <gitster@pobox.com>
Helped-by: Wu Fengguang <fengguang.wu@intel.com>
Signed-off-by: Xiaolong Ye <xiaolong.ye@intel.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2016-04-26 10:50:13 -07:00
..
howto command-list.txt: add the common groups block 2015-05-21 13:03:37 -07:00
RelNotes Git 2.8 2016-03-28 12:19:45 -07:00
technical Merge branch 'jk/tighten-alloc' 2016-02-26 13:37:16 -08:00
.gitattributes
.gitignore
asciidoc.conf
blame-options.txt Merge branch 'ea/blame-progress' 2016-01-12 15:16:54 -08:00
build-docdep.perl
cat-texi.perl
cmd-list.perl command-list: prepare machinery for upcoming "common groups" section 2015-05-21 13:03:37 -07:00
CodingGuidelines add DEVELOPER makefile knob to check for acknowledged warnings 2016-02-25 12:49:45 -08:00
config.txt Merge branch 'ce/https-public-key-pinning' 2016-02-24 13:25:58 -08:00
date-formats.txt
diff-config.txt *config.txt: stick to camelCase naming convention 2015-03-13 22:13:46 -07:00
diff-format.txt diff-format doc: a score can follow M for rewrite 2015-01-28 22:22:03 -08:00
diff-generate-patch.txt doc: fix misrendering due to `single quote' 2015-05-12 22:13:39 -07:00
diff-options.txt Documentation/diff: give --word-diff-regex=. example 2015-11-24 18:38:46 -05:00
docbook-xsl.css
docbook.xsl
everyday.txto doc: add 'everyday' to 'git help' 2014-10-10 16:02:26 -07:00
fetch-options.txt Merge branch 'ew/force-ipv4' 2016-02-24 13:25:54 -08:00
fix-texi.perl
fmt-merge-msg-config.txt Documentation: include 'merge.branchdesc' for merge and config as well 2015-05-28 12:38:46 -07:00
git-add.txt git-add doc: do not say working directory when you mean working tree 2016-01-21 09:06:35 -08:00
git-am.txt Expand documentation describing --signoff 2016-01-05 13:42:39 -08:00
git-annotate.txt
git-apply.txt *config.txt: stick to camelCase naming convention 2015-03-13 22:13:46 -07:00
git-archimport.txt
git-archive.txt docs: clarify remote restrictions for git-upload-archive 2014-02-28 09:55:35 -08:00
git-bisect-lk2009.txt Merge branch 'jk/asciidoctor-section-heading-markup-fix' into maint 2015-10-16 14:32:53 -07:00
git-bisect.txt Merge branch 'xf/user-manual-markup' into maint 2015-11-04 14:20:47 -08:00
git-blame.txt blame: add support for --[no-]progress option 2015-12-16 10:18:34 -08:00
git-branch.txt Merge branch 'kn/for-each-branch' 2015-10-15 15:43:38 -07:00
git-bundle.txt transport: drop support for git-over-rsync 2016-02-01 13:07:41 -08:00
git-cat-file.txt usage: do not insist that standard input must come from a file 2015-10-16 15:27:52 -07:00
git-check-attr.txt usage: do not insist that standard input must come from a file 2015-10-16 15:27:52 -07:00
git-check-ignore.txt Revert "Merge branch 'nd/exclusion-regression-fix'" 2016-03-18 11:06:15 -07:00
git-check-mailmap.txt
git-check-ref-format.txt Merge branch 'nd/doc-check-ref-format-typo' into maint 2015-12-11 11:14:15 -08:00
git-checkout-index.txt
git-checkout.txt checkout: add --progress option 2015-11-01 14:08:17 -08:00
git-cherry-pick.txt Expand documentation describing --signoff 2016-01-05 13:42:39 -08:00
git-cherry.txt
git-citool.txt
git-clean.txt Documentation/git-clean.txt: don't mention deletion of .git/modules/* 2016-02-09 10:07:34 -08:00
git-clone.txt Merge branch 'jk/drop-rsync-transport' 2016-02-17 10:13:28 -08:00
git-column.txt doc: remote author/documentation sections from more pages 2014-01-27 08:34:34 -08:00
git-commit-tree.txt usage: do not insist that standard input must come from a file 2015-10-16 15:27:52 -07:00
git-commit.txt Expand documentation describing --signoff 2016-01-05 13:42:39 -08:00
git-config.txt Merge branch 'ls/config-origin' 2016-02-26 13:37:17 -08:00
git-count-objects.txt Documentation: fix misuses of "nor" 2014-03-31 15:16:22 -07:00
git-credential-cache--daemon.txt credential-cache: close stderr in daemon process 2014-09-16 11:11:58 -07:00
git-credential-cache.txt credential-cache--daemon: disallow relative socket path 2016-02-23 12:56:27 -08:00
git-credential-store.txt git-credential-store: support XDG_CONFIG_HOME 2015-03-24 08:08:02 -07:00
git-credential.txt
git-cvsexportcommit.txt
git-cvsimport.txt Documentation: typofixes 2014-11-04 13:14:44 -08:00
git-cvsserver.txt *config.txt: stick to camelCase naming convention 2015-03-13 22:13:46 -07:00
git-daemon.txt Documentation: use "command-line" when used as a compound adjective, and fix other minor grammatical issues 2014-05-21 13:57:10 -07:00
git-describe.txt Merge branch 'sg/describe-contains' 2015-08-31 15:39:10 -07:00
git-diff-files.txt
git-diff-index.txt
git-diff-tree.txt
git-diff.txt Documentation: fix misuses of "nor" 2014-03-31 15:16:22 -07:00
git-difftool.txt difftool: add support for --trust-exit-code 2014-10-28 10:36:57 -07:00
git-fast-export.txt doc: convert \--option to --option 2015-05-12 22:14:46 -07:00
git-fast-import.txt Merge branch 'mh/fast-import-get-mark' 2015-08-03 11:01:23 -07:00
git-fetch-pack.txt doc: convert \--option to --option 2015-05-12 22:14:46 -07:00
git-fetch.txt Merge branch 'jc/em-dash-in-doc' into maint 2015-11-04 14:20:45 -08:00
git-filter-branch.txt Documentation: typofixes 2014-11-04 13:14:44 -08:00
git-fmt-merge-msg.txt usage: do not insist that standard input must come from a file 2015-10-16 15:27:52 -07:00
git-for-each-ref.txt Merge branch 'kn/ref-filter-atom-parsing' 2016-02-26 13:37:10 -08:00
git-format-patch.txt format-patch: add '--base' option to record base tree info 2016-04-26 10:50:13 -07:00
git-fsck-objects.txt
git-fsck.txt fsck: introduce git fsck --connectivity-only 2015-06-23 14:27:37 -07:00
git-gc.txt Merge branch 'jc/doc-gc-prune-now' into maint 2015-10-20 15:22:40 -07:00
git-get-tar-commit-id.txt usage: do not insist that standard input must come from a file 2015-10-16 15:27:52 -07:00
git-grep.txt Merge branch 'tg/grep-no-index-fallback' 2016-01-20 11:43:39 -08:00
git-gui.txt
git-hash-object.txt usage: do not insist that standard input must come from a file 2015-10-16 15:27:52 -07:00
git-help.txt Documentation: use "command-line" when used as a compound adjective, and fix other minor grammatical issues 2014-05-21 13:57:10 -07:00
git-http-backend.txt Merge branch 'jk/http-backend-deadlock' into maint 2015-06-16 14:33:45 -07:00
git-http-fetch.txt
git-http-push.txt
git-imap-send.txt imap-send: use cURL automatically when NO_OPENSSL defined 2015-03-10 15:19:05 -07:00
git-index-pack.txt
git-init-db.txt
git-init.txt *config.txt: stick to camelCase naming convention 2015-03-13 22:13:46 -07:00
git-instaweb.txt *config.txt: stick to camelCase naming convention 2015-03-13 22:13:46 -07:00
git-interpret-trailers.txt interpret-trailers: add option for in-place editing 2016-01-14 12:22:17 -08:00
git-log.txt log: Update log.follow doc and add to config.txt 2015-10-07 10:37:48 -07:00
git-ls-files.txt documentation: fix some typos 2016-03-03 13:43:36 -08:00
git-ls-remote.txt ls-remote: add support for showing symrefs 2016-01-19 10:07:56 -08:00
git-ls-tree.txt
git-mailinfo.txt git-mailinfo: add --message-id 2014-11-25 15:24:55 -08:00
git-mailsplit.txt
git-merge-base.txt
git-merge-file.txt merge-file: clamp exit code to maximum 127 2015-10-29 12:10:23 -07:00
git-merge-index.txt
git-merge-one-file.txt
git-merge-tree.txt
git-merge.txt Merge branch 'mm/keyid-docs' into maint 2015-10-16 14:32:33 -07:00
git-mergetool--lib.txt
git-mergetool.txt mergetool: document the default for --[no-]prompt 2014-04-24 11:29:05 -07:00
git-mktag.txt usage: do not insist that standard input must come from a file 2015-10-16 15:27:52 -07:00
git-mktree.txt
git-mv.txt
git-name-rev.txt
git-notes.txt Merge branch 'jk/notes-dwim-doc' into maint 2015-10-16 14:32:40 -07:00
git-p4.txt Documentation: fix git-p4 AsciiDoc formatting 2016-03-23 10:09:11 -07:00
git-pack-objects.txt doc: convert \--option to --option 2015-05-12 22:14:46 -07:00
git-pack-redundant.txt
git-pack-refs.txt
git-parse-remote.txt
git-patch-id.txt usage: do not insist that standard input must come from a file 2015-10-16 15:27:52 -07:00
git-prune-packed.txt Documentation: adjust document title underlining 2014-10-13 13:35:18 -07:00
git-prune.txt worktree: new place for "git prune --worktrees" 2015-06-29 08:48:44 -07:00
git-pull.txt pull: allow interactive rebase with --rebase=interactive 2016-01-13 12:59:15 -08:00
git-push.txt Merge branch 'mm/push-simple-doc' into maint 2016-03-10 11:13:44 -08:00
git-quiltimport.txt git-quiltimport: add commandline option --series <file> 2015-09-01 11:10:07 -07:00
git-read-tree.txt Documentation: use "command-line" when used as a compound adjective, and fix other minor grammatical issues 2014-05-21 13:57:10 -07:00
git-rebase.txt Documentation: reword rebase summary 2016-03-02 15:37:50 -08:00
git-receive-pack.txt *config.txt: stick to camelCase naming convention 2015-03-13 22:13:46 -07:00
git-reflog.txt git-reflog: add exists command 2015-07-21 14:08:14 -07:00
git-relink.txt
git-remote-ext.txt doc: add some crossrefs between manual pages 2014-11-11 14:47:04 -08:00
git-remote-fd.txt doc: add some crossrefs between manual pages 2014-11-11 14:47:04 -08:00
git-remote-helpers.txto
git-remote-testgit.txt
git-remote.txt Merge branch 'xf/user-manual-markup' into maint 2015-11-04 14:20:47 -08:00
git-repack.txt transport: drop support for git-over-rsync 2016-02-01 13:07:41 -08:00
git-replace.txt Merge branch 'cc/replace-graft' 2014-07-27 15:14:18 -07:00
git-request-pull.txt doc: show usage of branch description 2015-09-14 12:50:33 -07:00
git-rerere.txt *config.txt: stick to camelCase naming convention 2015-03-13 22:13:46 -07:00
git-reset.txt Merge branch 'jl/nor-or-nand-and' 2014-04-08 12:00:28 -07:00
git-rev-list.txt Merge branch 'jk/date-local' 2015-10-05 12:30:13 -07:00
git-rev-parse.txt rev-parse --parseopt: allow [*=?!] in argument hints 2015-07-15 10:30:54 -07:00
git-revert.txt Expand documentation describing --signoff 2016-01-05 13:42:39 -08:00
git-rm.txt
git-send-email.txt sendemail: teach git-send-email to dump alias names 2015-11-20 08:02:06 -05:00
git-send-pack.txt push: support signing pushes iff the server supports it 2015-08-19 12:58:45 -07:00
git-sh-i18n--envsubst.txt
git-sh-i18n.txt
git-sh-setup.txt
git-shell.txt shell doc: remove stray "+" in example 2014-05-08 10:26:26 -07:00
git-shortlog.txt
git-show-branch.txt Documentation: fix misuses of "nor" 2014-03-31 15:16:22 -07:00
git-show-index.txt usage: do not insist that standard input must come from a file 2015-10-16 15:27:52 -07:00
git-show-ref.txt usage: do not insist that standard input must come from a file 2015-10-16 15:27:52 -07:00
git-show.txt doc: convert \--option to --option 2015-05-12 22:14:46 -07:00
git-stage.txt Documentation: adjust document title underlining 2014-10-13 13:35:18 -07:00
git-stash.txt stash: allow "stash show" diff output configurable 2015-08-31 11:29:04 -07:00
git-status.txt Documentation: explain optional arguments better 2015-09-21 10:48:23 -07:00
git-stripspace.txt usage: do not insist that standard input must come from a file 2015-10-16 15:27:52 -07:00
git-submodule.txt document submodule sync --recursive 2015-12-04 13:08:05 -08:00
git-svn.txt git-svn: loosen config globs limitations 2016-03-15 01:35:38 +00:00
git-symbolic-ref.txt
git-tag.txt tag: do not show ambiguous tag names as "tags/foo" 2016-01-26 13:34:10 -08:00
git-tools.txt Documentation/git-tools: retire manually-maintained list 2015-07-28 13:21:59 -07:00
git-unpack-file.txt
git-unpack-objects.txt usage: do not insist that standard input must come from a file 2015-10-16 15:27:52 -07:00
git-update-index.txt config: add core.untrackedCache 2016-01-27 12:30:00 -08:00
git-update-ref.txt update-ref and tag: add --create-reflog arg 2015-07-21 14:08:35 -07:00
git-update-server-info.txt
git-upload-archive.txt Documentation: match underline with the text 2015-10-22 10:16:12 -07:00
git-upload-pack.txt
git-var.txt
git-verify-commit.txt verify-commit: add option to print raw gpg status information 2015-06-22 14:20:47 -07:00
git-verify-pack.txt git-verify-pack.txt: fix inconsistent spelling of "packfile" 2015-05-17 11:24:57 -07:00
git-verify-tag.txt verify-tag: add option to print raw gpg status information 2015-06-22 14:20:47 -07:00
git-web--browse.txt Documentation: use "command-line" when used as a compound adjective, and fix other minor grammatical issues 2014-05-21 13:57:10 -07:00
git-whatchanged.txt
git-worktree.txt worktree: stop supporting moving worktrees manually 2016-01-22 14:28:42 -08:00
git-write-tree.txt
git.txt Git 2.8 2016-03-28 12:19:45 -07:00
gitattributes.txt userdiff: add support for Fountain documents 2015-07-23 14:44:51 -07:00
gitcli.txt Documentation: use "command-line" when used as a compound adjective, and fix other minor grammatical issues 2014-05-21 13:57:10 -07:00
gitcore-tutorial.txt transport: drop support for git-over-rsync 2016-02-01 13:07:41 -08:00
gitcredentials.txt *config.txt: stick to camelCase naming convention 2015-03-13 22:13:46 -07:00
gitcvs-migration.txt doc: add 'everyday' to 'git help' 2014-10-10 16:02:26 -07:00
gitdiffcore.txt doc: convert \--option to --option 2015-05-12 22:14:46 -07:00
giteveryday.txt Documentation/everyday: match undefline with the text 2015-10-22 10:14:44 -07:00
gitglossary.txt doc: add 'everyday' to 'git help' 2014-10-10 16:02:26 -07:00
githooks.txt Documentation: fix broken linkgit to git-config 2016-03-21 13:31:57 -07:00
gitignore.txt Revert "Merge branch 'nd/exclusion-regression-fix'" 2016-03-18 11:06:15 -07:00
gitk.txt Documentation: change -L:<regex> to -L:<funcname> 2015-04-20 11:05:50 -07:00
gitmodules.txt submodule: improve documentation of update subcommand 2015-03-02 14:59:55 -08:00
gitnamespaces.txt
gitremote-helpers.txt gitremote-helpers.txt: document pushcert option 2015-08-19 12:41:38 -07:00
gitrepository-layout.txt Documentation/git-worktree: wordsmith worktree-related manpages 2015-07-20 11:07:18 -07:00
gitrevisions.txt Documentation: match underline with the text 2015-10-22 10:16:12 -07:00
gittutorial-2.txt Merge branch 'sn/tutorial-status-output-example' 2014-11-19 13:47:59 -08:00
gittutorial.txt transport: drop support for git-over-rsync 2016-02-01 13:07:41 -08:00
gitweb.conf.txt Merge branch 'tf/gitweb-typofix' 2015-07-21 12:45:27 -07:00
gitweb.txt Documentation: fix documentation AsciiDoc links for external urls 2014-02-20 14:14:58 -08:00
gitworkflows.txt
glossary-content.txt Merge branch 'ss/user-manual' into maint 2016-02-05 14:54:19 -08:00
howto-index.sh howto-index.sh: use the $( ... ) construct for command substitution 2014-04-17 11:14:57 -07:00
i18n.txt Documentation/i18n.txt: clarify character encoding support 2015-07-01 14:55:53 -07:00
install-doc-quick.sh
install-webdoc.sh install-webdoc.sh: use the $( ... ) construct for command substitution 2014-04-17 11:14:58 -07:00
line-range-format.txt Documentation: change -L:<regex> to -L:<funcname> 2015-04-20 11:05:50 -07:00
mailmap.txt
Makefile Documentation: fix version numbering 2015-01-22 13:44:14 -08:00
manpage-1.72.xsl
manpage-base-url.xsl.in
manpage-base.xsl
manpage-bold-literal.xsl
manpage-normal.xsl
manpage-quote-apos.xsl
manpage-suppress-sp.xsl
merge-config.txt Merge branch 'sg/merge-summary-config' into maint 2015-06-25 11:02:17 -07:00
merge-options.txt Documentation: fix misuses of "nor" 2014-03-31 15:16:22 -07:00
merge-strategies.txt merge-strategies.txt: fix typo 2016-02-22 10:42:52 -08:00
pretty-formats.txt rev-list: make it obvious that we do not support notes 2015-08-24 10:33:15 -07:00
pretty-options.txt notes: allow treeish expressions as notes ref 2016-01-12 15:10:01 -08:00
pull-fetch-param.txt docs: Explain the purpose of fetch's and pull's <refspec> parameter. 2014-06-12 09:59:13 -07:00
rev-list-options.txt Merge branch 'jk/date-local' 2015-10-05 12:30:13 -07:00
revisions.txt Merge branch 'wp/sha1-name-negative-match' 2016-02-10 14:20:10 -08:00
sequencer.txt
SubmittingPatches Merge branch 'jc/submitting-patches-mention-send-email' into maint 2015-03-28 09:33:10 -07:00
urls-remotes.txt Documentation: match underline with the text 2015-10-22 10:16:12 -07:00
urls.txt transport: drop support for git-over-rsync 2016-02-01 13:07:41 -08:00
user-manual.conf
user-manual.txt documentation: fix some typos 2016-03-03 13:43:36 -08:00