magit-blame-{prev,next}-chunk

Always move to the previous/next chunk from *point*.  Previously that
was done interactively but non-interactively the POS argument had to
be provided.  Which is wrong for two reasons:  we did not use it
non-interactively, so even if this was a good idea in the first place
it would be of no use.  And then there is no reason for a movement
command to be have "move to next thing from point, except when I tell
you to move from somewhere else".  If one wants that - especially in
non-interactive use, one can just go to that other place *before*
going to the next thing,
magit-run-git-gui-blame: fix when linenum is missing

We can't guarantee that we'll always know which line number
we want to center the `git gui blame' process around.  This
fixes an error caused by attempting to pass nil as one of
the arguments to `start-file-process'.

Message-by: Adam Spiers <github@adamspiers.org> :-)
Reported-by: Adam Spiers <github@adamspiers.org>

Or

  "Make that lazy ass lisp reader do some work."
autoload commands that are useful outside a magit buffer

Add autoload cookies for commands that can be used when the current
buffer isn't a Magit buffer.
move bindings from magit-status-mode-map to magit-mode-map

Move some key bindings that do *not* depend on the existence certain
items (which might not exist in non-status buffers) from
`magit-status-mode-map' to `magit-mode-map'.
move hacks inside section "Branch Manager Mode" to its end

Inside the section "Branch Manager Mode" move a group of utilities to
the end of the section.  These utilities are only used in this section
and have two problems, they are not quiet sufficient and they should
be generalized so that they can also be used elsewhere.
split magit-wash-branch-line-re from magit-wash-branch-line

Extract the regular expression previously embedded inside the
function `magit-wash-branch-line' and store it in a constant
`magit-wash-branch-line-re' (like we do for other such regexps).
magit-wash-branch-line-re: cleanup
magit-wash-remote-branches-group: fix whitespace
magit-change-what-branch-tracks: use a simpler prompt
magit-change-what-branch-tracks: sorter names for internal variables
magit-wash-log: use author/date overlay only with oneline style

Do not display the author/date overlay for log style `long', only
for `oneline'.  When the style is `long' then displaying the overlay
fails *and* it is unnecessary because the author information is
already displayed in another fashion.
magit-wash-log: give the code some room to breath
magit-wash-log: remove an unnecessary let-bound variable

Instead of binding USE-AUTHOR-DATE to the value of

  (eq style 'oneline)

just perform that test twice.  That is cheap enough; it might be even
cheaper than a variable binding.  Regardless, I think it improves
readability a lot.
magit-default-rev: always respect NO-TRIM argument

Previously this was only done when a commit could be found at point but
not when we had to use `magit-guess-branch'.
merge magit-wash-untracked-file into magit-wash-untracked-files
collect all status section inserters in one place

All of the sections created by these inserters are used in the "status"
buffer.  They can also be used in other Magit buffers but that doesn't
change the fact they are "status" sections.

Some of these inserters were defined as part of the "Status Mode"
toplevel section, while others where defined next to the lowlevel
functions they make use of.  There are two ways to make that
consistent... this commit implements on of them.

Because these inserters can also be used by other Magit modes besides
`magit-status-mode' create a new toplevel section "Status Sections"
instead of placing inside a subsection of "Status Mode".  Actually this
is done by promoting the existing subsection "Status Mode">"(sections)"
to a topsection; so the definitions that were already located there do
not have to be moved.

Because after moving `magit-insert-untracked-files' the toplevel section
"Untracked Files" only contains one function `magit-wash-untracked-files'
move that along with the former (which happens to be its only caller).

The definitions of the inserters are in the same order as the sections
are inserted in the "status" buffer.  Unfortunately that means that the
more noisy ones come first.  But that's just because nobody has bothered
cleaning them up yet.

Actually that is not quiet true.  The "line" sections are defined after
the "real" (multi-line and collapsible) sections.  But that is no
problem because the section is split into respective subsections "Line
Sections" and "Real Sections".
split the section "Stage and Unstage" into two

Split the section "Stage and Unstage" (a subsection of "Acting") into
two subsections "Stage" and "Unstage".  I admit this is completely
unnecessary but I have to satisfy my ocd.   :-)
add magit-add-change-log-entry{ replacing -no-option}

Add command `magit-add-change-log-entry' replacing the less flexible
`magit-add-change-log-entry-no-option'.  This is done by duplicating
the (trivial) prefix argument handling from `add-log-change-log-entry'.
magit-add-change-log-entry-other-window use magit...entry

Define `magit-add-change-log-entry-other-window' using
`magit-add-change-log-entry' instead of interactively calling
`add-change-log-entry-other-window'.

This makes the use of the macro `magit-visiting-file-item' unnecessary.
We will take advantage of that in the next commit.
magit-change-what-branch-tracks: lose unnecessary test

Do not test for the empty string being returned by `magit-read-rev'.
If the user makes no selection that function does no longer return
the empty string but raises an error.