Magit v2.5.0 Release Notes ========================== Released 30 January 2016 by Jonas Bernoulli. We are pleased to announce the release of Magit version 2.5.0, representing 78 commits by 4 contributors over 2 weeks. Also see http://emacsair.me/2016/02/10/magit-2.5. Changes since v2.4.0 -------------------- * The library `with-editor.el' reincarnated as a separate repository. It was already available as a separate package, and since it can be of use for packages that have absolutely nothing to do with `magit' it makes sense to maintain it separately. That wasn't done before because that would have made it harder to change it and its users within the magit repository in parallel. I expect there will be few such changes in the future. * Added new library `magit-submodule.el'. It contains code that was previously spread across various libraries. * Added new option `auto-revert-buffer-list-filter' and redefined `auto-revert-buffers' from `autorevert.el' to use it. Added new predicates `magit-auto-revert-buffer-p' and the more restrictive `magit-auto-revert-repository-buffer-p', which are both intended to be used as potential value of the option. For now the option defaults to `nil', but that might change in a future release. When Magit explicitly calls `auto-revert-buffers' (as opposed to when that is called due to a file notification event or by a timer), and `auto-revert-buffer-list-filter' is `nil', then it is let-bound to `magit-auto-revert-repository-buffer-p'. Users who use Tramp and experience delays, should consider setting the option to `magit-auto-revert-repository-buffer-p'. * By default, invoking `magit-unstage' on a committed change now performs an action which is somewhat similar to unstaging. The change is reverted in the index, but not the working tree. This allows extracting changes from HEAD. Setting the new option `magit-unstage-committed' to nil, disables this behavior. Attempting to unstage a committed change would then result in an error again. * Because file notifications may arrive with a delay, the option `magit-auto-revert-immediately' now defaults to `t' even when file notifications can be used, * Like `magit-refresh' already did, `magit-refresh-all' now runs the hooks `magit-pre-refresh-hook' and `magit-post-refresh-hook'. * The heading of the section which lists commits that exist in the current branch but not in its upstream was changed from "Unpushed to " to "Unmerged into ", because one usually should merge into that branch instead of pushing to it. * Added new commands `magit-remote-set-head' and `magit-remote-unset-head'. * By default `magit-clone' now deletes the symbolic-ref "origin/HEAD" right after running `git clone', which insists on creating it. The new option `magit-clone-set-remote-head' can be set to `t' to go back to keeping that symbolic-ref. We default to removing it, because it does not actually get automatically updated when the HEAD of the remote changes, which makes it rather pointless. * Added new option `magit-prefer-remote-upstream' which controls whether commands which read the upstream or starting-point from the user would rather offer a local or a remote branch as default completion candidate. * Added the switch `--cover-letter' to `magit-patch-popup', and taught `magit-format-patch' to immediately open the letter in a buffer. * Added new option `++order' to the various log popups. This option and its value are converted to `--VALUE-order' before calling `git'. This option was added instead of the switches `--author-date-order', `--date-order', and `--topo-order' because adding all three would be too noisy and because they are mutually exclusive. Fixes since v2.4.1 ------------------ * Creating a stash in a secondary working tree failed if no other stash already existed in the repository. * Creating a Magit buffer failed if `uniquify-buffer-name-style's value is `nil'. * Resetting a branch to an arbitrary commit caused its upstream configuration to be mangled. * Resetting a branch to another branch caused the former to be configured as the upstream of the latter. That behavior was introduced by accident when the argument `--track' was replaced with the variable `branch.autoSetupMerge' in the popup. Because it would be undesirable to restore the `--track' argument in the popup, one now has to use a prefix argument to set the upstream while resetting. * The manually set state of the margin in log and reflog buffers was not preserved and instead reset to the default state when a command was invoked which changes what log/reflog is being displayed. * Pressing RET on a variable in a popup caused an error. This release also contains the fixes described in the v2.4.1 release notes, as well as various typofixes, documentation updates, code clean-ups, bug fixes, and other small improvements. Authors ------- 62 Jonas Bernoulli 9 Kyle Meyer 4 Noam Postavsky 3 Alex Dunn