It's Magit!  A Git Porcelain inside Emacs
=========================================

Magit is an interface to the version control system Git, implemented
as an Emacs package.  Magit aspires to be a complete Git porcelain.
While we cannot (yet) claim that Magit wraps and improves upon each
and every Git command, it is complete enough to allow even experienced
Git users to perform almost all of their daily version control tasks
directly from within Emacs.  While many fine Git clients exist, only
Magit and Git itself deserve to be called porcelains.

For more information about Magit, see https://magit.vc.

Magit needs your help
=====================

If Magit helps you be more productive, then please consider backing
the fundraising campaign on Kickstarter.  Thanks! <3

https://www.kickstarter.com/projects/1681258897/its-magit-the-magical-git-client?ref=ej621y

Magit v2.11.0 Release Notes
===========================

Released 13th September 2017 by Jonas Bernoulli.

I am pleased to announce the release of Magit version 2.11.0,
representing 303 commits by 26 contributors over six months.

Also see https://emacsair.me/2017/09/12/magit-2.11.

Changes since v2.10.3
---------------------

* The popup `magit-remote-popup' now exposes the `-f' switch for `git
  remote add', which allows the user to control whether information
  from the remote is fetched after the remote is added.  The default
  behavior is still to fetch after adding a remote (i.e., the switch
  is enabled by default).  #2997

* Added option `magit-list-refs-sortby' to allow more control over the
  order of refs in prompts.  #2872

* The Magit wrappers around the default Emacs completion functions now
  override the default behavior of alphabetically sorting choices when
  displaying them in the "*Completions*" buffer.  In repositories with
  many release tags, the new behavior prevents completion prompts from
  being dominated by version tags instead of branch names.  #2925

* The commands `magit-git-command', `magit-git-command-topdir',
  `magit-shell-command', and `magit-shell-command-topdir' now use
  `read-shell-command' to read the command and a shell to run it.
  Packages like `pcmpl-git' and `bash-completion' can now be used
  to get command-line completion when using these commands.  #2951

* The commands `magit-git-command' and `magit-git-command-topdir' can
  now call arbitrary commands.  The initial-value when reading the
  command is "git ", and you can remove that to call something else.
  #2951

* Added option `magit-shell-command-verbose-prompt'.  #2951

* The function `magit-branch-or-commit-at-point' now offers the
  appropriate default choice in a `magit-merge-preview-mode' buffer
  and in blob-visiting buffers.  #3039, #3066

* On Travis tests are now run against all supported Emacs releases, as
  well as against snapshots of the `master' and `emacs-25' branches.
  #3046

* Added command `magit-debug-git-executable'.  #3044

* Added new function `magit-display-file-buffer-other-window' to be
  used as `magit-display-file-buffer-function'.

* Added `--mainline' switch to `magit-revert-popup'.  #3018

* Added `magit-file-checkout' to `magit-reset-popup'.  #3052

* When a revision is shown from a log buffer, the revision buffer now
  inherits the file restriction of the log buffer.  #3056

* Added new command `magit-diff-toggle-file-filter'.  #3062

* Added new option `magit-use-sticky-arguments' that provides more
  control over how diff and log commands reuse arguments from existing
  buffers.  #3074

* Added imenu support in log, revision, and status buffers.  #3022

* Added command `magit-abort-dwim` to abort the current operation.
  Depending on the context, this will abort a merge, a rebase, a
  patch application, a cherry-pick, a revert, or a bisect.  #3017

* The command `magit-clone' now suggests a directory name that more
  closely follows `git clone' when no directory is given.  #3079

* The commands `magit-subtree-add', `magit-subtree-pull', and
  `magit-subtree-push' now offer more completion candidates.  #3081

* The log buffer now shows the line range restriction (i.e. `-L'
  argument) in its header.  #3075

* Added new functions `magit-repolist-column-branches' and
  `magit-repolist-column-stashes', which insert the count of branches
  and stashes into submodules and repository list buffers. By default
  they are used in submodule lists but not in the repository list.

* Text inside brackets in commit messages (including when shown in a
  log) are now highlighted using face `magit-keyword'.

* Invocations of git are cached over the whole body of
  `magit-run-git', not just during the status buffer refresh.  This
  should make staging and unstaging slightly faster.  #3096

