about summary refs log tree commit diff
path: root/configs/shared/emacs/.emacs.d/elpa/magit-20180719.1904/magit.info-2
diff options
context:
space:
mode:
Diffstat (limited to 'configs/shared/emacs/.emacs.d/elpa/magit-20180719.1904/magit.info-2')
-rw-r--r--configs/shared/emacs/.emacs.d/elpa/magit-20180719.1904/magit.info-22600
1 files changed, 2600 insertions, 0 deletions
diff --git a/configs/shared/emacs/.emacs.d/elpa/magit-20180719.1904/magit.info-2 b/configs/shared/emacs/.emacs.d/elpa/magit-20180719.1904/magit.info-2
new file mode 100644
index 000000000000..4db03f0304a5
--- /dev/null
+++ b/configs/shared/emacs/.emacs.d/elpa/magit-20180719.1904/magit.info-2
@@ -0,0 +1,2600 @@
+This is magit.info, produced by makeinfo version 6.1 from magit.texi.
+
+     Copyright (C) 2015-2018 Jonas Bernoulli <jonas@bernoul.li>
+
+     You can redistribute this document and/or modify it under the terms
+     of the GNU General Public License as published by the Free Software
+     Foundation, either version 3 of the License, or (at your option)
+     any later version.
+
+     This document is distributed in the hope that it will be useful,
+     but WITHOUT ANY WARRANTY; without even the implied warranty of
+     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+     General Public License for more details.
+INFO-DIR-SECTION Emacs
+START-INFO-DIR-ENTRY
+* Magit: (magit).       Using Git from Emacs with Magit.
+END-INFO-DIR-ENTRY
+
+
+File: magit.info,  Node: Microsoft Windows Performance,  Next: MacOS Performance,  Up: Performance
+
+Microsoft Windows Performance
+.............................
+
+In order to update the status buffer, ‘git’ has to be run a few dozen
+times.  That is problematic on Microsoft Windows, because that operating
+system is exceptionally slow at starting processes.  Sadly this is an
+issue that can only be fixed by Microsoft itself, and they don’t appear
+to be particularly interested in doing so.
+
+   Beside the subprocess issue, there are also other Windows-specific
+performance issues.  Some of these have workarounds.  The maintainers of
+"Git for Windows" try to improve performance on Windows.  Always use the
+latest release in order to benefit from the latest performance tweaks.
+Magit too tries to work around some Windows-specific issues.
+
+   According to some sources, setting the following Git variables can
+also help.
+
+     git config --global core.preloadindex true   # default since v2.1
+     git config --global core.fscache true        # default since v2.8
+     git config --global gc.auto 256
+
+   You should also check whether an anti-virus program is affecting
+performance.
+
+
+File: magit.info,  Node: MacOS Performance,  Prev: Microsoft Windows Performance,  Up: Performance
+
+MacOS Performance
+.................
+
+On macOS Emacs currently creates child processes using ‘fork’.  It
+appears that this also copies GUI resources.  The result is that forking
+takes about 30 times as long on Darwin than on Linux.  And because Magit
+starts many ‘git’ processes even when doing simple things, that makes
+quite a difference.
+
+   On the ‘master’ branch Emacs now uses ‘vfork’ when possible, like
+this was already done on Linux, and now child creation only takes about
+twice as long on Darwin.  See (1) for more information.
+
+   Nobody knows when the changes on the ‘master’ branch will be released
+as ‘26.1’, but it is still a long way off.  You might want to get your
+hands on this change before then.  The easiest way to get a patched
+Emacs is to install the ‘emacs-plus’ formula (2) using ‘homebrew’.  The
+change has been backported, so you get it not only when using ‘--HEAD’,
+but also when using ‘--devel’ or when installing the latest release (by
+not using a version argument).
+
+   Alternatively you can apply the backport (3) manually.
+
+   ---------- Footnotes ----------
+
+   (1) 
+<https://lists.gnu.org/archive/html/bug-gnu-emacs/2017-04/msg00201.html>
+
+   (2) <https://github.com/d12frosted/homebrew-emacs-plus>
+
+   (3) 
+<https://gist.githubusercontent.com/aaronjensen/f45894ddf431ecbff78b1bcf533d3e6b/raw/6a5cd7f57341aba673234348d8b0d2e776f86719/Emacs-25-OS-X-use-vfork.patch>
+
+
+File: magit.info,  Node: Plumbing,  Next: FAQ,  Prev: Customizing,  Up: Top
+
+10 Plumbing
+***********
+
+The following sections describe how to use several of Magit’s core
+abstractions to extend Magit itself or implement a separate extension.
+
+   A few of the low-level features used by Magit have been factored out
+into separate libraries/packages, so that they can be used by other
+packages, without having to depend on Magit.  These libraries are
+described in separate manuals, see *note (with-editor)Top:: and *note
+(magit-popup)Top::.
+
+   If you are trying to find an unused key that you can bind to a
+command provided by your own Magit extension, then checkout
+<https://github.com/magit/magit/wiki/Plugin-Dispatch-Key-Registry>.
+
+* Menu:
+
+* Calling Git::
+* Section Plumbing::
+* Refreshing Buffers::
+* Conventions::
+
+
+File: magit.info,  Node: Calling Git,  Next: Section Plumbing,  Up: Plumbing
+
+10.1 Calling Git
+================
+
+Magit provides many specialized functions for calling Git.  All of these
+functions are defined in either ‘magit-git.el’ or ‘magit-process.el’ and
+have one of the prefixes ‘magit-run-’, ‘magit-call-’, ‘magit-start-’, or
+‘magit-git-’ (which is also used for other things).
+
+   All of these functions accept an indefinite number of arguments,
+which are strings that specify command line arguments for Git (or in
+some cases an arbitrary executable).  These arguments are flattened
+before being passed on to the executable; so instead of strings they can
+also be lists of strings and arguments that are ‘nil’ are silently
+dropped.  Some of these functions also require a single mandatory
+argument before these command line arguments.
+
+   Roughly speaking, these functions run Git either to get some value or
+for side-effects.  The functions that return a value are useful to
+collect the information necessary to populate a Magit buffer, while the
+others are used to implement Magit commands.
+
+   The functions in the value-only group always run synchronously, and
+they never trigger a refresh.  The function in the side-effect group can
+be further divided into subgroups depending on whether they run Git
+synchronously or asynchronously, and depending on whether they trigger a
+refresh when the executable has finished.
+
+* Menu:
+
+* Getting a Value from Git::
+* Calling Git for Effect::
+
+
+File: magit.info,  Node: Getting a Value from Git,  Next: Calling Git for Effect,  Up: Calling Git
+
+10.1.1 Getting a Value from Git
+-------------------------------
+
+These functions run Git in order to get a value, an exit status, or
+output.  Of course you could also use them to run Git commands that have
+side-effects, but that should be avoided.
+
+ -- Function: magit-git-exit-code &rest args
+
+     Executes git with ARGS and returns its exit code.
+
+ -- Function: magit-git-success &rest args
+
+     Executes git with ARGS and returns ‘t’ if the exit code is ‘0’,
+     ‘nil’ otherwise.
+
+ -- Function: magit-git-failure &rest args
+
+     Executes git with ARGS and returns ‘t’ if the exit code is ‘1’,
+     ‘nil’ otherwise.
+
+ -- Function: magit-git-true &rest args
+
+     Executes git with ARGS and returns ‘t’ if the first line printed by
+     git is the string "true", ‘nil’ otherwise.
+
+ -- Function: magit-git-false &rest args
+
+     Executes git with ARGS and returns ‘t’ if the first line printed by
+     git is the string "false", ‘nil’ otherwise.
+
+ -- Function: magit-git-insert &rest args
+
+     Executes git with ARGS and inserts its output at point.
+
+ -- Function: magit-git-string &rest args
+
+     Executes git with ARGS and returns the first line of its output.
+     If there is no output or if it begins with a newline character,
+     then this returns ‘nil’.
+
+ -- Function: magit-git-lines &rest args
+
+     Executes git with ARGS and returns its output as a list of lines.
+     Empty lines anywhere in the output are omitted.
+
+ -- Function: magit-git-items &rest args
+
+     Executes git with ARGS and returns its null-separated output as a
+     list.  Empty items anywhere in the output are omitted.
+
+     If the value of option ‘magit-git-debug’ is non-nil and git exits
+     with a non-zero exit status, then warn about that in the echo area
+     and add a section containing git’s standard error in the current
+     repository’s process buffer.
+
+   If an error occurs when using one of the above functions, then that
+is usually due to a bug, i.e.  using an argument which is not actually
+supported.  Such errors are usually not reported, but when they occur we
+need to be able to debug them.
+
+ -- User Option: magit-git-debug
+
+     Whether to report errors that occur when using ‘magit-git-insert’,
+     ‘magit-git-string’, ‘magit-git-lines’, or ‘magit-git-items’.  This
+     does not actually raise an error.  Instead a message is shown in
+     the echo area, and git’s standard error is insert into a new
+     section in the current repository’s process buffer.
+
+ -- Function: magit-git-str &rest args
+
+     This is a variant of ‘magit-git-string’ that ignores the option
+     ‘magit-git-debug’.  It is mainly intended to be used while handling
+     errors in functions that do respect that option.  Using such a
+     function while handing an error could cause yet another error and
+     therefore lead to an infinite recursion.  You probably won’t ever
+     need to use this function.
+
+
+File: magit.info,  Node: Calling Git for Effect,  Prev: Getting a Value from Git,  Up: Calling Git
+
+10.1.2 Calling Git for Effect
+-----------------------------
+
+These functions are used to run git to produce some effect.  Most Magit
+commands that actually run git do so by using such a function.
+
+   Because we do not need to consume git’s output when using these
+functions, their output is instead logged into a per-repository buffer,
+which can be shown using ‘$’ from a Magit buffer or ‘M-x magit-process’
+elsewhere.
+
+   These functions can have an effect in two distinct ways.  Firstly,
+running git may change something, i.e.  create or push a new commit.
+Secondly, that change may require that Magit buffers are refreshed to
+reflect the changed state of the repository.  But refreshing isn’t
+always desirable, so only some of these functions do perform such a
+refresh after git has returned.
+
+   Sometimes it is useful to run git asynchronously.  For example, when
+the user has just initiated a push, then there is no reason to make her
+wait until that has completed.  In other cases it makes sense to wait
+for git to complete before letting the user do something else.  For
+example after staging a change it is useful to wait until after the
+refresh because that also automatically moves to the next change.
+
+ -- Function: magit-call-git &rest args
+
+     Calls git synchronously with ARGS.
+
+ -- Function: magit-call-process program &rest args
+
+     Calls PROGRAM synchronously with ARGS.
+
+ -- Function: magit-run-git &rest args
+
+     Calls git synchronously with ARGS and then refreshes.
+
+ -- Function: magit-run-git-with-input input &rest args
+
+     Calls git synchronously with ARGS and sends it INPUT on standard
+     input.
+
+     INPUT should be a buffer or the name of an existing buffer.  The
+     content of that buffer is used as the process’ standard input.
+     After the process returns a refresh is performed.
+
+     As a special case, INPUT may also be nil.  In that case the content
+     of the current buffer is used as standard input and *no* refresh is
+     performed.
+
+     This function actually runs git asynchronously.  But then it waits
+     for the process to return, so the function itself is synchronous.
+
+ -- Function: magit-run-git-with-logfile file &rest args
+
+     Calls git synchronously with ARGS.  The process’ output is saved in
+     FILE.  This is rarely useful and so this function might be removed
+     in the future.
+
+     This function actually runs git asynchronously.  But then it waits
+     for the process to return, so the function itself is synchronous.
+
+ -- Function: magit-git &rest args
+
+     Calls git synchronously with ARGS for side-effects only.  This
+     function does not refresh the buffer.
+
+ -- Function: magit-git-wash washer &rest args
+
+     Execute Git with ARGS, inserting washed output at point.  Actually
+     first insert the raw output at point.  If there is no output call
+     ‘magit-cancel-section’.  Otherwise temporarily narrow the buffer to
+     the inserted text, move to its beginning, and then call function
+     WASHER with ARGS as its sole argument.
+
+   And now for the asynchronous variants.
+
+ -- Function: magit-run-git-async &rest args
+
+     Start Git, prepare for refresh, and return the process object.
+     ARGS is flattened and then used as arguments to Git.
+
+     Display the command line arguments in the echo area.
+
+     After Git returns some buffers are refreshed: the buffer that was
+     current when this function was called (if it is a Magit buffer and
+     still alive), as well as the respective Magit status buffer.
+     Unmodified buffers visiting files that are tracked in the current
+     repository are reverted if ‘magit-revert-buffers’ is non-nil.
+
+ -- Function: magit-run-git-with-editor &rest args
+
+     Export GIT_EDITOR and start Git.  Also prepare for refresh and
+     return the process object.  ARGS is flattened and then used as
+     arguments to Git.
+
+     Display the command line arguments in the echo area.
+
+     After Git returns some buffers are refreshed: the buffer that was
+     current when this function was called (if it is a Magit buffer and
+     still alive), as well as the respective Magit status buffer.
+
+ -- Function: magit-start-git &rest args
+
+     Start Git, prepare for refresh, and return the process object.
+
+     If INPUT is non-nil, it has to be a buffer or the name of an
+     existing buffer.  The buffer content becomes the processes standard
+     input.
+
+     Option ‘magit-git-executable’ specifies the Git executable and
+     option ‘magit-git-global-arguments’ specifies constant arguments.
+     The remaining arguments ARGS specify arguments to Git.  They are
+     flattened before use.
+
+     After Git returns, some buffers are refreshed: the buffer that was
+     current when this function was called (if it is a Magit buffer and
+     still alive), as well as the respective Magit status buffer.
+     Unmodified buffers visiting files that are tracked in the current
+     repository are reverted if ‘magit-revert-buffers’ is non-nil.
+
+ -- Function: magit-start-process &rest args
+
+     Start PROGRAM, prepare for refresh, and return the process object.
+
+     If optional argument INPUT is non-nil, it has to be a buffer or the
+     name of an existing buffer.  The buffer content becomes the
+     processes standard input.
+
+     The process is started using ‘start-file-process’ and then setup to
+     use the sentinel ‘magit-process-sentinel’ and the filter
+     ‘magit-process-filter’.  Information required by these functions is
+     stored in the process object.  When this function returns the
+     process has not started to run yet so it is possible to override
+     the sentinel and filter.
+
+     After the process returns, ‘magit-process-sentinel’ refreshes the
+     buffer that was current when ‘magit-start-process’ was called (if
+     it is a Magit buffer and still alive), as well as the respective
+     Magit status buffer.  Unmodified buffers visiting files that are
+     tracked in the current repository are reverted if
+     ‘magit-revert-buffers’ is non-nil.
+
+ -- Variable: magit-this-process
+
+     The child process which is about to start.  This can be used to
+     change the filter and sentinel.
+
+ -- Variable: magit-process-raise-error
+
+     When this is non-nil, then ‘magit-process-sentinel’ raises an error
+     if git exits with a non-zero exit status.  For debugging purposes.
+
+
+File: magit.info,  Node: Section Plumbing,  Next: Refreshing Buffers,  Prev: Calling Git,  Up: Plumbing
+
+10.2 Section Plumbing
+=====================
+
+* Menu:
+
+* Creating Sections::
+* Section Selection::
+* Matching Sections::
+
+
+File: magit.info,  Node: Creating Sections,  Next: Section Selection,  Up: Section Plumbing
+
+10.2.1 Creating Sections
+------------------------
+
+ -- Macro: magit-insert-section &rest args
+
+     Insert a section at point.
+
+     TYPE is the section type, a symbol.  Many commands that act on the
+     current section behave differently depending on that type.  Also if
+     a variable ‘magit-TYPE-section-map’ exists, then use that as the
+     text-property ‘keymap’ of all text belonging to the section (but
+     this may be overwritten in subsections).  TYPE can also have the
+     form ‘(eval FORM)’ in which case FORM is evaluated at runtime.
+
+     Optional VALUE is the value of the section, usually a string that
+     is required when acting on the section.
+
+     When optional HIDE is non-nil collapse the section body by default,
+     i.e.  when first creating the section, but not when refreshing the
+     buffer.  Otherwise, expand it by default.  This can be overwritten
+     using ‘magit-section-set-visibility-hook’.  When a section is
+     recreated during a refresh, then the visibility of predecessor is
+     inherited and HIDE is ignored (but the hook is still honored).
+
+     BODY is any number of forms that actually insert the section’s
+     heading and body.  Optional NAME, if specified, has to be a symbol,
+     which is then bound to the struct of the section being inserted.
+
+     Before BODY is evaluated the ‘start’ of the section object is set
+     to the value of ‘point’ and after BODY was evaluated its ‘end’ is
+     set to the new value of ‘point’; BODY is responsible for moving
+     ‘point’ forward.
+
+     If it turns out inside BODY that the section is empty, then
+     ‘magit-cancel-section’ can be used to abort and remove all traces
+     of the partially inserted section.  This can happen when creating a
+     section by washing Git’s output and Git didn’t actually output
+     anything this time around.
+
+ -- Function: magit-insert-heading &rest args
+
+     Insert the heading for the section currently being inserted.
+
+     This function should only be used inside ‘magit-insert-section’.
+
+     When called without any arguments, then just set the ‘content’ slot
+     of the object representing the section being inserted to a marker
+     at ‘point’.  The section should only contain a single line when
+     this function is used like this.
+
+     When called with arguments ARGS, which have to be strings, then
+     insert those strings at point.  The section should not contain any
+     text before this happens and afterwards it should again only
+     contain a single line.  If the ‘face’ property is set anywhere
+     inside any of these strings, then insert all of them unchanged.
+     Otherwise use the ‘magit-section-heading’ face for all inserted
+     text.
+
+     The ‘content’ property of the section struct is the end of the
+     heading (which lasts from ‘start’ to ‘content’) and the beginning
+     of the body (which lasts from ‘content’ to ‘end’).  If the value of
+     ‘content’ is nil, then the section has no heading and its body
+     cannot be collapsed.  If a section does have a heading then its
+     height must be exactly one line, including a trailing newline
+     character.  This isn’t enforced; you are responsible for getting it
+     right.  The only exception is that this function does insert a
+     newline character if necessary.
+
+ -- Function: magit-cancel-section
+
+     Cancel the section currently being inserted.  This exits the
+     innermost call to ‘magit-insert-section’ and removes all traces of
+     what has already happened inside that call.
+
+ -- Function: magit-define-section-jumper sym title &optional value
+
+     Define an interactive function to go to section SYM.  TITLE is the
+     displayed title of the section.
+
+
+File: magit.info,  Node: Section Selection,  Next: Matching Sections,  Prev: Creating Sections,  Up: Section Plumbing
+
+10.2.2 Section Selection
+------------------------
+
+ -- Function: magit-current-section
+
+     Return the section at point.
+
+ -- Function: magit-region-sections
+
+     Return a list of the selected sections.
+
+     When the region is active and constitutes a valid section
+     selection, then return a list of all selected sections.  This is
+     the case when the region begins in the heading of a section and
+     ends in the heading of a sibling of that first section.  When the
+     selection is not valid then return nil.  Most commands that can act
+     on the selected sections, then instead just act on the current
+     section, the one point is in.
+
+     When the region looks like it would in any other buffer then the
+     selection is invalid.  When the selection is valid then the region
+     uses the ‘magit-section-highlight’.  This does not apply to diffs
+     where things get a bit more complicated, but even here if the
+     region looks like it usually does, then that’s not a valid
+     selection as far as this function is concerned.
+
+ -- Function: magit-region-values &rest types
+
+     Return a list of the values of the selected sections.
+
+     Also see ‘magit-region-sections’ whose doc-string explains when a
+     region is a valid section selection.  If the region is not active
+     or is not a valid section selection, then return nil.  If optional
+     TYPES is non-nil then the selection not only has to be valid; the
+     types of all selected sections additionally have to match one of
+     TYPES, or nil is returned.
+
+
+File: magit.info,  Node: Matching Sections,  Prev: Section Selection,  Up: Section Plumbing
+
+10.2.3 Matching Sections
+------------------------
+
+‘M-x magit-describe-section’     (‘magit-describe-section’)
+
+     Show information about the section at point.  This command is
+     intended for debugging purposes.
+
+ -- Function: magit-section-ident
+
+     Return an unique identifier for SECTION.  The return value has the
+     form ‘((TYPE . VALUE)...)’.
+
+ -- Function: magit-get-section
+
+     Return the section identified by IDENT.  IDENT has to be a list as
+     returned by ‘magit-section-ident’.
+
+ -- Function: magit-section-match condition &optional section
+
+     Return ‘t’ if SECTION matches CONDITION.  SECTION defaults to the
+     section at point.  If SECTION is not specified and there also is no
+     section at point, then return ‘nil’.
+
+     CONDITION can take the following forms:
+        • ‘(CONDITION...)’
+
+          matches if any of the CONDITIONs matches.
+
+        • ‘[TYPE...]’
+
+          matches if the first TYPE matches the type of the section, the
+          second matches that of its parent, and so on.
+
+        • ‘[* TYPE...]’
+
+          matches sections that match [TYPE...] and also recursively all
+          their child sections.
+
+        • ‘TYPE’
+
+          matches sections of TYPE regardless of the types of the parent
+          sections.
+
+     Each TYPE is a symbol.  Note that it is not necessary to specify
+     all TYPEs up to the root section as printed by
+     ‘magit-describe-type’, unless of course you want to be that
+     precise.
+
+ -- Function: magit-section-when condition &rest body
+
+     If the section at point matches CONDITION evaluate BODY.
+
+     If the section matches, then evaluate BODY forms sequentially with
+     ‘it’ bound to the section and return the value of the last form.
+     If there are no BODY forms, then return the value of the section.
+     If the section does not match or if there is no section at point
+     then return nil.
+
+     See ‘magit-section-match’ for the forms CONDITION can take.
+
+ -- Function: magit-section-case &rest clauses
+
+     Choose among clauses on the type of the section at point.
+
+     Each clause looks like (CONDITION BODY...).  The type of the
+     section is compared against each CONDITION; the BODY forms of the
+     first match are evaluated sequentially and the value of the last
+     form is returned.  Inside BODY the symbol ‘it’ is bound to the
+     section at point.  If no clause succeeds or if there is no section
+     at point return nil.
+
+     See ‘magit-section-match’ for the forms CONDITION can take.
+     Additionally a CONDITION of t is allowed in the final clause and
+     matches if no other CONDITION match, even if there is no section at
+     point.
+
+ -- Variable: magit-root-section
+
+     The root section in the current buffer.  All other sections are
+     descendants of this section.  The value of this variable is set by
+     ‘magit-insert-section’ and you should never modify it.
+
+   For diff related sections a few additional tools exist.
+
+ -- Function: magit-diff-type &optional section
+
+     Return the diff type of SECTION.
+
+     The returned type is one of the symbols ‘staged’, ‘unstaged’,
+     ‘committed’, or ‘undefined’.  This type serves a similar purpose as
+     the general type common to all sections (which is stored in the
+     ‘type’ slot of the corresponding ‘magit-section’ struct) but takes
+     additional information into account.  When the SECTION isn’t
+     related to diffs and the buffer containing it also isn’t a
+     diff-only buffer, then return nil.
+
+     Currently the type can also be one of ‘tracked’ and ‘untracked’,
+     but these values are not handled explicitly in every place they
+     should be.  A possible fix could be to just return nil here.
+
+     The section has to be a ‘diff’ or ‘hunk’ section, or a section
+     whose children are of type ‘diff’.  If optional SECTION is nil,
+     return the diff type for the current section.  In buffers whose
+     major mode is ‘magit-diff-mode’ SECTION is ignored and the type is
+     determined using other means.  In ‘magit-revision-mode’ buffers the
+     type is always ‘committed’.
+
+ -- Function: magit-diff-scope &optional section strict
+
+     Return the diff scope of SECTION or the selected section(s).
+
+     A diff’s "scope" describes what part of a diff is selected, it is a
+     symbol, one of ‘region’, ‘hunk’, ‘hunks’, ‘file’, ‘files’, or
+     ‘list’.  Do not confuse this with the diff "type", as returned by
+     ‘magit-diff-type’.
+
+     If optional SECTION is non-nil, then return the scope of that,
+     ignoring the sections selected by the region.  Otherwise return the
+     scope of the current section, or if the region is active and
+     selects a valid group of diff related sections, the type of these
+     sections, i.e.  ‘hunks’ or ‘files’.  If SECTION (or if the current
+     section that is nil) is a ‘hunk’ section and the region starts and
+     ends inside the body of a that section, then the type is ‘region’.
+
+     If optional STRICT is non-nil then return nil if the diff type of
+     the section at point is ‘untracked’ or the section at point is not
+     actually a ‘diff’ but a ‘diffstat’ section.
+
+
+File: magit.info,  Node: Refreshing Buffers,  Next: Conventions,  Prev: Section Plumbing,  Up: Plumbing
+
+10.3 Refreshing Buffers
+=======================
+
+All commands that create a new Magit buffer or change what is being
+displayed in an existing buffer do so by calling ‘magit-mode-setup’.
+Among other things, that function sets the buffer local values of
+‘default-directory’ (to the top-level of the repository),
+‘magit-refresh-function’, and ‘magit-refresh-args’.
+
+   Buffers are refreshed by calling the function that is the local value
+of ‘magit-refresh-function’ (a function named ‘magit-*-refresh-buffer’,
+where ‘*’ may be something like ‘diff’) with the value of
+‘magit-refresh-args’ as arguments.
+
+ -- Macro: magit-mode-setup buffer switch-func mode refresh-func
+          &optional refresh-args
+
+     This function displays and selects BUFFER, turns on MODE, and
+     refreshes a first time.
+
+     This function displays and optionally selects BUFFER by calling
+     ‘magit-mode-display-buffer’ with BUFFER, MODE and SWITCH-FUNC as
+     arguments.  Then it sets the local value of
+     ‘magit-refresh-function’ to REFRESH-FUNC and that of
+     ‘magit-refresh-args’ to REFRESH-ARGS.  Finally it creates the
+     buffer content by calling REFRESH-FUNC with REFRESH-ARGS as
+     arguments.
+
+     All arguments are evaluated before switching to BUFFER.
+
+ -- Function: magit-mode-display-buffer buffer mode &optional
+          switch-function
+
+     This function display BUFFER in some window and select it.  BUFFER
+     may be a buffer or a string, the name of a buffer.  The buffer is
+     returned.
+
+     Unless BUFFER is already displayed in the selected frame, store the
+     previous window configuration as a buffer local value, so that it
+     can later be restored by ‘magit-mode-bury-buffer’.
+
+     The buffer is displayed and selected using SWITCH-FUNCTION.  If
+     that is ‘nil’ then ‘pop-to-buffer’ is used if the current buffer’s
+     major mode derives from ‘magit-mode’.  Otherwise ‘switch-to-buffer’
+     is used.
+
+ -- Variable: magit-refresh-function
+
+     The value of this buffer-local variable is the function used to
+     refresh the current buffer.  It is called with ‘magit-refresh-args’
+     as arguments.
+
+ -- Variable: magit-refresh-args
+
+     The list of arguments used by ‘magit-refresh-function’ to refresh
+     the current buffer.  ‘magit-refresh-function’ is called with these
+     arguments.
+
+     The value is usually set using ‘magit-mode-setup’, but in some
+     cases it’s also useful to provide commands which can change the
+     value.  For example, the ‘magit-diff-refresh-popup’ can be used to
+     change any of the arguments used to display the diff, without
+     having to specify again which differences should be shown.
+     ‘magit-diff-more-context’, ‘magit-diff-less-context’, and
+     ‘magit-diff-default-context’ change just the ‘-U<N>’ argument.  In
+     both case this is done by changing the value of this variable and
+     then calling this ‘magit-refresh-function’.
+
+
+File: magit.info,  Node: Conventions,  Prev: Refreshing Buffers,  Up: Plumbing
+
+10.4 Conventions
+================
+
+Also see *note Completion and Confirmation::.
+
+* Menu:
+
+* Theming Faces::
+
+
+File: magit.info,  Node: Theming Faces,  Up: Conventions
+
+10.4.1 Theming Faces
+--------------------
+
+The default theme uses blue for local branches, green for remote
+branches, and goldenrod (brownish yellow) for tags.  When creating a new
+theme, you should probably follow that example.  If your theme already
+uses other colors, then stick to that.
+
+   In older releases these reference faces used to have a background
+color and a box around them.  The basic default faces no longer do so,
+to make Magit buffers much less noisy, and you should follow that
+example at least with regards to boxes.  (Boxes were used in the past to
+work around a conflict between the highlighting overlay and text
+property backgrounds.  That’s no longer necessary because highlighting
+no longer causes other background colors to disappear.)  Alternatively
+you can keep the background color and/or box, but then have to take
+special care to adjust ‘magit-branch-current’ accordingly.  By default
+it looks mostly like ‘magit-branch-local’, but with a box (by default
+the former is the only face that uses a box, exactly so that it sticks
+out).  If the former also uses a box, then you have to make sure that it
+differs in some other way from the latter.
+
+   The most difficult faces to theme are those related to diffs,
+headings, highlighting, and the region.  There are faces that fall into
+all four groups - expect to spend some time getting this right.
+
+   The ‘region’ face in the default theme, in both the light and dark
+variants, as well as in many other themes, distributed with Emacs or by
+third-parties, is very ugly.  It is common to use a background color
+that really sticks out, which is ugly but if that were the only problem
+then it would be acceptable.  Unfortunately many themes also set the
+foreground color, which ensures that all text within the region is
+readable.  Without doing that there might be cases where some foreground
+color is too close to the region background color to still be readable.
+But it also means that text within the region loses all syntax
+highlighting.
+
+   I consider the work that went into getting the ‘region’ face right to
+be a good indicator for the general quality of a theme.  My
+recommendation for the ‘region’ face is this: use a background color
+slightly different from the background color of the ‘default’ face, and
+do not set the foreground color at all.  So for a light theme you might
+use a light (possibly tinted) gray as the background color of ‘default’
+and a somewhat darker gray for the background of ‘region’.  That should
+usually be enough to not collide with the foreground color of any other
+face.  But if some other faces also set a light gray as background
+color, then you should also make sure it doesn’t collide with those (in
+some cases it might be acceptable though).
+
+   Magit only uses the ‘region’ face when the region is "invalid" by its
+own definition.  In a Magit buffer the region is used to either select
+multiple sibling sections, so that commands which support it act on all
+of these sections instead of just the current section, or to select
+lines within a single hunk section.  In all other cases, the section is
+considered invalid and Magit won’t act on it.  But such invalid sections
+happen, either because the user has not moved point enough yet to make
+it valid or because she wants to use a non-magit command to act on the
+region, e.g.  ‘kill-region’.
+
+   So using the regular ‘region’ face for invalid sections is a feature.
+It tells the user that Magit won’t be able to act on it.  It’s
+acceptable if that face looks a bit odd and even (but less so) if it
+collides with the background colors of section headings and other things
+that have a background color.
+
+   Magit highlights the current section.  If a section has subsections,
+then all of them are highlighted.  This is done using faces that have
+"highlight" in their names.  For most sections,
+‘magit-section-highlight’ is used for both the body and the heading.
+Like the ‘region’ face, it should only set the background color to
+something similar to that of ‘default’.  The highlight background color
+must be different from both the ‘region’ background color and the
+‘default’ background color.
+
+   For diff related sections Magit uses various faces to highlight
+different parts of the selected section(s).  Note that hunk headings,
+unlike all other section headings, by default have a background color,
+because it is useful to have very visible separators between hunks.
+That face ‘magit-diff-hunk-heading’, should be different from both
+‘magit-diff-hunk-heading-highlight’ and ‘magit-section-highlight’, as
+well as from ‘magit-diff-context’ and ‘magit-diff-context-highlight’.
+By default we do that by changing the foreground color.  Changing the
+background color would lead to complications, and there are already
+enough we cannot get around.  (Also note that it is generally a good
+idea for section headings to always be bold, but only for sections that
+have subsections).
+
+   When there is a valid region selecting diff-related sibling sections,
+i.e.  multiple files or hunks, then the bodies of all these sections use
+the respective highlight faces, but additionally the headings instead
+use one of the faces ‘magit-diff-file-heading-selection’ or
+‘magit-diff-hunk-heading-selection’.  These faces have to be different
+from the regular highlight variants to provide explicit visual
+indication that the region is active.
+
+   When theming diff related faces, start by setting the option
+‘magit-diff-refine-hunk’ to ‘all’.  You might personally prefer to only
+refine the current hunk or not use hunk refinement at all, but some of
+the users of your theme want all hunks to be refined, so you have to
+cater to that.
+
+   (Also turn on ‘magit-diff-highlight-indentation’,
+‘magit-diff-highlight-trailing’, and ‘magit-diff-paint-whitespace’; and
+insert some whitespace errors into the code you use for testing.)
+
+   For e.g.  "added lines" you have to adjust three faces:
+‘magit-diff-added’, ‘magit-diff-added-highlight’, and
+‘smerge-refined-added’.  Make sure that the latter works well with both
+of the former, as well as ‘smerge-other’ and ‘diff-added’.  Then do the
+same for the removed lines, context lines, lines added by us, and lines
+added by them.  Also make sure the respective added, removed, and
+context faces use approximately the same saturation for both the
+highlighted and unhighlighted variants.  Also make sure the file and
+diff headings work nicely with context lines (e.g.  make them look
+different).  Line faces should set both the foreground and the
+background color.  For example, for added lines use two different
+greens.
+
+   It’s best if the foreground color of both the highlighted and the
+unhighlighted variants are the same, so you will need to have to find a
+color that works well on the highlight and unhighlighted background, the
+refine background, and the highlight context background.  When there is
+an hunk internal region, then the added- and removed-lines background
+color is used only within that region.  Outside the region the
+highlighted context background color is used.  This makes it easier to
+see what is being staged.  With an hunk internal region the hunk heading
+is shown using ‘magit-diff-hunk-heading-selection’, and so are the thin
+lines that are added around the lines that fall within the region.  The
+background color of that has to be distinct enough from the various
+other involved background colors.
+
+   Nobody said this would be easy.  If your theme restricts itself to a
+certain set of colors, then you should make an exception here.
+Otherwise it would be impossible to make the diffs look good in each and
+every variation.  Actually you might want to just stick to the default
+definitions for these faces.  You have been warned.  Also please note
+that if you do not get this right, this will in some cases look to users
+like bugs in Magit - so please do it right or not at all.
+
+
+File: magit.info,  Node: FAQ,  Next: Debugging Tools,  Prev: Plumbing,  Up: Top
+
+Appendix A FAQ
+**************
+
+The next two nodes lists frequently asked questions.  For a list of
+frequently *and recently* asked questions, i.e.  questions that haven’t
+made it into the manual yet, see
+<https://github.com/magit/magit/wiki/FAQ>.
+
+   Please also use the *note Debugging Tools::.
+
+* Menu:
+
+* FAQ - How to ...?::
+* FAQ - Issues and Errors::
+
+
+File: magit.info,  Node: FAQ - How to ...?,  Next: FAQ - Issues and Errors,  Up: FAQ
+
+A.1 FAQ - How to ...?
+=====================
+
+* Menu:
+
+* How to show git's output?::
+* How to install the gitman info manual?::
+* How to show diffs for gpg-encrypted files?::
+* How does branching and pushing work?::
+* Can Magit be used as ediff-version-control-package?::
+
+
+File: magit.info,  Node: How to show git's output?,  Next: How to install the gitman info manual?,  Up: FAQ - How to ...?
+
+A.1.1 How to show git’s output?
+-------------------------------
+
+To show the output of recently run git commands, press ‘$’ (or, if that
+isn’t available, ‘M-x magit-process-buffer’).  This will show a buffer
+containing a section per git invocation; as always press ‘TAB’ to expand
+or collapse them.
+
+   By default, git’s output is only inserted into the process buffer if
+it is run for side-effects.  When the output is consumed in some way,
+also inserting it into the process buffer would be too expensive.  For
+debugging purposes, it’s possible to do so anyway by setting
+‘magit-git-debug’ to ‘t’.
+
+
+File: magit.info,  Node: How to install the gitman info manual?,  Next: How to show diffs for gpg-encrypted files?,  Prev: How to show git's output?,  Up: FAQ - How to ...?
+
+A.1.2 How to install the gitman info manual?
+--------------------------------------------
+
+Git’s manpages can be exported as an info manual called ‘gitman’.
+Magit’s own info manual links to nodes in that manual instead of the
+actual manpages because Info doesn’t support linking to manpages.
+
+   Unfortunately some distributions do not install the ‘gitman’ manual
+by default and you will have to install a separate documentation package
+to get it.
+
+   Magit patches Info adding the ability to visit links to the ‘gitman’
+Info manual by instead viewing the respective manpage.  If you prefer
+that approach, then set the value of ‘magit-view-git-manual-method’ to
+one of the supported packages ‘man’ or ‘woman’, e.g.:
+
+     (setq magit-view-git-manual-method 'man)
+
+
+File: magit.info,  Node: How to show diffs for gpg-encrypted files?,  Next: How does branching and pushing work?,  Prev: How to install the gitman info manual?,  Up: FAQ - How to ...?
+
+A.1.3 How to show diffs for gpg-encrypted files?
+------------------------------------------------
+
+Git supports showing diffs for encrypted files, but has to be told to do
+so.  Since Magit just uses Git to get the diffs, configuring Git also
+affects the diffs displayed inside Magit.
+
+     git config --global diff.gpg.textconv "gpg --no-tty --decrypt"
+     echo "*.gpg filter=gpg diff=gpg" > .gitattributes
+
+
+File: magit.info,  Node: How does branching and pushing work?,  Next: Can Magit be used as ediff-version-control-package?,  Prev: How to show diffs for gpg-encrypted files?,  Up: FAQ - How to ...?
+
+A.1.4 How does branching and pushing work?
+------------------------------------------
+
+Please see *note Branching:: and
+<http://emacsair.me/2016/01/17/magit-2.4>
+
+
+File: magit.info,  Node: Can Magit be used as ediff-version-control-package?,  Prev: How does branching and pushing work?,  Up: FAQ - How to ...?
+
+A.1.5 Can Magit be used as ‘ediff-version-control-package’?
+-----------------------------------------------------------
+
+No, it cannot.  For that to work the functions ‘ediff-magit-internal’
+and ‘ediff-magit-merge-internal’ would have to be implemented, and they
+are not.  These two functions are only used by the three commands
+‘ediff-revision’, ‘ediff-merge-revisions-with-ancestor’, and
+‘ediff-merge-revisions’.
+
+   These commands only delegate the task of populating buffers with
+certain revisions to the "internal" functions.  The equally important
+task of determining which revisions are to be compared/merged is not
+delegated.  Instead this is done without any support whatsoever from the
+version control package/system - meaning that the user has to enter the
+revisions explicitly.  Instead of implementing ‘ediff-magit-internal’ we
+provide ‘magit-ediff-compare’, which handles both tasks like it is 2005.
+
+   The other commands ‘ediff-merge-revisions’ and
+‘ediff-merge-revisions-with-ancestor’ are normally not what you want
+when using a modern version control system like Git.  Instead of letting
+the user resolve only those conflicts which Git could not resolve on its
+own, they throw away all work done by Git and then expect the user to
+manually merge all conflicts, including those that had already been
+resolved.  That made sense back in the days when version control systems
+couldn’t merge (or so I have been told), but not anymore.  Once in a
+blue moon you might actually want to see all conflicts, in which case
+you *can* use these commands, which then use ‘ediff-vc-merge-internal’.
+So we don’t actually have to implement ‘ediff-magit-merge-internal’.
+Instead we provide the more useful command ‘magit-ediff-resolve’ which
+only shows yet-to-be resolved conflicts.
+
+
+File: magit.info,  Node: FAQ - Issues and Errors,  Prev: FAQ - How to ...?,  Up: FAQ
+
+A.2 FAQ - Issues and Errors
+===========================
+
+* Menu:
+
+* Magit is slow::
+* I changed several thousand files at once and now Magit is unusable::
+* I am having problems committing::
+* I am using MS Windows and cannot push with Magit::
+* I am using OS X and SOMETHING works in shell, but not in Magit: I am using OS X and SOMETHING works in shell but not in Magit. 
+* Diffs contain control sequences::
+* Expanding a file to show the diff causes it to disappear::
+* Point is wrong in the COMMIT_EDITMSG buffer::
+* The mode-line information isn't always up-to-date::
+* A branch and tag sharing the same name breaks SOMETHING::
+* My Git hooks work on the command-line but not inside Magit::
+
+
+File: magit.info,  Node: Magit is slow,  Next: I changed several thousand files at once and now Magit is unusable,  Up: FAQ - Issues and Errors
+
+A.2.1 Magit is slow
+-------------------
+
+See *note Performance::.
+
+
+File: magit.info,  Node: I changed several thousand files at once and now Magit is unusable,  Next: I am having problems committing,  Prev: Magit is slow,  Up: FAQ - Issues and Errors
+
+A.2.2 I changed several thousand files at once and now Magit is unusable
+------------------------------------------------------------------------
+
+Magit is *currently* not expected to work under such conditions.  It
+sure would be nice if it did, and v2.5 will hopefully be a big step into
+that direction.  But it might take until v3.1 to accomplish fully
+satisfactory performance, because that requires some heavy refactoring.
+
+   But for now we recommend you use the command line to complete this
+one commit.  Also see *note Performance::.
+
+
+File: magit.info,  Node: I am having problems committing,  Next: I am using MS Windows and cannot push with Magit,  Prev: I changed several thousand files at once and now Magit is unusable,  Up: FAQ - Issues and Errors
+
+A.2.3 I am having problems committing
+-------------------------------------
+
+That likely means that Magit is having problems finding an appropriate
+emacsclient executable.  See *note (with-editor)Configuring
+With-Editor:: and *note (with-editor)Debugging::.
+
+
+File: magit.info,  Node: I am using MS Windows and cannot push with Magit,  Next: I am using OS X and SOMETHING works in shell but not in Magit,  Prev: I am having problems committing,  Up: FAQ - Issues and Errors
+
+A.2.4 I am using MS Windows and cannot push with Magit
+------------------------------------------------------
+
+It’s almost certain that Magit is only incidental to this issue.  It is
+much more likely that this is a configuration issue, even if you can
+push on the command line.
+
+   Detailed setup instructions can be found at
+<https://github.com/magit/magit/wiki/Pushing-with-Magit-from-Windows>.
+
+
+File: magit.info,  Node: I am using OS X and SOMETHING works in shell but not in Magit,  Next: Diffs contain control sequences,  Prev: I am using MS Windows and cannot push with Magit,  Up: FAQ - Issues and Errors
+
+A.2.5 I am using OS X and SOMETHING works in shell, but not in Magit
+--------------------------------------------------------------------
+
+This usually occurs because Emacs doesn’t have the same environment
+variables as your shell.  Try installing and configuring
+<https://github.com/purcell/exec-path-from-shell>.  By default it
+synchronizes ‘$PATH’, which helps Magit find the same ‘git’ as the one
+you are using on the shell.
+
+   If SOMETHING is "passphrase caching with gpg-agent for commit and/or
+tag signing", then you’ll also need to synchronize ‘$GPG_AGENT_INFO’.
+
+
+File: magit.info,  Node: Diffs contain control sequences,  Next: Expanding a file to show the diff causes it to disappear,  Prev: I am using OS X and SOMETHING works in shell but not in Magit,  Up: FAQ - Issues and Errors
+
+A.2.6 Diffs contain control sequences
+-------------------------------------
+
+This happens when you configure Git to always color diffs and/or all of
+its output.  The valid values for relevant Git variables ‘color.ui’ and
+‘color.diff’ are ‘false’, ‘true’ and ‘always’, and the default is
+‘true’.  You should leave it that because then you get colorful output
+in terminals but git’s output is consumed by something else, then no
+colors are used.
+
+   If you actually use some other tool which expects that requires that
+you force git to output control sequences (which is highly unlikely),
+then you can override these settings just for Magit by using:
+
+     (setq magit-git-global-arguments
+           (nconc magit-git-global-arguments
+                  '("-c" "color.ui=false"
+                    "-c" "color.diff=false")))
+
+
+File: magit.info,  Node: Expanding a file to show the diff causes it to disappear,  Next: Point is wrong in the COMMIT_EDITMSG buffer,  Prev: Diffs contain control sequences,  Up: FAQ - Issues and Errors
+
+A.2.7 Expanding a file to show the diff causes it to disappear
+--------------------------------------------------------------
+
+This is probably caused by a change of a ‘diff.*’ Git variable.  You
+probably set that variable for a reason, and should therefore only undo
+that setting in Magit by customizing ‘magit-git-global-arguments’.
+
+
+File: magit.info,  Node: Point is wrong in the COMMIT_EDITMSG buffer,  Next: The mode-line information isn't always up-to-date,  Prev: Expanding a file to show the diff causes it to disappear,  Up: FAQ - Issues and Errors
+
+A.2.8 Point is wrong in the ‘COMMIT_EDITMSG’ buffer
+---------------------------------------------------
+
+Neither Magit nor ‘git-commit‘ fiddle with point in the buffer used to
+write commit messages, so something else must be doing it.
+
+   You have probably globally enabled a mode which does restore point in
+file-visiting buffers.  It might be a bit surprising, but when you write
+a commit message, then you are actually editing a file.
+
+   So you have to figure out which package is doing.  ‘saveplace’,
+‘pointback’, and ‘session’ are likely candidates.  These snippets might
+help:
+
+     (setq session-name-disable-regexp "\\(?:\\`'\\.git/[A-Z_]+\\'\\)")
+
+     (with-eval-after-load 'pointback
+       (lambda ()
+         (when (or git-commit-mode git-rebase-mode)
+           (pointback-mode -1))))
+
+
+File: magit.info,  Node: The mode-line information isn't always up-to-date,  Next: A branch and tag sharing the same name breaks SOMETHING,  Prev: Point is wrong in the COMMIT_EDITMSG buffer,  Up: FAQ - Issues and Errors
+
+A.2.9 The mode-line information isn’t always up-to-date
+-------------------------------------------------------
+
+Magit is not responsible for the version control information that is
+being displayed in the mode-line and looks something like ‘Git-master’.
+The built-in "Version Control" package, also known as "VC", updates that
+information, and can be told to do so more often:
+
+     (setq auto-revert-check-vc-info t)
+
+   But doing so isn’t good for performance.  For more (overly
+optimistic) information see *note (emacs)VC Mode Line::.
+
+   If you don’t really care about seeing that information in the
+mode-line, but just don’t want to see _incorrect_ information, then
+consider disabling VC when using Git:
+
+     (setq vc-handled-backends (delq 'Git vc-handled-backends))
+
+   Or to disable it completely:
+
+     (setq vc-handled-backends nil)
+
+
+File: magit.info,  Node: A branch and tag sharing the same name breaks SOMETHING,  Next: My Git hooks work on the command-line but not inside Magit,  Prev: The mode-line information isn't always up-to-date,  Up: FAQ - Issues and Errors
+
+A.2.10 A branch and tag sharing the same name breaks SOMETHING
+--------------------------------------------------------------
+
+Or more generally, ambiguous refnames break SOMETHING.
+
+   Magit assumes that refs are named non-ambiguously across the
+"refs/heads/", "refs/tags/", and "refs/remotes/" namespaces (i.e., all
+the names remain unique when those prefixes are stripped).  We consider
+ambiguous refnames unsupported and recommend that you use a
+non-ambiguous naming scheme.  However, if you do work with a repository
+that has ambiguous refnames, please report any issues you encounter so
+that we can investigate whether there is a simple fix.
+
+
+File: magit.info,  Node: My Git hooks work on the command-line but not inside Magit,  Prev: A branch and tag sharing the same name breaks SOMETHING,  Up: FAQ - Issues and Errors
+
+A.2.11 My Git hooks work on the command-line but not inside Magit
+-----------------------------------------------------------------
+
+When Magit calls ‘git’ it adds a few global arguments including
+‘--literal-pathspecs’ and the ‘git’ process started by Magit then passes
+that setting on to other ‘git’ process it starts itself.  It does so by
+setting the environment variable ‘GIT_LITERAL_PATHSPECS’, not by calling
+subprocesses with the ‘--literal-pathspecs’.  You can therefore override
+this setting in hook scripts using ‘unset GIT_LITERAL_PATHSPECS’.
+
+
+File: magit.info,  Node: Debugging Tools,  Next: Keystroke Index,  Prev: FAQ,  Up: Top
+
+B Debugging Tools
+*****************
+
+Magit and its dependencies provide a few debugging tools, and we
+appreciate it very much if you use those tools before reporting an
+issue.  Please include all relevant output when reporting an issue.
+
+‘M-x magit-version’     (‘magit-version’)
+
+     This command shows the currently used versions of Magit, Git, and
+     Emacs in the echo area.  Non-interactively this just returns the
+     Magit version.
+
+‘M-x magit-emacs-Q-command’     (‘magit-emacs-Q-command’)
+
+     This command shows a debugging shell command in the echo area and
+     adds it to the kill ring.  Paste that command into a shell an run
+     it.
+
+     This shell command starts ‘emacs’ with only ‘magit’ and its
+     dependencies loaded.  Neither your configuration nor other
+     installed packages are loaded.  This makes it easier to determine
+     whether some issue lays with Magit or something else.
+
+     If you run Magit from its Git repository, then you should be able
+     to use ‘make emacs-Q’ instead of the output of this command.
+
+‘M-x magit-debug-git-executable’     (‘magit-debug-git-executable’)
+
+     This command displays a buffer containing information about the
+     available and used ‘git’ executable(s), and can be useful when
+     investigating ‘exec-path’ issues.
+
+     Also see *note Git Executable::.
+
+‘M-x with-editor-debug’     (‘with-editor-debug’)
+
+     This command displays a buffer containing information about the
+     available and used ‘git’ executable(s), and can be useful when
+     investigating why Magit (or rather ‘with-editor’) cannot find an
+     appropriate ‘emacsclient’ executable.
+
+     Also see *note (with-editor)Debugging::.
+
+   Please also see the *note FAQ::.
+
+
+File: magit.info,  Node: Keystroke Index,  Next: Command Index,  Prev: Debugging Tools,  Up: Top
+
+Appendix C Keystroke Index
+**************************
+
+
+* Menu:
+
+* !:                                     Running Git Manually.
+                                                              (line  12)
+* ! !:                                   Running Git Manually.
+                                                              (line  16)
+* ! a:                                   Running Git Manually.
+                                                              (line  57)
+* ! b:                                   Running Git Manually.
+                                                              (line  61)
+* ! g:                                   Running Git Manually.
+                                                              (line  65)
+* ! k:                                   Running Git Manually.
+                                                              (line  53)
+* ! p:                                   Running Git Manually.
+                                                              (line  24)
+* ! s:                                   Running Git Manually.
+                                                              (line  34)
+* ! S:                                   Running Git Manually.
+                                                              (line  39)
+* $:                                     Viewing Git Output.  (line  16)
+* %:                                     Worktree.            (line   8)
+* % b:                                   Worktree.            (line  13)
+* % c:                                   Worktree.            (line  17)
+* % g:                                   Worktree.            (line  33)
+* % k:                                   Worktree.            (line  28)
+* % p:                                   Worktree.            (line  21)
+* +:                                     Log Buffer.          (line  59)
+* + <1>:                                 Refreshing Diffs.    (line  68)
+* -:                                     Log Buffer.          (line  63)
+* - <1>:                                 Refreshing Diffs.    (line  64)
+* 0:                                     Refreshing Diffs.    (line  72)
+* 1:                                     Section Visibility.  (line  26)
+* 2:                                     Section Visibility.  (line  27)
+* 3:                                     Section Visibility.  (line  28)
+* 4:                                     Section Visibility.  (line  29)
+* =:                                     Log Buffer.          (line  53)
+* ^:                                     Section Movement.    (line  31)
+* a:                                     Applying.            (line  33)
+* A:                                     Cherry Picking.      (line   8)
+* A A:                                   Cherry Picking.      (line  16)
+* A a:                                   Cherry Picking.      (line  23)
+* A A <1>:                               Cherry Picking.      (line  89)
+* A a <1>:                               Cherry Picking.      (line  97)
+* A d:                                   Cherry Picking.      (line  53)
+* A h:                                   Cherry Picking.      (line  41)
+* A n:                                   Cherry Picking.      (line  64)
+* A s:                                   Cherry Picking.      (line  75)
+* A s <1>:                               Cherry Picking.      (line  93)
+* B:                                     Bisecting.           (line   8)
+* b:                                     Blaming.             (line  86)
+* b <1>:                                 The Branch Popup.    (line  12)
+* B B:                                   Bisecting.           (line  16)
+* B b:                                   Bisecting.           (line  31)
+* b b:                                   The Branch Popup.    (line  37)
+* b C:                                   The Branch Popup.    (line  29)
+* b c:                                   The Branch Popup.    (line  55)
+* B g:                                   Bisecting.           (line  36)
+* B k:                                   Bisecting.           (line  41)
+* b k:                                   The Branch Popup.    (line 240)
+* b l:                                   The Branch Popup.    (line  62)
+* b n:                                   The Branch Popup.    (line  45)
+* B r:                                   Bisecting.           (line  47)
+* b r:                                   The Branch Popup.    (line 246)
+* B s:                                   Bisecting.           (line  24)
+* b s:                                   The Branch Popup.    (line  85)
+* b x:                                   The Branch Popup.    (line 224)
+* b Y:                                   The Branch Popup.    (line 113)
+* b y:                                   The Branch Popup.    (line 218)
+* c:                                     Blaming.             (line 120)
+* c <1>:                                 Initiating a Commit. (line   8)
+* c <2>:                                 Editing Rebase Sequences.
+                                                              (line  72)
+* c a:                                   Initiating a Commit. (line  18)
+* c A:                                   Initiating a Commit. (line  66)
+* c c:                                   Initiating a Commit. (line  13)
+* c e:                                   Initiating a Commit. (line  22)
+* c f:                                   Initiating a Commit. (line  42)
+* c F:                                   Initiating a Commit. (line  50)
+* c s:                                   Initiating a Commit. (line  54)
+* c S:                                   Initiating a Commit. (line  62)
+* c w:                                   Initiating a Commit. (line  32)
+* C-<return>:                            Diff Buffer.         (line  48)
+* C-<tab>:                               Section Visibility.  (line  13)
+* C-c C-a:                               Editing Commit Messages.
+                                                              (line 128)
+* C-c C-b:                               Log Buffer.          (line  19)
+* C-c C-b <1>:                           Refreshing Diffs.    (line  90)
+* C-c C-c:                               Popup Buffers and Prefix Commands.
+                                                              (line  20)
+* C-c C-c <1>:                           Select from Log.     (line  20)
+* C-c C-c <2>:                           Editing Commit Messages.
+                                                              (line  19)
+* C-c C-c <3>:                           Editing Rebase Sequences.
+                                                              (line   6)
+* C-c C-d:                               Refreshing Diffs.    (line  80)
+* C-c C-d <1>:                           Editing Commit Messages.
+                                                              (line  57)
+* C-c C-e:                               Diff Buffer.         (line  74)
+* C-c C-f:                               Log Buffer.          (line  23)
+* C-c C-f <1>:                           Refreshing Diffs.    (line  94)
+* C-c C-i:                               Editing Commit Messages.
+                                                              (line 153)
+* C-c C-k:                               Select from Log.     (line  26)
+* C-c C-k <1>:                           Editing Commit Messages.
+                                                              (line  24)
+* C-c C-k <2>:                           Editing Rebase Sequences.
+                                                              (line  11)
+* C-c C-n:                               Log Buffer.          (line  27)
+* C-c C-o:                               Editing Commit Messages.
+                                                              (line 144)
+* C-c C-p:                               Editing Commit Messages.
+                                                              (line 148)
+* C-c C-r:                               Editing Commit Messages.
+                                                              (line 132)
+* C-c C-s:                               Editing Commit Messages.
+                                                              (line 136)
+* C-c C-t:                               Diff Buffer.         (line  70)
+* C-c C-t <1>:                           Editing Commit Messages.
+                                                              (line 140)
+* C-c C-w:                               Editing Commit Messages.
+                                                              (line  63)
+* C-c M-g:                               Minor Mode for Buffers Visiting Files.
+                                                              (line  19)
+* C-c M-g B:                             Minor Mode for Buffers Visiting Files.
+                                                              (line  80)
+* C-c M-g b:                             Minor Mode for Buffers Visiting Files.
+                                                              (line  86)
+* C-c M-g c:                             Minor Mode for Buffers Visiting Files.
+                                                              (line  33)
+* C-c M-g D:                             Minor Mode for Buffers Visiting Files.
+                                                              (line  39)
+* C-c M-g d:                             Minor Mode for Buffers Visiting Files.
+                                                              (line  47)
+* C-c M-g e:                             Minor Mode for Buffers Visiting Files.
+                                                              (line 102)
+* C-c M-g f:                             Minor Mode for Buffers Visiting Files.
+                                                              (line  96)
+* C-c M-g L:                             Minor Mode for Buffers Visiting Files.
+                                                              (line  57)
+* C-c M-g l:                             Minor Mode for Buffers Visiting Files.
+                                                              (line  64)
+* C-c M-g p:                             Minor Mode for Buffers Visiting Files.
+                                                              (line 112)
+* C-c M-g r:                             Minor Mode for Buffers Visiting Files.
+                                                              (line  91)
+* C-c M-g s:                             Minor Mode for Buffers Visiting Files.
+                                                              (line  24)
+* C-c M-g t:                             Minor Mode for Buffers Visiting Files.
+                                                              (line  71)
+* C-c M-g u:                             Minor Mode for Buffers Visiting Files.
+                                                              (line  28)
+* C-c M-s:                               Editing Commit Messages.
+                                                              (line  35)
+* C-w:                                   Common Commands.     (line  21)
+* C-x g:                                 Status Buffer.       (line  22)
+* C-x u:                                 Editing Rebase Sequences.
+                                                              (line  89)
+* d:                                     Diffing.             (line  20)
+* D:                                     Refreshing Diffs.    (line  11)
+* d c:                                   Diffing.             (line  67)
+* d d:                                   Diffing.             (line  25)
+* D f:                                   Refreshing Diffs.    (line  45)
+* D F:                                   Refreshing Diffs.    (line  50)
+* D g:                                   Refreshing Diffs.    (line  16)
+* d p:                                   Diffing.             (line  59)
+* d r:                                   Diffing.             (line  29)
+* D r:                                   Refreshing Diffs.    (line  40)
+* d s:                                   Diffing.             (line  49)
+* D s:                                   Refreshing Diffs.    (line  21)
+* d t:                                   Diffing.             (line  72)
+* D t:                                   Refreshing Diffs.    (line  36)
+* d u:                                   Diffing.             (line  55)
+* d w:                                   Diffing.             (line  43)
+* D w:                                   Refreshing Diffs.    (line  28)
+* DEL:                                   Log Buffer.          (line  43)
+* DEL <1>:                               Diff Buffer.         (line 103)
+* DEL <2>:                               Blaming.             (line  73)
+* DEL <3>:                               Editing Rebase Sequences.
+                                                              (line  28)
+* e:                                     Ediffing.            (line   9)
+* E:                                     Ediffing.            (line  21)
+* e <1>:                                 Editing Rebase Sequences.
+                                                              (line  55)
+* E c:                                   Ediffing.            (line  65)
+* E i:                                   Ediffing.            (line  57)
+* E m:                                   Ediffing.            (line  35)
+* E r:                                   Ediffing.            (line  26)
+* E s:                                   Ediffing.            (line  48)
+* E u:                                   Ediffing.            (line  53)
+* E w:                                   Ediffing.            (line  61)
+* E z:                                   Ediffing.            (line  69)
+* f:                                     Editing Rebase Sequences.
+                                                              (line  63)
+* f <1>:                                 Fetching.            (line  11)
+* F:                                     Pulling.             (line  11)
+* f a:                                   Fetching.            (line  38)
+* f e:                                   Fetching.            (line  24)
+* F e:                                   Pulling.             (line  24)
+* f m:                                   Fetching.            (line  42)
+* f o:                                   Fetching.            (line  28)
+* f p:                                   Fetching.            (line  16)
+* F p:                                   Pulling.             (line  16)
+* f r:                                   Fetching.            (line  33)
+* f u:                                   Fetching.            (line  20)
+* F u:                                   Pulling.             (line  20)
+* g:                                     Automatic Refreshing of Magit Buffers.
+                                                              (line  22)
+* G:                                     Automatic Refreshing of Magit Buffers.
+                                                              (line  31)
+* j:                                     Diff Buffer.         (line  93)
+* k:                                     Viewing Git Output.  (line  24)
+* k <1>:                                 Applying.            (line  40)
+* k <2>:                                 Editing Rebase Sequences.
+                                                              (line  68)
+* k <3>:                                 Stashing.            (line  95)
+* l:                                     Logging.             (line  28)
+* L:                                     Refreshing Logs.     (line  11)
+* L <1>:                                 Log Buffer.          (line   6)
+* L <2>:                                 Log Margin.          (line  47)
+* l a:                                   Logging.             (line  58)
+* l b:                                   Logging.             (line  54)
+* L d:                                   Log Margin.          (line  64)
+* L g:                                   Refreshing Logs.     (line  16)
+* l h:                                   Logging.             (line  46)
+* l H:                                   Reflog.              (line  19)
+* l l:                                   Logging.             (line  33)
+* l L:                                   Logging.             (line  50)
+* L L:                                   Log Margin.          (line  56)
+* L l:                                   Log Margin.          (line  60)
+* l o:                                   Logging.             (line  39)
+* l O:                                   Reflog.              (line  15)
+* l r:                                   Reflog.              (line  11)
+* L s:                                   Refreshing Logs.     (line  21)
+* L t:                                   Refreshing Logs.     (line  36)
+* L w:                                   Refreshing Logs.     (line  28)
+* m:                                     Merging.             (line   9)
+* M:                                     The Remote Popup.    (line  13)
+* m a:                                   Merging.             (line  44)
+* m a <1>:                               Merging.             (line  94)
+* M a:                                   The Remote Popup.    (line  35)
+* M C:                                   The Remote Popup.    (line  26)
+* m e:                                   Merging.             (line  30)
+* m i:                                   Merging.             (line  57)
+* M k:                                   The Remote Popup.    (line  50)
+* m m:                                   Merging.             (line  17)
+* m m <1>:                               Merging.             (line  88)
+* m n:                                   Merging.             (line  37)
+* m p:                                   Merging.             (line  80)
+* M p:                                   The Remote Popup.    (line  54)
+* M P:                                   The Remote Popup.    (line  59)
+* M r:                                   The Remote Popup.    (line  40)
+* m s:                                   Merging.             (line  71)
+* M u:                                   The Remote Popup.    (line  45)
+* M-1:                                   Section Visibility.  (line  33)
+* M-2:                                   Section Visibility.  (line  34)
+* M-3:                                   Section Visibility.  (line  35)
+* M-4:                                   Section Visibility.  (line  36)
+* M-<tab>:                               Section Visibility.  (line  17)
+* M-n:                                   Section Movement.    (line  26)
+* M-n <1>:                               Editing Commit Messages.
+                                                              (line  45)
+* M-n <2>:                               Editing Rebase Sequences.
+                                                              (line  47)
+* M-p:                                   Section Movement.    (line  20)
+* M-p <1>:                               Editing Commit Messages.
+                                                              (line  39)
+* M-p <2>:                               Editing Rebase Sequences.
+                                                              (line  43)
+* M-w:                                   Blaming.             (line 112)
+* M-w <1>:                               Common Commands.     (line  10)
+* M-x magit-clone:                       Repository Setup.    (line  16)
+* M-x magit-debug-git-executable:        Git Executable.      (line  45)
+* M-x magit-debug-git-executable <1>:    Debugging Tools.     (line  30)
+* M-x magit-describe-section:            Section Types and Values.
+                                                              (line  13)
+* M-x magit-describe-section <1>:        Matching Sections.   (line   6)
+* M-x magit-emacs-Q-command:             Debugging Tools.     (line  16)
+* M-x magit-find-file:                   Visiting Blobs.      (line   6)
+* M-x magit-find-file-other-window:      Visiting Blobs.      (line  11)
+* M-x magit-init:                        Repository Setup.    (line   6)
+* M-x magit-reset-index:                 Staging and Unstaging.
+                                                              (line  87)
+* M-x magit-reverse-in-index:            Staging and Unstaging.
+                                                              (line  62)
+* M-x magit-stage-file:                  Staging from File-Visiting Buffers.
+                                                              (line  10)
+* M-x magit-toggle-buffer-lock:          Modes and Buffers.   (line  17)
+* M-x magit-unstage-file:                Staging from File-Visiting Buffers.
+                                                              (line  18)
+* M-x magit-version:                     Git Executable.      (line  17)
+* M-x magit-version <1>:                 Debugging Tools.     (line  10)
+* M-x magit-wip-commit:                  Wip Modes.           (line 129)
+* M-x with-editor-debug:                 Debugging Tools.     (line  38)
+* n:                                     Section Movement.    (line  16)
+* n <1>:                                 Blaming.             (line  91)
+* N:                                     Blaming.             (line  95)
+* n <2>:                                 Editing Rebase Sequences.
+                                                              (line  39)
+* n <3>:                                 Minor Mode for Buffers Visiting Blobs.
+                                                              (line  16)
+* o:                                     Submodule Popup.     (line   6)
+* O:                                     Subtree.             (line   8)
+* o a:                                   Submodule Popup.     (line  19)
+* O a:                                   Subtree.             (line  20)
+* O c:                                   Subtree.             (line  24)
+* o d:                                   Submodule Popup.     (line  49)
+* o f:                                   Submodule Popup.     (line  57)
+* O f:                                   Subtree.             (line  32)
+* o l:                                   Submodule Popup.     (line  53)
+* O m:                                   Subtree.             (line  28)
+* o p:                                   Submodule Popup.     (line  33)
+* O p:                                   Subtree.             (line  36)
+* o r:                                   Submodule Popup.     (line  26)
+* o s:                                   Submodule Popup.     (line  43)
+* O s:                                   Subtree.             (line  41)
+* o u:                                   Submodule Popup.     (line  38)
+* p:                                     Section Movement.    (line  10)
+* p <1>:                                 Blaming.             (line  99)
+* P:                                     Blaming.             (line 103)
+* p <2>:                                 Editing Rebase Sequences.
+                                                              (line  35)
+* P <1>:                                 Pushing.             (line  11)
+* p <3>:                                 Minor Mode for Buffers Visiting Blobs.
+                                                              (line  12)
+* P e:                                   Pushing.             (line  35)
+* P m:                                   Pushing.             (line  53)
+* P o:                                   Pushing.             (line  39)
+* P p:                                   Pushing.             (line  16)
+* P r:                                   Pushing.             (line  44)
+* P t:                                   Pushing.             (line  59)
+* P T:                                   Pushing.             (line  65)
+* P u:                                   Pushing.             (line  26)
+* q:                                     Quitting Windows.    (line   6)
+* q <1>:                                 Log Buffer.          (line  12)
+* q <2>:                                 Blaming.             (line 107)
+* q <3>:                                 Minor Mode for Buffers Visiting Blobs.
+                                                              (line  20)
+* r:                                     Rebasing.            (line   9)
+* r <1>:                                 Editing Rebase Sequences.
+                                                              (line  51)
+* r a:                                   Rebasing.            (line 107)
+* r e:                                   Rebasing.            (line  33)
+* r e <1>:                               Rebasing.            (line 103)
+* r f:                                   Rebasing.            (line  73)
+* r i:                                   Rebasing.            (line  69)
+* r k:                                   Rebasing.            (line  85)
+* r m:                                   Rebasing.            (line  77)
+* r p:                                   Rebasing.            (line  24)
+* r r:                                   Rebasing.            (line  92)
+* r s:                                   Rebasing.            (line  39)
+* r s <1>:                               Rebasing.            (line  99)
+* r u:                                   Rebasing.            (line  29)
+* r w:                                   Rebasing.            (line  81)
+* RET:                                   Diff Buffer.         (line   8)
+* RET <1>:                               References Buffer.   (line 166)
+* RET <2>:                               Blaming.             (line  59)
+* RET <3>:                               Editing Rebase Sequences.
+                                                              (line  16)
+* s:                                     Staging and Unstaging.
+                                                              (line  28)
+* S:                                     Staging and Unstaging.
+                                                              (line  36)
+* s <1>:                                 Editing Rebase Sequences.
+                                                              (line  59)
+* S-<tab>:                               Section Visibility.  (line  22)
+* SPC:                                   Log Buffer.          (line  33)
+* SPC <1>:                               Diff Buffer.         (line  99)
+* SPC <2>:                               Blaming.             (line  63)
+* SPC <3>:                               Editing Rebase Sequences.
+                                                              (line  21)
+* t:                                     Tagging.             (line   8)
+* T:                                     Notes.               (line   8)
+* T a:                                   Notes.               (line  51)
+* T c:                                   Notes.               (line  46)
+* t k:                                   Tagging.             (line  18)
+* T m:                                   Notes.               (line  37)
+* t p:                                   Tagging.             (line  24)
+* T p:                                   Notes.               (line  29)
+* T r:                                   Notes.               (line  21)
+* t t:                                   Tagging.             (line  13)
+* T T:                                   Notes.               (line  13)
+* TAB:                                   Section Visibility.  (line   9)
+* u:                                     Staging and Unstaging.
+                                                              (line  43)
+* U:                                     Staging and Unstaging.
+                                                              (line  52)
+* v:                                     Applying.            (line  44)
+* V:                                     Reverting.           (line   6)
+* V A:                                   Reverting.           (line  30)
+* V a:                                   Reverting.           (line  38)
+* V s:                                   Reverting.           (line  34)
+* V V:                                   Reverting.           (line  14)
+* V v:                                   Reverting.           (line  20)
+* W:                                     Creating and Sending Patches.
+                                                              (line   6)
+* w:                                     Applying Patches.    (line   8)
+* w a:                                   Applying Patches.    (line  34)
+* w a <1>:                               Applying Patches.    (line  42)
+* w a a:                                 Applying Patches.    (line  47)
+* w m:                                   Applying Patches.    (line  19)
+* W p:                                   Creating and Sending Patches.
+                                                              (line  11)
+* W r:                                   Creating and Sending Patches.
+                                                              (line  17)
+* w s:                                   Applying Patches.    (line  30)
+* w w:                                   Applying Patches.    (line  13)
+* w w <1>:                               Applying Patches.    (line  26)
+* x:                                     Editing Rebase Sequences.
+                                                              (line  76)
+* x <1>:                                 Resetting.           (line   8)
+* X f:                                   Resetting.           (line  37)
+* X h:                                   Resetting.           (line  25)
+* X i:                                   Resetting.           (line  30)
+* X m:                                   Resetting.           (line  14)
+* X s:                                   Resetting.           (line  19)
+* Y:                                     Cherries.            (line  17)
+* y:                                     References Buffer.   (line   6)
+* y <1>:                                 Editing Rebase Sequences.
+                                                              (line  85)
+* y c:                                   References Buffer.   (line  19)
+* y o:                                   References Buffer.   (line  24)
+* y y:                                   References Buffer.   (line  14)
+* z:                                     Stashing.            (line   8)
+* z a:                                   Stashing.            (line  58)
+* z b:                                   Stashing.            (line  80)
+* z B:                                   Stashing.            (line  85)
+* z f:                                   Stashing.            (line  91)
+* z i:                                   Stashing.            (line  20)
+* z I:                                   Stashing.            (line  46)
+* z k:                                   Stashing.            (line  71)
+* z l:                                   Stashing.            (line  99)
+* z p:                                   Stashing.            (line  64)
+* z v:                                   Stashing.            (line  76)
+* z w:                                   Stashing.            (line  25)
+* z W:                                   Stashing.            (line  51)
+* z x:                                   Stashing.            (line  32)
+* z z:                                   Stashing.            (line  13)
+* z Z:                                   Stashing.            (line  39)
+
+
+File: magit.info,  Node: Command Index,  Next: Function Index,  Prev: Keystroke Index,  Up: Top
+
+Appendix D Command Index
+************************
+
+
+* Menu:
+
+* auto-revert-mode:                      Automatic Reverting of File-Visiting Buffers.
+                                                              (line  62)
+* forward-line:                          Editing Rebase Sequences.
+                                                              (line  39)
+* git-commit-ack:                        Editing Commit Messages.
+                                                              (line 128)
+* git-commit-cc:                         Editing Commit Messages.
+                                                              (line 144)
+* git-commit-next-message:               Editing Commit Messages.
+                                                              (line  45)
+* git-commit-prev-message:               Editing Commit Messages.
+                                                              (line  39)
+* git-commit-reported:                   Editing Commit Messages.
+                                                              (line 148)
+* git-commit-review:                     Editing Commit Messages.
+                                                              (line 132)
+* git-commit-save-message:               Editing Commit Messages.
+                                                              (line  35)
+* git-commit-signoff:                    Editing Commit Messages.
+                                                              (line 136)
+* git-commit-suggested:                  Editing Commit Messages.
+                                                              (line 153)
+* git-commit-test:                       Editing Commit Messages.
+                                                              (line 140)
+* git-rebase-backward-line:              Editing Rebase Sequences.
+                                                              (line  35)
+* git-rebase-edit:                       Editing Rebase Sequences.
+                                                              (line  55)
+* git-rebase-exec:                       Editing Rebase Sequences.
+                                                              (line  76)
+* git-rebase-fixup:                      Editing Rebase Sequences.
+                                                              (line  63)
+* git-rebase-insert:                     Editing Rebase Sequences.
+                                                              (line  85)
+* git-rebase-kill-line:                  Editing Rebase Sequences.
+                                                              (line  68)
+* git-rebase-move-line-down:             Editing Rebase Sequences.
+                                                              (line  47)
+* git-rebase-move-line-up:               Editing Rebase Sequences.
+                                                              (line  43)
+* git-rebase-pick:                       Editing Rebase Sequences.
+                                                              (line  72)
+* git-rebase-reword:                     Editing Rebase Sequences.
+                                                              (line  51)
+* git-rebase-show-commit:                Editing Rebase Sequences.
+                                                              (line  16)
+* git-rebase-show-or-scroll-down:        Editing Rebase Sequences.
+                                                              (line  28)
+* git-rebase-show-or-scroll-up:          Editing Rebase Sequences.
+                                                              (line  21)
+* git-rebase-squash:                     Editing Rebase Sequences.
+                                                              (line  59)
+* git-rebase-undo:                       Editing Rebase Sequences.
+                                                              (line  89)
+* ido-enter-magit-status:                Status Buffer.       (line  47)
+* magit-am-abort:                        Applying Patches.    (line  34)
+* magit-am-apply-maildir:                Applying Patches.    (line  19)
+* magit-am-apply-patches:                Applying Patches.    (line  13)
+* magit-am-continue:                     Applying Patches.    (line  26)
+* magit-am-popup:                        Applying Patches.    (line   8)
+* magit-am-skip:                         Applying Patches.    (line  30)
+* magit-apply:                           Applying.            (line  33)
+* magit-bisect-bad:                      Bisecting.           (line  31)
+* magit-bisect-good:                     Bisecting.           (line  36)
+* magit-bisect-popup:                    Bisecting.           (line   8)
+* magit-bisect-reset:                    Bisecting.           (line  47)
+* magit-bisect-run:                      Bisecting.           (line  24)
+* magit-bisect-skip:                     Bisecting.           (line  41)
+* magit-bisect-start:                    Bisecting.           (line  16)
+* magit-blame:                           Blaming.             (line  17)
+* magit-blame <1>:                       Minor Mode for Buffers Visiting Files.
+                                                              (line  86)
+* magit-blame-copy-hash:                 Blaming.             (line 112)
+* magit-blame-cycle-style:               Blaming.             (line 120)
+* magit-blame-echo:                      Blaming.             (line  32)
+* magit-blame-next-chunk:                Blaming.             (line  91)
+* magit-blame-next-chunk-same-commit:    Blaming.             (line  95)
+* magit-blame-popup:                     Blaming.             (line  86)
+* magit-blame-popup <1>:                 Minor Mode for Buffers Visiting Files.
+                                                              (line  80)
+* magit-blame-previous-chunk:            Blaming.             (line  99)
+* magit-blame-previous-chunk-same-commit: Blaming.            (line 103)
+* magit-blame-quit:                      Blaming.             (line 107)
+* magit-blame-removal:                   Blaming.             (line  38)
+* magit-blame-removal <1>:               Minor Mode for Buffers Visiting Files.
+                                                              (line  91)
+* magit-blame-reverse:                   Blaming.             (line  46)
+* magit-blame-reverse <1>:               Minor Mode for Buffers Visiting Files.
+                                                              (line  96)
+* magit-blob-next:                       Minor Mode for Buffers Visiting Blobs.
+                                                              (line  16)
+* magit-blob-previous:                   Minor Mode for Buffers Visiting Files.
+                                                              (line 112)
+* magit-blob-previous <1>:               Minor Mode for Buffers Visiting Blobs.
+                                                              (line  12)
+* magit-branch:                          The Branch Popup.    (line  45)
+* magit-branch-and-checkout:             The Branch Popup.    (line  55)
+* magit-branch-checkout:                 The Branch Popup.    (line  62)
+* magit-branch-config-popup:             The Branch Popup.    (line  29)
+* magit-branch-config-popup <1>:         The Branch Config Popup.
+                                                              (line   6)
+* magit-branch-delete:                   The Branch Popup.    (line 240)
+* magit-branch-or-checkout:              The Branch Popup.    (line 350)
+* magit-branch-orphan:                   The Branch Popup.    (line 345)
+* magit-branch-popup:                    The Branch Popup.    (line  12)
+* magit-branch-pull-request:             The Branch Popup.    (line 113)
+* magit-branch-rename:                   The Branch Popup.    (line 246)
+* magit-branch-reset:                    The Branch Popup.    (line 224)
+* magit-branch-shelve:                   Auxillary Branch Commands.
+                                                              (line   8)
+* magit-branch-spinoff:                  The Branch Popup.    (line  85)
+* magit-branch-unshelve:                 Auxillary Branch Commands.
+                                                              (line  19)
+* magit-checkout:                        The Branch Popup.    (line  37)
+* magit-checkout-pull-request:           The Branch Popup.    (line 218)
+* magit-cherry:                          Cherries.            (line  17)
+* magit-cherry-apply:                    Cherry Picking.      (line  23)
+* magit-cherry-donate:                   Cherry Picking.      (line  53)
+* magit-cherry-harvest:                  Cherry Picking.      (line  41)
+* magit-cherry-pick:                     Cherry Picking.      (line  16)
+* magit-cherry-pick-popup:               Cherry Picking.      (line   8)
+* magit-cherry-spinoff:                  Cherry Picking.      (line  75)
+* magit-cherry-spinout:                  Cherry Picking.      (line  64)
+* magit-clone:                           Repository Setup.    (line  16)
+* magit-commit:                          Initiating a Commit. (line  13)
+* magit-commit-amend:                    Initiating a Commit. (line  18)
+* magit-commit-augment:                  Initiating a Commit. (line  66)
+* magit-commit-extend:                   Initiating a Commit. (line  22)
+* magit-commit-fixup:                    Initiating a Commit. (line  42)
+* magit-commit-instant-fixup:            Initiating a Commit. (line  50)
+* magit-commit-instant-squash:           Initiating a Commit. (line  62)
+* magit-commit-popup:                    Initiating a Commit. (line   8)
+* magit-commit-popup <1>:                Minor Mode for Buffers Visiting Files.
+                                                              (line  33)
+* magit-commit-reword:                   Initiating a Commit. (line  32)
+* magit-commit-squash:                   Initiating a Commit. (line  54)
+* magit-copy-buffer-revision:            Common Commands.     (line  21)
+* magit-copy-section-value:              Common Commands.     (line  10)
+* magit-cycle-margin-style:              Log Margin.          (line  60)
+* magit-debug-git-executable:            Git Executable.      (line  45)
+* magit-debug-git-executable <1>:        Debugging Tools.     (line  30)
+* magit-describe-section:                Section Types and Values.
+                                                              (line  13)
+* magit-describe-section <1>:            Matching Sections.   (line   6)
+* magit-diff:                            Diffing.             (line  29)
+* magit-diff-buffer-file:                Minor Mode for Buffers Visiting Files.
+                                                              (line  47)
+* magit-diff-buffer-file-popup:          Minor Mode for Buffers Visiting Files.
+                                                              (line  39)
+* magit-diff-default-context:            Refreshing Diffs.    (line  72)
+* magit-diff-dwim:                       Diffing.             (line  25)
+* magit-diff-edit-hunk-commit:           Diff Buffer.         (line  74)
+* magit-diff-flip-revs:                  Refreshing Diffs.    (line  45)
+* magit-diff-less-context:               Refreshing Diffs.    (line  64)
+* magit-diff-more-context:               Refreshing Diffs.    (line  68)
+* magit-diff-paths:                      Diffing.             (line  59)
+* magit-diff-popup:                      Diffing.             (line  20)
+* magit-diff-refresh:                    Refreshing Diffs.    (line  16)
+* magit-diff-refresh-popup:              Refreshing Diffs.    (line  11)
+* magit-diff-save-default-arguments:     Refreshing Diffs.    (line  28)
+* magit-diff-set-default-arguments:      Refreshing Diffs.    (line  21)
+* magit-diff-show-or-scroll-down:        Log Buffer.          (line  43)
+* magit-diff-show-or-scroll-down <1>:    Blaming.             (line  73)
+* magit-diff-show-or-scroll-up:          Log Buffer.          (line  33)
+* magit-diff-show-or-scroll-up <1>:      Blaming.             (line  63)
+* magit-diff-staged:                     Diffing.             (line  49)
+* magit-diff-switch-range-type:          Refreshing Diffs.    (line  40)
+* magit-diff-toggle-file-filter:         Refreshing Diffs.    (line  50)
+* magit-diff-toggle-refine-hunk:         Refreshing Diffs.    (line  36)
+* magit-diff-trace-definition:           Diff Buffer.         (line  70)
+* magit-diff-unstaged:                   Diffing.             (line  55)
+* magit-diff-visit-file:                 Diff Buffer.         (line   8)
+* magit-diff-visit-file-other-window:    Diff Buffer.         (line  65)
+* magit-diff-visit-file-worktree:        Diff Buffer.         (line  48)
+* magit-diff-while-committing:           Refreshing Diffs.    (line  80)
+* magit-diff-while-committing <1>:       Editing Commit Messages.
+                                                              (line  57)
+* magit-diff-working-tree:               Diffing.             (line  43)
+* magit-discard:                         Applying.            (line  40)
+* magit-dispatch-popup:                  Popup Buffers and Prefix Commands.
+                                                              (line  20)
+* magit-ediff-compare:                   Ediffing.            (line  26)
+* magit-ediff-dwim:                      Ediffing.            (line   9)
+* magit-ediff-popup:                     Ediffing.            (line  21)
+* magit-ediff-resolve:                   Ediffing.            (line  35)
+* magit-ediff-show-commit:               Ediffing.            (line  65)
+* magit-ediff-show-staged:               Ediffing.            (line  57)
+* magit-ediff-show-stash:                Ediffing.            (line  69)
+* magit-ediff-show-unstaged:             Ediffing.            (line  53)
+* magit-ediff-show-working-tree:         Ediffing.            (line  61)
+* magit-ediff-stage:                     Ediffing.            (line  48)
+* magit-edit-line-commit:                Minor Mode for Buffers Visiting Files.
+                                                              (line 102)
+* magit-emacs-Q-command:                 Debugging Tools.     (line  16)
+* magit-fetch:                           Fetching.            (line  24)
+* magit-fetch-all:                       Fetching.            (line  38)
+* magit-fetch-branch:                    Fetching.            (line  28)
+* magit-fetch-from-pushremote:           Fetching.            (line  16)
+* magit-fetch-from-upstream:             Fetching.            (line  20)
+* magit-fetch-modules:                   Submodule Popup.     (line  57)
+* magit-fetch-popup:                     Fetching.            (line  11)
+* magit-fetch-refspec:                   Fetching.            (line  33)
+* magit-file-checkout:                   Resetting.           (line  37)
+* magit-file-checkout <1>:               Minor Mode for Buffers Visiting Files.
+                                                              (line 131)
+* magit-file-delete:                     Minor Mode for Buffers Visiting Files.
+                                                              (line 123)
+* magit-file-popup:                      Minor Mode for Buffers Visiting Files.
+                                                              (line  19)
+* magit-file-rename:                     Minor Mode for Buffers Visiting Files.
+                                                              (line 119)
+* magit-file-untrack:                    Minor Mode for Buffers Visiting Files.
+                                                              (line 127)
+* magit-find-file:                       Visiting Blobs.      (line   6)
+* magit-find-file-other-window:          Visiting Blobs.      (line  11)
+* magit-format-patch:                    Creating and Sending Patches.
+                                                              (line  11)
+* magit-git-command:                     Running Git Manually.
+                                                              (line  24)
+* magit-git-command-topdir:              Running Git Manually.
+                                                              (line  16)
+* magit-go-backward:                     Log Buffer.          (line  19)
+* magit-go-backward <1>:                 Refreshing Diffs.    (line  90)
+* magit-go-forward:                      Log Buffer.          (line  23)
+* magit-go-forward <1>:                  Refreshing Diffs.    (line  94)
+* magit-init:                            Repository Setup.    (line   6)
+* magit-jump-to-diffstat-or-diff:        Diff Buffer.         (line  93)
+* magit-kill-this-buffer:                Minor Mode for Buffers Visiting Blobs.
+                                                              (line  20)
+* magit-list-repositories:               Repository List.     (line   6)
+* magit-list-submodules:                 Listing Submodules.  (line  13)
+* magit-list-submodules <1>:             Submodule Popup.     (line  53)
+* magit-log:                             Logging.             (line  39)
+* magit-log-all:                         Logging.             (line  58)
+* magit-log-all-branches:                Logging.             (line  54)
+* magit-log-branches:                    Logging.             (line  50)
+* magit-log-buffer-file:                 Minor Mode for Buffers Visiting Files.
+                                                              (line  64)
+* magit-log-buffer-file-popup:           Minor Mode for Buffers Visiting Files.
+                                                              (line  57)
+* magit-log-bury-buffer:                 Log Buffer.          (line  12)
+* magit-log-current:                     Logging.             (line  33)
+* magit-log-double-commit-limit:         Log Buffer.          (line  59)
+* magit-log-half-commit-limit:           Log Buffer.          (line  63)
+* magit-log-head:                        Logging.             (line  46)
+* magit-log-move-to-parent:              Log Buffer.          (line  27)
+* magit-log-popup:                       Logging.             (line  28)
+* magit-log-refresh:                     Refreshing Logs.     (line  16)
+* magit-log-refresh-popup:               Refreshing Logs.     (line  11)
+* magit-log-refresh-popup <1>:           Log Buffer.          (line   6)
+* magit-log-save-default-arguments:      Refreshing Logs.     (line  28)
+* magit-log-select-pick:                 Select from Log.     (line  20)
+* magit-log-select-quit:                 Select from Log.     (line  26)
+* magit-log-set-default-arguments:       Refreshing Logs.     (line  21)
+* magit-log-toggle-commit-limit:         Log Buffer.          (line  53)
+* magit-log-trace-definition:            Minor Mode for Buffers Visiting Files.
+                                                              (line  71)
+* magit-margin-popup:                    Log Margin.          (line  47)
+* magit-merge:                           Merging.             (line  17)
+* magit-merge <1>:                       Merging.             (line  88)
+* magit-merge-abort:                     Merging.             (line  94)
+* magit-merge-absorb:                    Merging.             (line  44)
+* magit-merge-editmsg:                   Merging.             (line  30)
+* magit-merge-into:                      Merging.             (line  57)
+* magit-merge-nocommit:                  Merging.             (line  37)
+* magit-merge-popup:                     Merging.             (line   9)
+* magit-merge-preview:                   Merging.             (line  80)
+* magit-merge-squash:                    Merging.             (line  71)
+* magit-mode-bury-buffer:                Quitting Windows.    (line   6)
+* magit-notes-edit:                      Notes.               (line  13)
+* magit-notes-merge:                     Notes.               (line  37)
+* magit-notes-merge-abort:               Notes.               (line  51)
+* magit-notes-merge-commit:              Notes.               (line  46)
+* magit-notes-popup:                     Notes.               (line   8)
+* magit-notes-prune:                     Notes.               (line  29)
+* magit-notes-remove:                    Notes.               (line  21)
+* magit-patch-apply:                     Applying Patches.    (line  47)
+* magit-patch-apply-popup:               Applying Patches.    (line  42)
+* magit-patch-popup:                     Creating and Sending Patches.
+                                                              (line   6)
+* magit-pop-revision-stack:              Editing Commit Messages.
+                                                              (line  63)
+* magit-process:                         Viewing Git Output.  (line  16)
+* magit-process-kill:                    Viewing Git Output.  (line  24)
+* magit-pull:                            Pulling.             (line  24)
+* magit-pull-from-pushremote:            Pulling.             (line  16)
+* magit-pull-from-upstream:              Pulling.             (line  20)
+* magit-pull-popup:                      Pulling.             (line  11)
+* magit-push:                            Pushing.             (line  39)
+* magit-push-current:                    Pushing.             (line  35)
+* magit-push-current-to-pushremote:      Pushing.             (line  16)
+* magit-push-current-to-upstream:        Pushing.             (line  26)
+* magit-push-implicitly args:            Pushing.             (line  73)
+* magit-push-matching:                   Pushing.             (line  53)
+* magit-push-popup:                      Pushing.             (line  11)
+* magit-push-refspecs:                   Pushing.             (line  44)
+* magit-push-tag:                        Pushing.             (line  65)
+* magit-push-tags:                       Pushing.             (line  59)
+* magit-push-to-remote remote args:      Pushing.             (line  84)
+* magit-rebase:                          Rebasing.            (line  33)
+* magit-rebase-abort:                    Rebasing.            (line 107)
+* magit-rebase-autosquash:               Rebasing.            (line  73)
+* magit-rebase-continue:                 Rebasing.            (line  92)
+* magit-rebase-edit:                     Rebasing.            (line 103)
+* magit-rebase-edit-commit:              Rebasing.            (line  77)
+* magit-rebase-interactive:              Rebasing.            (line  69)
+* magit-rebase-onto-pushremote:          Rebasing.            (line  24)
+* magit-rebase-onto-upstream:            Rebasing.            (line  29)
+* magit-rebase-popup:                    Rebasing.            (line   9)
+* magit-rebase-remove-commit:            Rebasing.            (line  85)
+* magit-rebase-reword-commit:            Rebasing.            (line  81)
+* magit-rebase-skip:                     Rebasing.            (line  99)
+* magit-rebase-subset:                   Rebasing.            (line  39)
+* magit-reflog-current:                  Reflog.              (line  11)
+* magit-reflog-head:                     Reflog.              (line  19)
+* magit-reflog-other:                    Reflog.              (line  15)
+* magit-refresh:                         Automatic Refreshing of Magit Buffers.
+                                                              (line  22)
+* magit-refresh-all:                     Automatic Refreshing of Magit Buffers.
+                                                              (line  31)
+* magit-remote-add:                      The Remote Popup.    (line  35)
+* magit-remote-config-popup:             The Remote Popup.    (line  26)
+* magit-remote-config-popup <1>:         The Remote Config Popup.
+                                                              (line   6)
+* magit-remote-popup:                    The Remote Popup.    (line  13)
+* magit-remote-prune:                    The Remote Popup.    (line  54)
+* magit-remote-prune-refspecs:           The Remote Popup.    (line  59)
+* magit-remote-remove:                   The Remote Popup.    (line  50)
+* magit-remote-rename:                   The Remote Popup.    (line  40)
+* magit-remote-set-url:                  The Remote Popup.    (line  45)
+* magit-request-pull:                    Creating and Sending Patches.
+                                                              (line  17)
+* magit-reset:                           Resetting.           (line   8)
+* magit-reset-hard:                      Resetting.           (line  25)
+* magit-reset-head:                      Resetting.           (line  14)
+* magit-reset-index:                     Staging and Unstaging.
+                                                              (line  87)
+* magit-reset-index <1>:                 Resetting.           (line  30)
+* magit-reset-soft:                      Resetting.           (line  19)
+* magit-reverse:                         Applying.            (line  44)
+* magit-reverse-in-index:                Staging and Unstaging.
+                                                              (line  62)
+* magit-revert:                          Reverting.           (line  14)
+* magit-revert-no-commit:                Reverting.           (line  20)
+* magit-revert-popup:                    Reverting.           (line   6)
+* magit-run-git-gui:                     Running Git Manually.
+                                                              (line  65)
+* magit-run-gitk:                        Running Git Manually.
+                                                              (line  53)
+* magit-run-gitk-all:                    Running Git Manually.
+                                                              (line  57)
+* magit-run-gitk-branches:               Running Git Manually.
+                                                              (line  61)
+* magit-run-popup:                       Running Git Manually.
+                                                              (line  12)
+* magit-section-backward:                Section Movement.    (line  10)
+* magit-section-backward-siblings:       Section Movement.    (line  20)
+* magit-section-cycle:                   Section Visibility.  (line  13)
+* magit-section-cycle-diffs:             Section Visibility.  (line  17)
+* magit-section-cycle-global:            Section Visibility.  (line  22)
+* magit-section-forward:                 Section Movement.    (line  16)
+* magit-section-forward-siblings:        Section Movement.    (line  26)
+* magit-section-hide:                    Section Visibility.  (line  49)
+* magit-section-hide-children:           Section Visibility.  (line  64)
+* magit-section-show:                    Section Visibility.  (line  45)
+* magit-section-show-children:           Section Visibility.  (line  58)
+* magit-section-show-headings:           Section Visibility.  (line  53)
+* magit-section-show-level-1:            Section Visibility.  (line  26)
+* magit-section-show-level-1-all:        Section Visibility.  (line  33)
+* magit-section-show-level-2:            Section Visibility.  (line  27)
+* magit-section-show-level-2-all:        Section Visibility.  (line  34)
+* magit-section-show-level-3:            Section Visibility.  (line  28)
+* magit-section-show-level-3-all:        Section Visibility.  (line  35)
+* magit-section-show-level-4:            Section Visibility.  (line  29)
+* magit-section-show-level-4-all:        Section Visibility.  (line  36)
+* magit-section-toggle:                  Section Visibility.  (line   9)
+* magit-section-toggle-children:         Section Visibility.  (line  68)
+* magit-section-up:                      Section Movement.    (line  31)
+* magit-sequence-abort:                  Cherry Picking.      (line  97)
+* magit-sequence-abort <1>:              Reverting.           (line  38)
+* magit-sequence-continue:               Cherry Picking.      (line  89)
+* magit-sequence-continue <1>:           Reverting.           (line  30)
+* magit-sequence-skip:                   Cherry Picking.      (line  93)
+* magit-sequence-skip <1>:               Reverting.           (line  34)
+* magit-shell-command:                   Running Git Manually.
+                                                              (line  39)
+* magit-shell-command-topdir:            Running Git Manually.
+                                                              (line  34)
+* magit-show-commit:                     Diffing.             (line  67)
+* magit-show-commit <1>:                 Blaming.             (line  59)
+* magit-show-refs:                       References Buffer.   (line  24)
+* magit-show-refs-current:               References Buffer.   (line  19)
+* magit-show-refs-head:                  References Buffer.   (line  14)
+* magit-show-refs-popup:                 References Buffer.   (line   6)
+* magit-snapshot:                        Stashing.            (line  39)
+* magit-snapshot-index:                  Stashing.            (line  46)
+* magit-snapshot-worktree:               Stashing.            (line  51)
+* magit-stage:                           Staging and Unstaging.
+                                                              (line  28)
+* magit-stage-file:                      Staging from File-Visiting Buffers.
+                                                              (line  10)
+* magit-stage-file <1>:                  Minor Mode for Buffers Visiting Files.
+                                                              (line  24)
+* magit-stage-modified:                  Staging and Unstaging.
+                                                              (line  36)
+* magit-stash:                           Stashing.            (line  13)
+* magit-stash-apply:                     Stashing.            (line  58)
+* magit-stash-branch:                    Stashing.            (line  80)
+* magit-stash-branch-here:               Stashing.            (line  85)
+* magit-stash-clear:                     Stashing.            (line  95)
+* magit-stash-drop:                      Stashing.            (line  71)
+* magit-stash-format-patch:              Stashing.            (line  91)
+* magit-stash-index:                     Stashing.            (line  20)
+* magit-stash-keep-index:                Stashing.            (line  32)
+* magit-stash-list:                      Stashing.            (line  99)
+* magit-stash-pop:                       Stashing.            (line  64)
+* magit-stash-popup:                     Stashing.            (line   8)
+* magit-stash-show:                      Diffing.             (line  72)
+* magit-stash-show <1>:                  Stashing.            (line  76)
+* magit-stash-worktree:                  Stashing.            (line  25)
+* magit-status:                          Status Buffer.       (line  22)
+* magit-submodule-add:                   Submodule Popup.     (line  19)
+* magit-submodule-fetch:                 Fetching.            (line  42)
+* magit-submodule-populate:              Submodule Popup.     (line  33)
+* magit-submodule-popup:                 Submodule Popup.     (line   6)
+* magit-submodule-register:              Submodule Popup.     (line  26)
+* magit-submodule-synchronize:           Submodule Popup.     (line  43)
+* magit-submodule-unpopulate:            Submodule Popup.     (line  49)
+* magit-submodule-update:                Submodule Popup.     (line  38)
+* magit-subtree-add:                     Subtree.             (line  20)
+* magit-subtree-add-commit:              Subtree.             (line  24)
+* magit-subtree-merge:                   Subtree.             (line  28)
+* magit-subtree-pull:                    Subtree.             (line  32)
+* magit-subtree-push:                    Subtree.             (line  36)
+* magit-subtree-split:                   Subtree.             (line  41)
+* magit-tag:                             Tagging.             (line  13)
+* magit-tag-delete:                      Tagging.             (line  18)
+* magit-tag-popup:                       Tagging.             (line   8)
+* magit-tag-prune:                       Tagging.             (line  24)
+* magit-tag-release:                     Tagging.             (line  28)
+* magit-toggle-buffer-lock:              Modes and Buffers.   (line  17)
+* magit-toggle-margin:                   Refreshing Logs.     (line  36)
+* magit-toggle-margin <1>:               Log Margin.          (line  56)
+* magit-toggle-margin-details:           Log Margin.          (line  64)
+* magit-tree-popup:                      Subtree.             (line   8)
+* magit-unstage:                         Staging and Unstaging.
+                                                              (line  43)
+* magit-unstage-all:                     Staging and Unstaging.
+                                                              (line  52)
+* magit-unstage-file:                    Staging from File-Visiting Buffers.
+                                                              (line  18)
+* magit-unstage-file <1>:                Minor Mode for Buffers Visiting Files.
+                                                              (line  28)
+* magit-version:                         Git Executable.      (line  17)
+* magit-version <1>:                     Debugging Tools.     (line  10)
+* magit-visit-ref:                       References Buffer.   (line 166)
+* magit-wip-commit:                      Wip Modes.           (line 129)
+* magit-wip-log:                         Wip Modes.           (line  69)
+* magit-wip-log-current:                 Wip Modes.           (line  77)
+* magit-worktree-branch:                 Worktree.            (line  17)
+* magit-worktree-checkout:               Worktree.            (line  13)
+* magit-worktree-checkout-pull-request:  Worktree.            (line  21)
+* magit-worktree-delete:                 Worktree.            (line  28)
+* magit-worktree-popup:                  Worktree.            (line   8)
+* magit-worktree-status:                 Worktree.            (line  33)
+* scroll-down:                           Diff Buffer.         (line 103)
+* scroll-up:                             Diff Buffer.         (line  99)
+* with-editor-cancel:                    Editing Commit Messages.
+                                                              (line  24)
+* with-editor-cancel <1>:                Editing Rebase Sequences.
+                                                              (line  11)
+* with-editor-debug:                     Debugging Tools.     (line  38)
+* with-editor-finish:                    Editing Commit Messages.
+                                                              (line  19)
+* with-editor-finish <1>:                Editing Rebase Sequences.
+                                                              (line   6)
+
+
+File: magit.info,  Node: Function Index,  Next: Variable Index,  Prev: Command Index,  Up: Top
+
+Appendix E Function Index
+*************************
+
+
+* Menu:
+
+* auto-revert-mode:                      Automatic Reverting of File-Visiting Buffers.
+                                                              (line  62)
+* git-commit-check-style-conventions:    Editing Commit Messages.
+                                                              (line 247)
+* git-commit-propertize-diff:            Editing Commit Messages.
+                                                              (line 206)
+* git-commit-save-message:               Editing Commit Messages.
+                                                              (line 187)
+* git-commit-setup-changelog-support:    Editing Commit Messages.
+                                                              (line 191)
+* git-commit-turn-on-auto-fill:          Editing Commit Messages.
+                                                              (line 196)
+* git-commit-turn-on-flyspell:           Editing Commit Messages.
+                                                              (line 201)
+* ido-enter-magit-status:                Status Buffer.       (line  47)
+* magit-add-section-hook:                Section Hooks.       (line  18)
+* magit-after-save-refresh-status:       Automatic Refreshing of Magit Buffers.
+                                                              (line  56)
+* magit-blame:                           Blaming.             (line  17)
+* magit-blame-echo:                      Blaming.             (line  32)
+* magit-blame-removal:                   Blaming.             (line  38)
+* magit-blame-reverse:                   Blaming.             (line  46)
+* magit-branch-config-popup:             The Branch Config Popup.
+                                                              (line   6)
+* magit-branch-or-checkout:              The Branch Popup.    (line 350)
+* magit-branch-orphan:                   The Branch Popup.    (line 345)
+* magit-branch-shelve:                   Auxillary Branch Commands.
+                                                              (line   8)
+* magit-branch-unshelve:                 Auxillary Branch Commands.
+                                                              (line  19)
+* magit-builtin-completing-read:         Support for Completion Frameworks.
+                                                              (line  42)
+* magit-call-git:                        Calling Git for Effect.
+                                                              (line  28)
+* magit-call-process:                    Calling Git for Effect.
+                                                              (line  32)
+* magit-cancel-section:                  Creating Sections.   (line  71)
+* magit-completing-read:                 Support for Completion Frameworks.
+                                                              (line  60)
+* magit-current-section:                 Section Selection.   (line   6)
+* magit-define-section-jumper:           Creating Sections.   (line  77)
+* magit-diff-scope:                      Matching Sections.   (line 111)
+* magit-diff-type:                       Matching Sections.   (line  88)
+* magit-diff-visit-file-other-window:    Diff Buffer.         (line  65)
+* magit-display-buffer:                  Switching Buffers.   (line   6)
+* magit-display-buffer-fullcolumn-most-v1: Switching Buffers. (line  72)
+* magit-display-buffer-fullframe-status-topleft-v1: Switching Buffers.
+                                                              (line  62)
+* magit-display-buffer-fullframe-status-v1: Switching Buffers.
+                                                              (line  56)
+* magit-display-buffer-same-window-except-diff-v1: Switching Buffers.
+                                                              (line  50)
+* magit-display-buffer-traditional:      Switching Buffers.   (line  42)
+* magit-file-checkout:                   Minor Mode for Buffers Visiting Files.
+                                                              (line 131)
+* magit-file-delete:                     Minor Mode for Buffers Visiting Files.
+                                                              (line 123)
+* magit-file-rename:                     Minor Mode for Buffers Visiting Files.
+                                                              (line 119)
+* magit-file-untrack:                    Minor Mode for Buffers Visiting Files.
+                                                              (line 127)
+* magit-generate-buffer-name-default-function: Naming Buffers.
+                                                              (line  17)
+* magit-get-section:                     Matching Sections.   (line  16)
+* magit-git:                             Calling Git for Effect.
+                                                              (line  65)
+* magit-git-exit-code:                   Getting a Value from Git.
+                                                              (line  10)
+* magit-git-failure:                     Getting a Value from Git.
+                                                              (line  19)
+* magit-git-false:                       Getting a Value from Git.
+                                                              (line  29)
+* magit-git-insert:                      Getting a Value from Git.
+                                                              (line  34)
+* magit-git-items:                       Getting a Value from Git.
+                                                              (line  49)
+* magit-git-lines:                       Getting a Value from Git.
+                                                              (line  44)
+* magit-git-str:                         Getting a Value from Git.
+                                                              (line  72)
+* magit-git-string:                      Getting a Value from Git.
+                                                              (line  38)
+* magit-git-success:                     Getting a Value from Git.
+                                                              (line  14)
+* magit-git-true:                        Getting a Value from Git.
+                                                              (line  24)
+* magit-git-wash:                        Calling Git for Effect.
+                                                              (line  70)
+* magit-hunk-set-window-start:           Section Movement.    (line  43)
+* magit-ido-completing-read:             Support for Completion Frameworks.
+                                                              (line  48)
+* magit-insert-am-sequence:              Status Sections.     (line  28)
+* magit-insert-bisect-log:               Status Sections.     (line  46)
+* magit-insert-bisect-output:            Status Sections.     (line  38)
+* magit-insert-bisect-rest:              Status Sections.     (line  42)
+* magit-insert-diff-filter-header:       Status Header Sections.
+                                                              (line  38)
+* magit-insert-error-header:             Status Header Sections.
+                                                              (line  28)
+* magit-insert-head-branch-header:       Status Header Sections.
+                                                              (line  42)
+* magit-insert-heading:                  Creating Sections.   (line  42)
+* magit-insert-ignored-files:            Status Sections.     (line 100)
+* magit-insert-local-branches:           References Sections. (line  17)
+* magit-insert-merge-log:                Status Sections.     (line  18)
+* magit-insert-modules:                  Status Module Sections.
+                                                              (line  12)
+* magit-insert-modules-overview:         Status Module Sections.
+                                                              (line  33)
+* magit-insert-modules-unpulled-from-pushremote: Status Module Sections.
+                                                              (line  50)
+* magit-insert-modules-unpulled-from-upstream: Status Module Sections.
+                                                              (line  44)
+* magit-insert-modules-unpushed-to-pushremote: Status Module Sections.
+                                                              (line  62)
+* magit-insert-modules-unpushed-to-upstream: Status Module Sections.
+                                                              (line  56)
+* magit-insert-push-branch-header:       Status Header Sections.
+                                                              (line  51)
+* magit-insert-rebase-sequence:          Status Sections.     (line  23)
+* magit-insert-recent-commits:           Status Sections.     (line 115)
+* magit-insert-remote-branches:          References Sections. (line  21)
+* magit-insert-remote-header:            Status Header Sections.
+                                                              (line  67)
+* magit-insert-repo-header:              Status Header Sections.
+                                                              (line  63)
+* magit-insert-section:                  Creating Sections.   (line   6)
+* magit-insert-sequencer-sequence:       Status Sections.     (line  33)
+* magit-insert-staged-changes:           Status Sections.     (line  63)
+* magit-insert-stashes:                  Status Sections.     (line  67)
+* magit-insert-status-headers:           Status Header Sections.
+                                                              (line  12)
+* magit-insert-submodules:               Listing Submodules.  (line  35)
+* magit-insert-tags:                     References Sections. (line  25)
+* magit-insert-tags-header:              Status Header Sections.
+                                                              (line  56)
+* magit-insert-tracked-files:            Status Sections.     (line  96)
+* magit-insert-unpulled-cherries:        Status Sections.     (line 126)
+* magit-insert-unpulled-from-pushremote: Status Sections.     (line  79)
+* magit-insert-unpulled-from-upstream:   Status Sections.     (line  74)
+* magit-insert-unpulled-or-recent-commits: Status Sections.   (line 108)
+* magit-insert-unpushed-cherries:        Status Sections.     (line 133)
+* magit-insert-unpushed-to-pushremote:   Status Sections.     (line  89)
+* magit-insert-unpushed-to-upstream:     Status Sections.     (line  84)
+* magit-insert-unstaged-changes:         Status Sections.     (line  59)
+* magit-insert-untracked-files:          Status Sections.     (line  50)
+* magit-insert-upstream-branch-header:   Status Header Sections.
+                                                              (line  46)
+* magit-insert-user-header:              Status Header Sections.
+                                                              (line  75)
+* magit-list-repositories:               Repository List.     (line   6)
+* magit-list-submodules:                 Listing Submodules.  (line  13)
+* magit-log-maybe-show-more-commits:     Section Movement.    (line  57)
+* magit-log-maybe-update-blob-buffer:    Section Movement.    (line  71)
+* magit-log-maybe-update-revision-buffer: Section Movement.   (line  64)
+* magit-maybe-set-dedicated:             Switching Buffers.   (line  97)
+* magit-mode-display-buffer:             Refreshing Buffers.  (line  33)
+* magit-mode-quit-window:                Quitting Windows.    (line  31)
+* magit-mode-setup:                      Refreshing Buffers.  (line  17)
+* magit-push-implicitly:                 Pushing.             (line  73)
+* magit-push-to-remote:                  Pushing.             (line  84)
+* magit-region-sections:                 Section Selection.   (line  10)
+* magit-region-values:                   Section Selection.   (line  29)
+* magit-remote-config-popup:             The Remote Config Popup.
+                                                              (line   6)
+* magit-repolist-column-ident:           Repository List.     (line  30)
+* magit-repolist-column-path:            Repository List.     (line  35)
+* magit-repolist-column-unpulled-from-pushremote: Repository List.
+                                                              (line  49)
+* magit-repolist-column-unpulled-from-upstream: Repository List.
+                                                              (line  44)
+* magit-repolist-column-unpushed-to-pushremote: Repository List.
+                                                              (line  59)
+* magit-repolist-column-unpushed-to-upstream: Repository List.
+                                                              (line  54)
+* magit-repolist-column-version:         Repository List.     (line  39)
+* magit-restore-window-configuration:    Quitting Windows.    (line  20)
+* magit-revert-buffers:                  Editing Commit Messages.
+                                                              (line 178)
+* magit-run-git:                         Calling Git for Effect.
+                                                              (line  36)
+* magit-run-git-async:                   Calling Git for Effect.
+                                                              (line  80)
+* magit-run-git-with-editor:             Calling Git for Effect.
+                                                              (line  93)
+* magit-run-git-with-input:              Calling Git for Effect.
+                                                              (line  40)
+* magit-run-git-with-logfile:            Calling Git for Effect.
+                                                              (line  56)
+* magit-save-window-configuration:       Switching Buffers.   (line  86)
+* magit-section-case:                    Matching Sections.   (line  64)
+* magit-section-hide:                    Section Visibility.  (line  49)
+* magit-section-hide-children:           Section Visibility.  (line  64)
+* magit-section-ident:                   Matching Sections.   (line  11)
+* magit-section-match:                   Matching Sections.   (line  21)
+* magit-section-set-window-start:        Section Movement.    (line  50)
+* magit-section-show:                    Section Visibility.  (line  45)
+* magit-section-show-children:           Section Visibility.  (line  58)
+* magit-section-show-headings:           Section Visibility.  (line  53)
+* magit-section-toggle-children:         Section Visibility.  (line  68)
+* magit-section-when:                    Matching Sections.   (line  52)
+* magit-start-git:                       Calling Git for Effect.
+                                                              (line 105)
+* magit-start-process:                   Calling Git for Effect.
+                                                              (line 124)
+* magit-status-maybe-update-blob-buffer: Section Movement.    (line  83)
+* magit-status-maybe-update-revision-buffer: Section Movement.
+                                                              (line  77)
+* magit-tag-release:                     Tagging.             (line  28)
+* magit-wip-log:                         Wip Modes.           (line  69)
+* magit-wip-log-current:                 Wip Modes.           (line  77)
+* with-editor-usage-message:             Editing Commit Messages.
+                                                              (line 215)
+
+
+File: magit.info,  Node: Variable Index,  Prev: Function Index,  Up: Top
+
+Appendix F Variable Index
+*************************
+
+
+* Menu:
+
+* auto-revert-buffer-list-filter:        Automatic Reverting of File-Visiting Buffers.
+                                                              (line  81)
+* auto-revert-interval:                  Automatic Reverting of File-Visiting Buffers.
+                                                              (line  76)
+* auto-revert-stop-on-user-input:        Automatic Reverting of File-Visiting Buffers.
+                                                              (line  71)
+* auto-revert-use-notify:                Automatic Reverting of File-Visiting Buffers.
+                                                              (line  49)
+* auto-revert-verbose:                   Automatic Reverting of File-Visiting Buffers.
+                                                              (line 103)
+* branch.autoSetupMerge:                 The Branch Config Popup.
+                                                              (line  94)
+* branch.autoSetupRebase:                The Branch Config Popup.
+                                                              (line 111)
+* branch.NAME.description:               The Branch Config Popup.
+                                                              (line  61)
+* branch.NAME.merge:                     The Branch Config Popup.
+                                                              (line  23)
+* branch.NAME.pushRemote:                The Branch Config Popup.
+                                                              (line  47)
+* branch.NAME.rebase:                    The Branch Config Popup.
+                                                              (line  35)
+* branch.NAME.remote:                    The Branch Config Popup.
+                                                              (line  29)
+* core.notesRef:                         Notes.               (line  59)
+* git-commit-fill-column:                Editing Commit Messages.
+                                                              (line 228)
+* git-commit-finish-query-functions:     Editing Commit Messages.
+                                                              (line 233)
+* git-commit-known-pseudo-headers:       Editing Commit Messages.
+                                                              (line 124)
+* git-commit-major-mode:                 Editing Commit Messages.
+                                                              (line 163)
+* git-commit-setup-hook:                 Editing Commit Messages.
+                                                              (line 174)
+* git-commit-summary-max-length:         Editing Commit Messages.
+                                                              (line 222)
+* git-rebase-auto-advance:               Editing Rebase Sequences.
+                                                              (line  94)
+* git-rebase-confirm-cancel:             Editing Rebase Sequences.
+                                                              (line 102)
+* git-rebase-show-instructions:          Editing Rebase Sequences.
+                                                              (line  98)
+* global-auto-revert-mode:               Automatic Reverting of File-Visiting Buffers.
+                                                              (line  22)
+* magit-auto-revert-immediately:         Automatic Reverting of File-Visiting Buffers.
+                                                              (line  32)
+* magit-auto-revert-mode:                Automatic Reverting of File-Visiting Buffers.
+                                                              (line  17)
+* magit-auto-revert-tracked-only:        Automatic Reverting of File-Visiting Buffers.
+                                                              (line  55)
+* magit-bisect-show-graph:               Bisecting.           (line  55)
+* magit-blame-disable-modes:             Blaming.             (line 150)
+* magit-blame-echo-style:                Blaming.             (line 133)
+* magit-blame-goto-chunk-hook:           Blaming.             (line 156)
+* magit-blame-read-only:                 Blaming.             (line 145)
+* magit-blame-styles:                    Blaming.             (line 128)
+* magit-blame-time-format:               Blaming.             (line 140)
+* magit-branch-adjust-remote-upstream-alist: The Branch Popup.
+                                                              (line 303)
+* magit-branch-popup-show-variables:     The Branch Popup.    (line  21)
+* magit-branch-prefer-remote-upstream:   The Branch Popup.    (line 258)
+* magit-branch-read-upstream-first:      The Branch Popup.    (line 252)
+* magit-buffer-name-format:              Naming Buffers.      (line  27)
+* magit-bury-buffer-function:            Quitting Windows.    (line  11)
+* magit-cherry-margin:                   Cherries.            (line  22)
+* magit-clone-set-remote.pushDefault:    Repository Setup.    (line  23)
+* magit-commit-ask-to-stage:             Initiating a Commit. (line  74)
+* magit-commit-extend-override-date:     Initiating a Commit. (line  79)
+* magit-commit-reword-override-date:     Initiating a Commit. (line  83)
+* magit-commit-squash-confirm:           Initiating a Commit. (line  87)
+* magit-completing-read-function:        Support for Completion Frameworks.
+                                                              (line  27)
+* magit-diff-adjust-tab-width:           Diff Options.        (line  16)
+* magit-diff-buffer-file-locked:         Minor Mode for Buffers Visiting Files.
+                                                              (line  52)
+* magit-diff-hide-trailing-cr-characters: Diff Options.       (line  67)
+* magit-diff-highlight-hunk-region-functions: Diff Options.   (line  71)
+* magit-diff-highlight-indentation:      Diff Options.        (line  52)
+* magit-diff-highlight-trailing:         Diff Options.        (line  47)
+* magit-diff-paint-whitespace:           Diff Options.        (line  38)
+* magit-diff-refine-hunk:                Diff Options.        (line   6)
+* magit-diff-unmarked-lines-keep-foreground: Diff Options.    (line  97)
+* magit-diff-visit-previous-blob:        Diff Buffer.         (line  37)
+* magit-display-buffer-function:         Switching Buffers.   (line  23)
+* magit-display-buffer-noselect:         Switching Buffers.   (line  14)
+* magit-dwim-selection:                  Completion and Confirmation.
+                                                              (line  42)
+* magit-ediff-dwim-show-on-hunks:        Ediffing.            (line  73)
+* magit-ediff-quit-hook:                 Ediffing.            (line  88)
+* magit-ediff-show-stash-with-index:     Ediffing.            (line  81)
+* magit-file-mode:                       Minor Mode for Buffers Visiting Files.
+                                                              (line  11)
+* magit-generate-buffer-name-function:   Naming Buffers.      (line   6)
+* magit-git-debug:                       Viewing Git Output.  (line  28)
+* magit-git-debug <1>:                   Getting a Value from Git.
+                                                              (line  64)
+* magit-git-executable:                  Git Executable.      (line  39)
+* magit-git-global-arguments:            Global Git Arguments.
+                                                              (line   6)
+* magit-keep-region-overlay:             The Selection.       (line  52)
+* magit-list-refs-sortby:                Additional Completion Options.
+                                                              (line   6)
+* magit-log-auto-more:                   Log Buffer.          (line  67)
+* magit-log-buffer-file-locked:          Minor Mode for Buffers Visiting Files.
+                                                              (line  75)
+* magit-log-margin:                      Log Margin.          (line  12)
+* magit-log-section-args:                Status Options.      (line  36)
+* magit-log-section-commit-count:        Status Sections.     (line 120)
+* magit-log-select-margin:               Select from Log.     (line  30)
+* magit-log-show-refname-after-summary:  Log Buffer.          (line  73)
+* magit-module-sections-hook:            Status Module Sections.
+                                                              (line  20)
+* magit-module-sections-nested:          Status Module Sections.
+                                                              (line  24)
+* magit-no-confirm:                      Action Confirmation. (line  18)
+* magit-pop-revision-stack-format:       Editing Commit Messages.
+                                                              (line  92)
+* magit-post-display-buffer-hook:        Switching Buffers.   (line  92)
+* magit-pre-display-buffer-hook:         Switching Buffers.   (line  81)
+* magit-prefer-remote-upstream:          The Branch Config Popup.
+                                                              (line 139)
+* magit-process-raise-error:             Calling Git for Effect.
+                                                              (line 151)
+* magit-push-current-set-remote-if-missing: Pushing.          (line  96)
+* magit-reflog-margin:                   Reflog.              (line  23)
+* magit-refresh-args:                    Refreshing Buffers.  (line  55)
+* magit-refresh-buffer-hook:             Automatic Refreshing of Magit Buffers.
+                                                              (line  40)
+* magit-refresh-function:                Refreshing Buffers.  (line  49)
+* magit-refresh-status-buffer:           Automatic Refreshing of Magit Buffers.
+                                                              (line  46)
+* magit-refs-filter-alist:               References Buffer.   (line 149)
+* magit-refs-focus-column-width:         References Buffer.   (line  74)
+* magit-refs-margin:                     References Buffer.   (line  89)
+* magit-refs-margin-for-tags:            References Buffer.   (line 115)
+* magit-refs-pad-commit-counts:          References Buffer.   (line  41)
+* magit-refs-primary-column-width:       References Buffer.   (line  61)
+* magit-refs-sections-hook:              References Sections. (line  13)
+* magit-refs-show-commit-count:          References Buffer.   (line  29)
+* magit-refs-show-remote-prefix:         References Buffer.   (line  54)
+* magit-remote-add-set-remote.pushDefault: The Remote Popup.  (line  77)
+* magit-remote-popup-show-variables:     The Remote Popup.    (line  18)
+* magit-repolist-columns:                Repository List.     (line  14)
+* magit-repository-directories:          Status Buffer.       (line  30)
+* magit-repository-directories-depth:    Status Buffer.       (line  40)
+* magit-revision-insert-related-refs:    Revision Buffer.     (line   6)
+* magit-revision-show-gravatar:          Revision Buffer.     (line  10)
+* magit-revision-use-hash-sections:      Revision Buffer.     (line  26)
+* magit-root-section:                    Matching Sections.   (line  80)
+* magit-save-repository-buffers:         Automatic Saving of File-Visiting Buffers.
+                                                              (line  13)
+* magit-section-cache-visibility:        Section Visibility.  (line  95)
+* magit-section-initial-visibility-alist: Section Visibility. (line  78)
+* magit-section-movement-hook:           Section Movement.    (line  38)
+* magit-section-set-visibility-hook:     Section Visibility.  (line 106)
+* magit-section-show-child-count:        Section Options.     (line   9)
+* magit-shell-command-verbose-prompt:    Running Git Manually.
+                                                              (line  46)
+* magit-stashes-margin:                  Stashing.            (line 103)
+* magit-status-headers-hook:             Status Header Sections.
+                                                              (line  18)
+* magit-status-margin:                   Status Options.      (line  10)
+* magit-status-refresh-hook:             Status Options.      (line   6)
+* magit-status-sections-hook:            Status Sections.     (line  10)
+* magit-submodule-list-columns:          Listing Submodules.  (line  21)
+* magit-this-process:                    Calling Git for Effect.
+                                                              (line 146)
+* magit-uniquify-buffer-names:           Naming Buffers.      (line  74)
+* magit-unstage-committed:               Staging and Unstaging.
+                                                              (line  56)
+* magit-update-other-window-delay:       Section Movement.    (line  89)
+* magit-use-sticky-arguments:            Popup Buffers and Prefix Commands.
+                                                              (line  36)
+* magit-visit-ref-behavior:              References Buffer.   (line 177)
+* magit-wip-after-apply-mode:            Wip Modes.           (line  99)
+* magit-wip-after-apply-mode-lighter:    Wip Modes.           (line 141)
+* magit-wip-after-save-local-mode-lighter: Wip Modes.         (line 137)
+* magit-wip-after-save-mode:             Wip Modes.           (line  93)
+* magit-wip-before-change-mode:          Wip Modes.           (line 113)
+* magit-wip-before-change-mode-lighter:  Wip Modes.           (line 145)
+* magit-wip-namespace:                   Wip Modes.           (line 149)
+* notes.displayRef:                      Notes.               (line  64)
+* pull.rebase:                           The Branch Config Popup.
+                                                              (line  70)
+* remote.NAME.fetch:                     The Remote Config Popup.
+                                                              (line  25)
+* remote.NAME.push:                      The Remote Config Popup.
+                                                              (line  36)
+* remote.NAME.pushurl:                   The Remote Config Popup.
+                                                              (line  30)
+* remote.NAME.tagOpts:                   The Remote Config Popup.
+                                                              (line  41)
+* remote.NAME.url:                       The Remote Config Popup.
+                                                              (line  20)
+* remote.pushDefault:                    The Branch Config Popup.
+                                                              (line  84)
+