1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251
|
Magit v2.3.0 Release Notes
==========================
Released 28 October 2015 by Jonas Bernoulli.
We are pleased to announce the release of Magit version 2.3.0,
representing 367 commits by 12 people over 10 weeks.
Changes since v2.2.0
--------------------
* Added `--interactive' switch to `magit-rebase-popup' so that rebase
variants which normally perform a non-interactive rebase can be used
to perform an interactive rebase too. #2186
* Commands that perform an interactive rebase should no longer be used
non-interactively (i.e., they should only be used as commands). #2187
* Rebasing commands now can start with a root commit. Root commits
are detected automatically, so users don't have to use the `--root'
switch explicitly. #2187
* Added new command `magit-checkout-file'.
* Added new option `magit-bury-buffer-function' to give users more
control over how Magit buffers are buried, replacing the old binary
option `magit-restore-window-configuration'. The default is still
the same, i.e., `magit-restore-window-configuration' is used. #2193
* Added new function `magit-mode-quit-window' as a simpler variant to
`magit-restore-window-configuration'. #2193
* Information about related refs in `magit-revision-mode' buffers are
now grouped in the same section as other headers and are formatted
like those other headers instead of like diffstats. The redundant
header which previously grouped the related refs section is gone.
All headers are inserted by the new `magit-insert-revision-headers'
section inserter. #2216
* No longer avoid calling git more than absolutely necessary when
creating a `magit-revision-mode' buffer. This simplifies parsing,
makes it simpler to prettify how information is presented, allows
users to customize how and in what order information is presented,
and prepares for faster, asynchronously created diffs. #2216
* The various sections in revision buffers are now inserted using new
section inserters named `magit-insert-revision-{*}', all of which
are part of the default value of `magit-revision-sections-hook'.
#2216
* The various sections in diff buffers are now inserted using new
section inserters named `magit-insert-diff-{*}', all of which are
part of the default value of `magit-diff-sections-hook'. #2216
* Added new option `magit-revision-headers-format' whose value is
passed to `git show --format=' to insert most of the headers,
excluding the related-refs headers. The default value now uses
placeholders which respect information in the file ".mailmap".
#2216
* Removed options `magit-revision-show-notes',
`magit-diff-show-xref-buttons', `magit-revision-show-xref-buttons',
`magit-diff-show-diffstat', and `magit-revision-show-diffstat'.
Whether these sections are inserted is now controlled using the
hooks `magit-diff-section-hook' and `magit-revision-section-hook'.
#2216
* Gravatar images can now be shown in `magit-revision-buffers'. New
option `magit-revision-show-gravatars' controls whether these images
should be inserted and can also be used to adjust to customizations
of `magit-revision-headers-format'.
This feature is not enabled by default due to privacy concerns.
Gravatar images are spliced into two halves which are then displayed
on separate lines. On OS X the splicing has a bug in some Emacs
builds, which causes the top and bottom halves to be interchanged.
Setting the new option `magit-revision-use-gravatar-kludge' to `t'
works around this issue. #2216
* After using the region to stage or discard parts of a hunk, point is
now placed on the beginning of the next or previous block of changed
lines. Previously we just jumped to the beginning of the hunk at
the same index as the previous hunk, but that often was very far
away from where point was before the refresh. #2227
* The function `magit-toplevel' was refactored and many tests were
added. It now returns the correct value when a symlink to a
sub-directory of a working tree is involved. #2242
* New option `magit-keep-region-overlay' allows displaying the region
overlay together with the visualization of a valid Magit selection.
See the doc-string for why we think you shouldn't do that, but if
you disagree then you can now have it your way. #2091
* Avoid the inefficiency of `git log --graph --max-count=N REV' (it
calculates the graph for all reachable commits, not just the N
commits), by additionally limiting the history using a range
calculated from REV and N, when possible. #2243
* Renamed `magit-file-buffer-mode' to `magit-file-mode'. Related
symbols were renamed accordingly.
* Added new minor mode `magit-blob-mode' and new commands
`magit-blob-previous' and `magit-blob-next'. #2195
* Added new commands `magit-branch-spinoff' and `magit-branch-reset'.
#2191
* Added new option `magit-status-expand-stashes'.
* In addition to `default-directory' also set `list-buffers-directory'
to the top-level of the working tree in Magit buffers, causing that
directory to be displayed in the "File" column of the *Buffer List*
buffer.
* Added a kludge to keep Cygwin and MYSYS2 executables from expanding
globs when called from a native Windows Emacs executable. #2281
* Added a revision stack. The new commands `magit-copy-section-value'
and `magit-copy-buffer-revision', which are intended for use inside
Magit buffers, push an entry to the stack, and the new command
`magit-pop-revision-stack' inserts a representation into an editable
buffer. New option `magit-pop-revision-stack-format' controls how
the representation of the revision is formatted. The old commands
`magit-copy-as-kill' and `magit-copy-buffer-thing-as-kill' have been
removed. #2225
* The default values of options `magit-commit-extend-override-date'
and `magit-commit-extend-override-date' changed to `t'.
* Added new option `magit-log-show-margin'.
* Added new option `magit-log-remove-graph-args'. #2226
* Added support for showing actionable diffs inside logs. #2226
* Added basic support for tracing the evolution of a region. #2226
* Added new command `magit-stash-format-patch'.
* All apply variants learned how to apply multiple hunks at once. #2271
* Regular apply learned how to apply multiple files at once. #2271
* `git-commit-setup' learned to handle Cygwin paths. It had to be
taught about that separately from the rest of Magit, because, for
historic reasons, we try to keep the `git-commit' package usable
without Magit.
* The signatures of `magit-mode-setup' and `magit-mode-get-buffer'
have changed, and `magit-mode-get-buffer-create' has been removed.
Extensions have to be adjusted accordingly. #2282.
* All Magit-Mode buffers (including process buffers, but excluding
popup, blob-visiting, and file-visiting buffers, whose major-modes
do not derive from `magit-mode' and therefore aren't "Magit-Mode
buffers") are now displayed using `magit-display-buffer', which is a
wrapper around the low-level `display-buffer'. High-level functions
such as `pop-to-buffer' and `switch-to-buffer' are no longer used to
display Magit buffers.
`magit-display-buffer' uses the function specified by the new option
`magit-display-buffer-function' to actually display the buffer in
some window. The default value is `magit-display-buffer-traditional'.
By implementing their own variant to wrap around `display-buffer',
users can take complete control over how Magit buffers are displayed.
It's also possible to use `display-buffer' directly and specify the
display actions in `display-buffer-alist'.
Added new options `magit-pre-display-buffer-hook' and
`magit-post-display-buffer-hook', and removed the options
`magit-status-buffer-switch-function' and
`magit-diff-switch-buffer-function'. #2282
* Added new options `magit-generate-buffer-name-function',
`magit-buffer-name-format', and `magit-uniquify-buffer-names',
replacing the various `magit-{*}-buffer-name-format' options. #2282
* Added new command `magit-toggle-buffer-lock'. Previously it was
possible to prevent Magit from reusing an existing buffer to display
something else, using the command `magit-rename-buffer' (which was
removed). Now this is done by locking the buffer to its value.
#2282
* The status buffer is now always refreshed after running a Magit
command triggers a refresh. Previously that was only the case if
the buffer in which the command was invoked was a Magit buffer too.
* Added optional support for refreshing the status buffer every time a
buffer visiting a file, which is tracked in the current repository,
is saved. To enable this add `magit-after-save-refresh-buffers' to
`after-save-hook'.
* Added new functions `magit-log-maybe-update-revision-buffer',
`magit-log-maybe-update-blob-buffer',
`magit-status-maybe-update-revision-buffer', and
`magit-status-maybe-update-blob-buffer', and added some of them to
`magit-section-movement-hook'. Removed the function
`magit-log-maybe-show-commit', which served about the same purpose
as these new functions. Previously one had to customize the option
`magit-diff-auto-show' to control when the other buffer was updated,
now one does so by adding or removing the above functions to or from
`magit-section-movement-hook'. The other window is only ever
updated now, to initially create it, use `SPC'. #2338
* Added new hook `magit-process-find-password-functions', with no
default members. These functions, if any, are run when git requests
a password from the user, if there are no such functions, or if they
fail, then the user has to type the password as before. Added new
function `magit-process-password-auth-source'. It can be added to
that hook and uses `auth-source' to get the password from one of the
sources it supports. #2311
* Removed broken support for unicode log graphs.
* `magit-expand-git-file-name' learned to use the output of `mount' to
map Cygwin paths into native Windows paths. `git-commit-setup' now
uses `magit-expand-git-file-name' if available. #2348
* Added new function `magit-define-popup-sequence-action' and taught
related functions about `:sequence-actions'.
* Added new hook `magit-credential-hook' and added new hook function
`magit-maybe-start-credential-cache-daemon' to it. This allows
starting Git's credential daemon separately, which is necessary
because Emacs sends SIGHUP and closes the pty when e.g `git push'
(which started the daemon) finishes. Upon receiving that signal
the daemon terminates. We work around this by starting the daemon
directly before invoking the git subcommand which might need
credentials. #2360
This release also contains the changes described in the v2.2.1 and
v2.2.2 release notes, as well as various other documentation fixes,
code clean-ups, bug fixes, and other small to medium improvements.
Authors
-------
305 Jonas Bernoulli
38 Kyle Meyer
15 Noam Postavsky
1 Andriy Kmit'
1 Barak A. Pearlmutter
1 Brian Warner
1 Damien Cassou
1 John Mastro
1 Nicolas Petton
1 Nikolay Martynov
1 Peter Jaros
1 Phil Sainty
|