* When reading a value for the `--reuse-message' option, the popup
  `magit-commit-popup' now prompts with all ref names, offering
  `ORIG_HEAD' as the default if it exists.  #3110

* Added bookmark support in status, refs, log, reflog, stashes,
  cherry, diff, revision, stash, and submodule-list buffers.  #3113

* Added new function `magit-insert-modules', a wrapper around the
  existing `magit-insert-modules-*' functions.  Also added options
  `magit-module-sections-hook' and `magit-module-sections-nested',
  to allow tuning the behavior of this function.  #3141

* Renamed function `magit-insert-submodules' to
  `magit-insert-modules-overview' for consistency with other
  `magit-insert-modules-*' functions.  #3141

* Inserting module sections is much faster now.  #3141

* Added `--no-verify' switch to `magit-rebase-popup'.  #3144

* The `--no-verify' switch in `magit-commit-popup' is now bound to "h"
  instead of "n" for consistency with `magit-push-popup' and
  `magit-rebase-popup'.  #3144

* Added support for the file "EDIT_DESCRIPTION", which is used instead
  of "BRANCH_DESCRIPTION" for editing a branch's description as of Git
  2.13.0.  #3149

Fixes since v2.10.3
-------------------

* Rebasing was sometimes interrupted by an error about the index lock
  already being held.  This happened because VC asynchronously checks
  for files with conflict, which involved using a git command that
  grabs the lock.  Magit now redefines that VC command to use a git
  command that does not grab the lock.  #2708, debbug#21559

* Adding an untracked subdirectory as a submodule failed if a remote
  was not configured for the subdirectory repository.  #3047

* Parsing the log buffer failed if the log displayed a ref that
  contained parentheses in its name.  #3028

* Parsing the `git show' and `git log' output for a signed commit
  failed with the Git variable `log.showSignature' enabled.  #3061

* When deleting the current branch, `magit-branch-delete' did not ask
  for confirmation in some cases.  #3058

* When using a non-standard `magit-display-file-buffer-function' that
  does not select the window used to display the buffer, then the
  point in that window was not adjusted.  #3082

* `git-rebase-mode' did wrongly assume that there is no space after
  the comment character in action lines that are commented out.  #3085

* The command `magit-show-commit' mistakenly displayed a tag's commit
  when point was on a branch with the same name.  #3098

* The command `magit-log-buffer-file' miscalculated line numbers from
  the region.  #3075

* Staging a link failed when it points to a repository.

* When setting the upstream of a branch that isn't the current branch,
  the user was asked what branch to use as the upstream of the current
  branch anyway, even though the correct branch would then be modified.

* When deleting a branch that is merged into the current branch but
  not into its own upstream branch, then the user was not offered to
  force the deletion, causing it to fail.  #3107

* With `find-file-visit-truename' set to a non-nil value, the commands
  `magit-status' and `magit-init' failed to detect when their
  directory argument was a symlink that resolved to the output of
  `magit-toplevel'.  #3115

* Using an url instead of a remote name as `branch.<name>.remote' was
  not properly supported, causing issues when trying to pull or push.
  #3116

* The log margin displayed invalid information for cherries.  #3163

This release also contains the fixes described in the v2.10.{1,2,3}
release notes, as well as other minor improvements, bug fixes, typo
fixes, and documentation fixes.

Authors
-------

   148  Jonas Bernoulli
    93  Kyle Meyer
    15  Damien Cassou
    15  Noam Postavsky
     5  Basil L. Contovounesios
     3  Justin Guenther
     2  Alex Kost
     2  Duianto Vebotci
     2  Radon Rosborough
     2  Štěpán Němec
     1  Adam Benanti
     1  Allen Li
     1  Ben North
     1  Erik Anderson
     1  Eyal Lotem
     1  Fabian Wiget
     1  Ioan-Adrian Ratiu
     1  Jeremy Meng
     1  Justin Burkett
     1  Justin Thomas
     1  Kévin Le Gouguec
     1  Marc Sherry
     1  Mark Karpov
     1  Mark Oteiza
     1  Sean Whitton
     1  Yuri Khan
