commit: add -v for verbose option

Add a -v option which allows you to invoke git-commit with --verbose. I
always do this because inevitably I'll forget some of the finer points
of the patch I'm about to commit, and having it all in the same buffer
instead of having to look at "git diff --staged" in another window is
great.

Now when you press "c" the window that's brought up looks like this:

    Switches
     -r: Replace the tip of current branch (--amend)         -a: Stage all modified and deleted files (--all)
     -e: Allow empty commit (--allow-empty)                  -v: Show diff of changes to be committed (--verbose)
     -n: Bypass git hooks (--no-verify)                      -s: Add Signed-off-by line (--signoff)
     -S: Sign using gpg (--gpg-sign)
    Actions
     c: Commit

And e.g. for this change I'm about to commit the buffer opens with:

    # Please enter the commit message for your changes. Lines starting
    # with '#' will be ignored, and an empty message aborts the commit.
    # On branch master
    # Changes to be committed:
    #   (use "git reset HEAD <file>..." to unstage)
    #
    #	modified:   magit-key-mode.el
    #
    diff --git a/magit-key-mode.el b/magit-key-mode.el
    index a7d9a8c..4fd5510 100644
    --- a/magit-key-mode.el
    +++ b/magit-key-mode.el
    @@ -192,6 +192,7 @@
           ("-r" "Replace the tip of current branch" "--amend")
           ("-a" "Stage all modified and deleted files" "--all")
           ("-e" "Allow empty commit" "--allow-empty")
    +      ("-v" "Show diff of changes to be committed" "--verbose")
           ("-n" "Bypass git hooks" "--no-verify")
           ("-s" "Add Signed-off-by line" "--signoff")
           ("-S" "Sign using gpg" "--gpg-sign")))
magit-rebase-step: assert emacsclient when --continue_ing

Fix issue #873.
fix c4f4c096becaca65bf222122e77409cd61fedf9a
magit-commit-internal: remove EDITMSG after commit

Remove file .git/{TAG,COMMIT}_EDITMSG after making
a commit/tag using the emacsclient-less fallback.

Closes #797.
magit-commit-internal: set git-commit-previous-winconf
magit-commit-internal: refresh magit buffers with fallback too
magit-commit-add-log: reduce nesting
magit-commit-add-log: initiate commit if necessary

Close #829.
Merge pull request #872 from avar/add-v-option-to-commit

commit: add -v for verbose option
fix 6e4d21b6ef7c7dbc483cda5f17a541bb954224b5

Reported-by: Johan Andersson <johan.rejeep@gmail.com>
fix two bugs in magit-commit

* Make sure we don't set `magit-custom-options' global value.
* Respect the prefix argument (AMENDP) when there are staged changes.
remove magit-flow.el for now

Remove the `magit-flow.el' for the time being.  Another
implementation that implements the functionality described at
http://jeffkreeftmeijer.com/2010/why-arent-you-using-git-flow
will be added at a later time.

This version is removed because it depends on external scripts
that implement this workflow (https://github.com/nvie/gitflow),
which happens to be unmaintained.  It will actually be easier
to rewrite this in directly elisp than wrap around a bugged
external implementation (and eventually having to fork and
maintain that).  Also in most distributions these scripts are
not available through the native package manager.

More importantly though this version has to be removed because
it is very incomplete.  Having this version in the Magit repo
will raise expectations we cannot fulfill at this time; for a
elisp-only implementation to be feasible some existing mess in
the Magit code base has to be cleaned up first, and extenting
the wrapper around the shell scripts would be a waste of time
considering the goal of not relying on these eventually.

See issue #881 for discussion.
make commit at point the default input value for magit-show-commit
README.md: add link label def for `git-modes'

Commit 41b1bb7a added a reference link for `git-modes', but forgot
to add the link label definition.

Signed-off-by: Pieter Praet <pieter@praet.org>
`magit-display-process': fix displaying the process buffer

Commit e26c9c79 erroneously wrapped the call to `display-buffer'
inside the `unless', meaning if we *had* a buffer to display, the
code to display it *wouldn't* run, essentially causing the process
buffer to never be displayed when the BUFFER arg was non-nil, and
thus breaking `magit-process-popup-time'-based process buffer popup.

Fixes #887.

Signed-off-by: Pieter Praet <pieter@praet.org>
magit.el: add `magit-diff-use-overlays' to `magit-faces' as custom-VARIABLE

Visiting the `magit-diff-use-overlays' option from the `magit-faces'
group resulted in an empty Customize buffer, stating:

  "Group definition missing."

See commit 66a06442.

Fixes #889.

Signed-off-by: Pieter Praet <pieter@praet.org>
`magit--bisect-last-pos': properly set prop 'permanent-local to t

Commit 8ce80095 intended to define `magit--bisect-last-pos' as a
permanent buffer-local variable by copy-pasting and adjusting the
sexps which do so for `magit--bisect-info', but forgot to adjust
the line which is supposed to set its 'permanent-local property to t.

Signed-off-by: Pieter Praet <pieter@praet.org>
`magit-bisect-run': properly set `buffer' and `process'

In an effort to limit the usage of `magit-process-buffer-name',
commit 54f2e7c2 modified `magit-bisect-run' to set `process' and
`buffer' based on the return value of `magit-run-git-async'.

However, `magit-run-git-async' uses `magit-run-git*', which uses
`magit-run*', which returns its `successp' variable, which is either
t or nil, *not* a process object, so `magit-bisect-run' fails when
it tries to set `buffer' by running `process-buffer' on `process':

  Debugger entered--Lisp error: (wrong-type-argument processp t)
  [...]

Fixes #891.

Signed-off-by: Pieter Praet <pieter@praet.org>
`magit-ignore-item': make LOCAL arg optional

Commit 15c08f9e merged `magit-ignore-item' and `magit--ignore-item', and
for some reason made the LOCAL arg non-optional, causing Emacs to signal
`wrong-number-of-arguments' when running `magit-ignore-item' ("i") on a
file in the status buffer.

Fixes #893.

Signed-off-by: Pieter Praet <pieter@praet.org>
`magit-revert-item': don't depend on `cl-flet'

Commit 1c7fb237 replaced the `magit-with-revert-confirmation' macro with
the temporary function `confirm', but defined the latter using `cl-flet'
which isn't available in cl-lib 0.3, so use `let' + `funcall' instead.

Fixes #895.

Signed-off-by: Pieter Praet <pieter@praet.org>