Magit v2.4.0 Release Notes ========================== Released 18 January 2016 by Jonas Bernoulli. We are pleased to announce the release of Magit version 2.4.0, representing 269 commits by 14 people over 12 weeks. Also see http://emacsair.me/2016/01/18/magit-2.4. Changes since v2.3.0 -------------------- * The new mode `magit-auto-revert-mode', a magit-specific globalized variant of `auto-revert-mode', replaces the old implementation, which was configured using the option `magit-revert-buffers'. The new mode is enabled for all users by default. It may be disabled before loading magit by setting `magit-auto-revert-mode' (or the obsolete alias `magit-revert-buffers') to nil. To disable the mode after loading magit, a call to (magit-auto-revert-mode -1) is required. #2474 * The option `magit-refresh-status-buffer' was added, allowing users to prevent automatic refreshes of the status buffer for performance reasons. * All of Git's push-related variables are now honored. #2414 * In addition to the upstream branch, the push-remote (configured using `branch..pushRemote' or `remote.pushDefault') is now also fully supported. #2414 * The status buffer now features up to four logs listing unpulled and unpushed commits. Two for the upstream and two for the push-remote. #2414 * The branch popup now shows the most important Git variables that are in some way related to branches. The values of these variables can now be conveniently changed from that popup. #2414 * The fetch, pull, push, and rebase popups now feature an action which acts on the push-remote, another which acts on the upstream, and yet another which acts on any other source or target. For each of these actions the respective branch is shown in the popup. The actions in the push popup are displayed even if the respective variables are unset - they then offer to set these variables before pushing. Setting `magit-push-current-set-remote-if-missing' to nil disables this. Many key bindings were changed for consistency and safety reasons. Likewise many commands were renamed and their behavior was adjusted. Some new commands, related to the push-remote, were added. #2414 * The command `magit-push-implicitly' was removed from the push popup. The command's doc-string explains how to put it back. If these instructions are followed, then the popup shows what will happen if the command is used. #2453 * The command `magit-push-to-remote' was added. The command's doc-string explains how to add it to the push popup. #2453 * The option `magit-push-always-verify' was removed. That was only a temporary kludge to keep users from shooting themselves in the foot. This is no longer necessary because one now always sees where one is about to push to. #2414 * The popup command `magit-pull-and-fetch-popup' was added as a possible replacement for the separate `magit-push-popup' and `magit-fetch-popup'. #2452 * The option `magit-branch-prefer-remote-upstream' was added for users who prefer to always use remote branches as upstreams. #2447 * The options `magit-clone-set-remote.pushDefault' and `magit-remote-add-set-remote.pushDefault' were added. #2447 * When Git is run for side-effects and exits with a non-zero status, then the respective error message is now inserted into the status buffer. This should help those users who do not see that message when it is being displayed in the echo area. * Popups gained support for a new event type `:variable', which can be used to change the value of Git variables. This can only be used in combination with Magit (just `magit-popup.el' by itself is not sufficient). #2409 * The backward-compatibility kludge `magit-branch-manager' has been removed. The one and only binding to show the refs buffer now is "y"; the "b v" binding has been removed. * The command `with-editor-finish' now runs the new hook `with-editor-post-finish-hook'. * The command `magit-diff-visit-file' now runs the new hook `magit-diff-visit-file-hook'. * When the upstream branch or push remote is configured but the respective branch does not actually exist, then that is now reported in the header of the status buffer. #2390 * The header line about the upstream branch in the status buffer is now prefixed with either "Merge" or "Rebase", depending on the value of `branch..rebase'. #2390 * `magit-define-popup' learned two new arguments, `:setup-function' and `:refresh-function'. These arguments should be used instead of the MODE argument, which is now deprecated. #2389 * Negative text properties are no longer faked; that was just too ugly and inefficient. Since v2.1.0 Magit no longer sets the background color for any faces except for those related to diffs. Third-party themes which still set the background color of non-diff faces have to be adjusted, because the background color of these faces would be shadowed by the highlighting of the current section. This does not apply to diff-related faces because diff sections are highlighted differently from other sections. #2387 * The commands `git-rebase-move-line-up' and `git-rebase-move-line-down' have been extended. When a region is active, they now operate on all lines touched by the region, not just the current line. In addition, a numeric prefix can now be given to specify how many lines the current line or selection is moved across. * The option `magit-popup-display-action' was added. This release also contains the changes described in the v2.3.1 release notes, as well as various other documentation fixes, code clean-ups, bug fixes, and other small to medium improvements. Authors ------- 226 Jonas Bernoulli 22 Kyle Meyer 10 Noam Postavsky 1 Carl Lieberman 1 Damien Cassou 1 David L. Rager 1 John Mastro 1 Lele Gaifax 1 Michael Heerdegen 1 Miloš Mošić 1 Raimon Grau 1 Sylvain Rousseau 1 Syohei Yoshida 1 Zach Latta