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 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437
|
Magit v2.9.0 Release Notes
==========================
Released 7 December 2016 by Jonas Bernoulli.
We are pleased to announce the release of Magit version 2.9.0,
representing 250 commits by 18 people over 15 weeks.
Also see https://emacsair.me/2016/12/07/magit-2.9.
Breaking changes since v2.8.0
-----------------------------
* For historic reasons "RET" behaved differently in `magit-refs-mode'
than anywhere else. "RET" is one of Magit's most essential key
bindings and users quickly learn that regardless of what is actually
at point, it always shows more information about that thing in
another buffer. It can be very confusing if the references buffer
breaks this convention.
Now `magit-visit-ref' behaves just like `magit-show-commit' even in
`magit-refs-mode' buffers. By default at least; you can easily
revert this change using:
(setq magit-visit-ref-behavior '(checkout-any focus-on-ref))
However we recommend that you instead press "b b RET" to checkout
the reference at point, just like you always had to do in other
buffers. And "C-u y o RET" to make commit counts and lists of
cherries commits relative to the reference at point.
Furthermore the option `magit-visit-ref-create' was removed. If you
previously had that set to `t', then you can achieve the same using:
(add-to-list 'magit-visit-ref-behavior 'create-branch)
However we recommend that you instead press "b c RET RET", just like
you always had to do in other buffers. #2868
* The option `magit-popup-show-common-commands' now defaults to `nil'.
This was done to make popups less noisy but increases the odds
that some users will never become aware of the common commands.
To counter that, the usage instructions displayed in the echo area
now also mention the key that can be used to show these commands
temporarily. #2868
You can easily revert this change using:
(setq magit-popup-show-common-commands t)
* The option `magit-popup-use-prefix-argument' defaults to `default'
now, meaning that the use of a prefix argument causes the popup's
default action to be invoked directly without the popup being shown
first.
Previously the use of a prefix argument did not invoke the popup
or its default action, and instead informed users that they had to
choose what behavior they wanted and that they had to set the option
accordingly. Doing that was necessary three years ago, when the
default behavior changed when "magit-key-mode.el" was replaced with
"magit-popup.el". Now we don't need that safety net anymore. #2868
* If, and only if, point is on a removed line in a diff, then "RET"
now jumps to the last commit which still had that line, not the
commit which removed that line. Staged changes are excluded from
this new behavior because in that case it seems favorable to always
visit the file in the working tree to make further changes. #2755
You can easily revert this change using:
(setq magit-diff-visit-previous-blob nil)
* The margin that by default is displayed in pure log buffers and
optionally in some other buffers that contain logs is now more
flexible and easier to customize and to change on the fly.
The popup that "L" is bound to now features three commands that
for changing the appearance of the margin: `magit-toggle-margin',
`magit-toggle-margin-details' and `magit-cycle-margin-style'.
The binding for `magit-toggle-margin' has changed from "L t" to the
simpler "L L". You can easily revert this change using:
(magit-change-popup-key 'magit-log-refresh-popup :action ?L ?t)
(magit-change-popup-key 'magit-margin-popup :action ?L ?t)
For each mode that supports the margin there now exists a dedicated
option named `magit-*-margin', which controls whether the margin is
shown initially, whether the author name is displayed in addition
to the committer date, and how that committer date is formatted.
All of these options can be found in the new `magit-margin' Custom
group.
It is now possible to show the actual committer date, using a time
format of your choosing. Previously the only option was to display
the age of the commit.
The old options that were previously used to configure the margin
have been removed. If you have customized `magit-log-show-margin',
`magit-reflog-show-margin' and/or `magit-refs-show-margin', then you
now have to customize the respective new variable whose names do not
contain "-show". The same applies if you have previously changed
the value of `magit-log-margin-spec'. Unfortunately this cannot be
automated because the format of the values has changed and because
the old customizations do not unambiguously map to the new options.
You might also want to customize the options `magit-status-margin',
`magit-stashes-margin' and `magit-log-select-margin', for all of
which no corresponding `magit-*-show-margin' used to exist. Another
new option is `magit-refs-margin-for-tags'.
If you choose to display the commit dates instead of the commit
ages in all supported modes, then you should set `magit-log-margin'
before loading `magit'. If you do that then the default values of
the other `magit-*-margin' options will use the same commit date
style without you having to customize each option individually.
#2885, #2792
* By default Git-Commit no longer complains about a summary line that
is too long by some standards. You can easily revert this change
using: 2f115d51
(add-to-list 'git-commit-style-convention-checks
'overlong-summary-line)
* In buffers used to write commit messages `fill-column' is no longer
set to 72. Instead the default value 70 is used (or whatever local
or global value is set up through other means). You can easily
revert this change using: #2848, #2852
(setq git-commit-fill-column 72)
* When it takes too long to parse diffs, then Magit used to stop
expanding diff sections after one second. This was a constant
source of confusion and one second is a very long time anyway, so
this did not really help hiding the slowness, so this kludge was
effectively dropped. You can easily revert this change using:
(setq magit-diff-expansion-threshold 1.0)
By the way, improving performance will soon be a priority again.
#2886
Changes since v2.8.0
--------------------
* Magit has a new shiny logo! It was created by Dmitriy A. from
Prospect One. Thanks a lot! https://prospectone.io/portfolio/magit
* The new option `magit-branch-adjust-remote-upstream-alist' can be
used to configure what branch to use as upstream when branching a
remote branch. Without setting this option the upstream ends up
being the same branch as the one referred to by the push-remote.
85c3053d
* The per-refresh cache, which is used to save calls to git because
that is surprisingly slow on Windows, has been improved for calls to
`git config'. Instead of just avoiding identical calls to `git
config' as for other sub-commands, we now call `git config --list'
only once per refresh to obtain a list of all variables and their
values. #2743
* When visiting a file or blob buffer by pressing "RET" while point is
inside a diff, then the position this jumps to is now accurate (even
when jumping to the file in the working tree from a diff that wasn't
about changes in the working tree). #2828
* When visiting a file or blob buffer by pressing "RET" while point is
inside a diff, then the buffer may be widened but only if necessary.
If it isn't necessary to widen the buffer to jump to the appropriate
location, because that position falls into the narrowed region, then
that the buffer isn't widened. #2804, #2818
* Hunk refinement is now faster. Users who previously set
`magit-diff-refine-hunk' to `nil' due to performance issues may
find that it now works well even when set to `all'. #2834
* The new options `magit-diff-highlight-hunk-region-functions' and
`magit-diff-unmarked-lines-keep-foreground' (which was previously
defined as an undocumented variable) allow tuning the appearance
of the hunk-internal region.
The new function `magit-diff-highlight-hunk-region-using-face',
provides a new style; it makes the hunk-internal region bold (or
italic). I recommend you customize the above option to use this
function instead of one of the functions mentioned below.
The new functions `magit-diff-highlight-hunk-region-using-overlays'
and `magit-diff-highlight-hunk-region-using-underline' draw one-pixel
lines before and after the hunk-internal region. Both of these
functions have (different) glitches and due to limitations of Emacs'
display engine it is not possible to fix those. #2293, #2758, #2791
* Added command `magit-find-git-config-file' and variants to make it
easier to open a file located in the git directory when ".git" is
a regular file whose contents describe the location of the real git
directory. 8664223c
* Added command `magit-emacs-Q-command' to make troubleshooting and
bug reporting easier for users not installing from the git
repository. #2856
* The command `magit-branch-spinoff' learned to remove only a subset
of commits from the previously current branch, instead of resetting
it to its upstream, when the region selects commits reachable from
HEAD. 1e652b87
* The command `magit-branch-delete' now falls back to deleting the
tracking branch when the user attempts to delete a remote branch
which does not actually exist on the remote anymore. #2778
* The command `magit-diff-dwim' learned about additional cases. On
a non-current branch it now shows the diff for "CURRENT...BRANCH"
(instead of "BRANCH..CURRENT") and inside a stash buffer it shows
the diff for the commit at point. #2812
* The command `magit-push', which "o" is bound to in the push popup,
now offers the push-branch as default choice. Only if that is not
set does it default to the upstream as before. And when pushing a
commit that is reachable from HEAD, then it offers to push to the
push-branch or upstream of the current branch (which still has to
be forced explicitly). #2820
* Log commands now support completion of refs in the "refs/tags" and
"refs/pull" namespaces. #2878
* Added option `magit-no-confirm-default' to allow specifying commands
which should just use the default choice instead of having the user
confirm that by pressing RET. I recommend you don't use this, but
if you think that the defaults are so good that you always want to
use them, then this might make it a bit easier for you. #2741
* Added option `magit-slow-confirm' for users who are afraid they
would answer `y-or-n-p' questions to quickly. One action, deleting
all stashes, now defaults to having to be confirmed with "yes RET".
#2752
* Added option `magit-view-git-manual-method' to allow following links
to the Git Info manual by visiting the respective manpage instead.
de38266a
* The option `magit-branch-prefer-remote-upstream' now also supports
regexps as members instead of only complete branch names. #2823
* The option `magit-branch-read-upstream-first' used to be a boolean.
Now it supports a third value `fallback', which means to read the
upstream first like `t', but if the value provided by the user does
not reference an existing revision, then it is treated as the name of
the new branch and the upstream is read using the second prompt, as
if the value of this option were `nil'. #2741
* When deleting a stash, the hash is now logged to the process log
buffer in addition to *Messages*, making it more likely that a
user who accidentally deleted a stash would find the information
required to undo that. #2746
* The environment variable `INSIDE_EMACS' is now set when calling git.
#2789
* `magit-define-popup' now allows specifying `:max-action-columns' per
section by using a function that returns a different value based on
the heading, which is passed as argument. 964fcbe0
* Added support for new gpg status letters X, Y, R, and E. #2845
* Added `hl-line-mode' to `magit-repolist-hook' and
`magit-submodule-list-hook' and defined those hooks explicitly.
9f806732
* Added the `--gpg-sign=' option to the revert popup. 916e4599
* Added the `--sort=' option to the show-refs popup. (Use "C-u y" to
show the popup instead of invoking its default action as "y" does.)
8ab81f06
* Added new faces `git-rebase-comment-heading'
and `git-rebase-comment-hash'. #2769
* `whitespace-mode' is not compatible with Magit buffers, where it is
now actively prevented from being turned on by the user. #2821
Fixes since v2.8.0
------------------
* The command `magit-list-repositories' failed on empty repositories.
09fac022
* The Git variable `pull.rebase' was ignored when determining whether
the current branch is being rebased onto its upstream in order to
display that information in the status buffer. 9c946ee3
* On 32-bit systems `magit-format-log-margin' failed because it tried
to truncate a time float that was too large for that. #2765
* On Emacs v25.1 the hunk-internal region flashed briefly on
mouse-down-1 events and the delimiting horizontal lines could end
up having the height of a regular line instead of just a single
pixel. #2758
* On Windows, when using a `windows-nt' Emacs together with a cygwin
Git, we failed to instruct Emacs to not use dos shell quoting when
calling git. And if Git wasn't available, then that caused an
error, which prevented Magit from being loaded. #2842
* The encoding of commit messages is controlled by the Git variable
`i18n.logOutputEncoding' but we failed to take that into account.
Fixes by setting `i18n.logOutputEncoding' to UTF-8, but only inside
Magit and only for `window-nt'. #2738, #2813
* It wasn't taken into account, until a few days after the release,
that as of Git v2.11, the default abbreviation size is no longer
hardcoded as 7 but instead scales with the repository size. #2880
* File and directory local variables were not honored in the buffers
used to write commit messages. #2852
* The caching mechanism that is supposed to ensure that sections of
unpulled and unpushed commits remain collapsed even when they
disappear was broken for a while. 0ad041c4
* Process sentinels did not in all cases ensure that the correct
buffer was current before doing something that assumes that this is
the case. Almost always that did not matter because it was the case
anyway, but if other timers are running then it is possible that
those make the wrong buffer current. #2836
* Process sentinels and filters used when blaming assumed that the
`exit' process status indicates success. #2836
* The commands `magit-clone' and `magit-init' did not work over Tramp.
#2806, #2807
* The commands `magit-worktree-checkout' and `magit-worktree-branch'
did not expand the path they pass to git, which is necessary because
git does not know the meaning of "~/". #2796
* The commands which create fixup/squash commands and then immediately
squash them into the target commit did not remove `--gpg-sign' or
add `--no-gpg-sign'. Signing such commits is not only unnecessary;
unless the passphrase was cached earlier, trying to sign resulted in
the process indefinitely waiting for the passphrase to arrive with
no way for the user to actually provide it. #2799
* Depending on the value of `magit-save-repository-buffers' the user
might have been asked whether s/he wants to save "git-rebase-todo",
which is never necessary and just a distraction. #2770, #2771
* The function `magit-save-repository-buffers' did not follow symlinks.
#2843
* Directories whose names begin with a period were filtered out when
using `magit-repository-directories' to calculate a list of repos.
#2830
* The user name and email, which are displayed when reading a gpg key
from the user, were not stripped from the chosen value before being
handed off to git. #2761
* When the upstream of the current branch is a remote whose url isn't
configured then that caused an error when refreshing the status
buffer. #2858
* Buffers visiting a blob used the file's `default-directory'
even when that directory did not exist in the working tree. The
top-level directory is now used as `default-directory' when the
subdirectory does not exist. cfe46766
* When visiting a directory by displaying a Dired buffer, we used to
display a buffer for the parent of the directory in question and
placed point on the name of the directory. But the intention always
was to show the Dired buffer for the directory itself. 5665ba94
* Visiting or deleting a submodule listed inside "Modules" failed.
The latter is now done by de-initalizing the module. c26b746e
* In the list of commits that are being rebased in the status buffer,
HEAD was sometimes prefixed with "same" when "stop" would have been
correct. #2877
* The highlighting of a non-empty second line in a commit message was
not automatically updated. #2777
* When `--force-with-lease' was added to the `magit-push-popup',
`--force' was removed, but sometimes the former just isn't enough.
be39a9ba
* The face `magit-diff-file-heading-highlight' used to inherit from
`magit-diff-file-heading', which by default makes text bold. That
resulted in the complete current heading to be bold, but only the
file-name part is supposed to be bold. a4b52516
* The manual stated that "DEL" in Git Rebase mode was bound to
`magit-diff-show-or-scroll-down', which was not the case. A new
command `git-rebase-show-or-scroll-down` has been added and bound
to "DEL" to provide this functionality. #2863
* The function `magit-repolist-status' did not expand the filename
which may be necessary when listing submodules. cc8c1385
* The macro `magit-with-temp-index' did honor the refresh cache, even
though its BODY may contain calls to git that are identical to
outside calls during the same refresh, but which are expected to
return a different value due to the use of a different index. #2883
* The log margin did not show the author of stashes. #2846
* The status header about the upstream did not take
`branch.NAME.rebase' into account. e65f15d0
* Highlighting overlays could not be garbage collected until after a
refresh. #2888
This release also contains typofixes, documentation updates,
code clean-ups, and other small bug fixes and improvements.
Authors
-------
196 Jonas Bernoulli
21 Kyle Meyer
12 Noam Postavsky
4 Alexander Gramiak
2 Adam Porter
2 Marco Wahl
2 Sean Allred
1 Allen
1 Basil L. Contovounesios
1 Chillar Anand
1 Graham Dobbins
1 Joakim Jalap
1 Josiah Schwab
1 Keshav Kini
1 Marian Schubert
1 Philipp Stephani
1 Tunc Uzlu
1 York Zhao
|