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
|
* Magit v2.90.0 Release Notes
Released 8th November 2018 by Jonas Bernoulli.
I am pleased to announce the release of Magit version 2.90.0,
representing 395 commits by 18 contributors over five months.
Also see https://emacsair.me/2018/11/08/magit-2.90.
** Breaking changes
- Dropped support for Emacs 24.4. At least Emacs 25.1 is required
now.
- Dropped support for Git 1. At least Git 2.0.0 is required now. The
reason 2.0.0 is the new minimal version isn't its roundness but the
discovery that some parts of Magit already depended on that release
for two years. Since we will soon drop support for versions before
(probably) 2.4.0 anyway, we don't add a backward compatibility
kludge for the feature that already requires 2.0.0 but instead bump
the minimal version a first time.
- Many commands were renamed, making their names longer. The old
names are defined as aliases for now. This is part one of a two
part change. In this release we rename, for example, ~magit-tag~ to
~magit-tag-create~ and in a later release ~magit-tag-popup~ will be
renamed to ~magit-tag~. #3619
- Removed many obsolete variable and function aliases.
- Removed many obsolete variables that are not mere aliases.
- Removed ~magit-section~ accessor functions. Use the ~oref~ and ~oset~
functions instead.
- The function ~magit-section-when~ has been deprecated in favor
of ~magit-section-match~ or the new ~magit-section-value-if~. The
signatures of some related low-level functions have changed. #3590
- The ~submodule~ section type has been renamed to ~module~, same for the
plural variant and the related section-specific keymaps. 35f803c9c,
59e3891fd
- Added a new function ~magit-completing-read-multiple*~, which is more
like ~magit-completing-read~ than ~magit-completing-read-multiple~.
Authors of extension should use the new function, which eventually
will replace the old one. cb4d59190
** Changes since v2.13.0
- Added a new mode ~magit-wip-mode~, which enables automatic committing
to work-in-progress refs whenever that makes sense. Previously
multiple ~magit-wip-*~ modes had to be enabled to accomplish the same.
These modes still exist, the new mode is implemented on top of them,
but their explicit use by the user is discouraged. #3534
- Added a new option ~magit-wip-merge-branch~, which causes the current
branch to be merged into its wip refs after creating a new commit on
the current branch. This isn't enabled by default yet because some
additional tooling is required to deal with the fact that this
prevents the wip refs from ever being garbage collected, and results
in unwieldy commit graphs when history manipulation is involved.
#3534
- Added new commands ~magit-wip-log-index~ and ~magit-wip-log-worktree~.
#3534
- It is now possible to specify the major-mode used to edit commit
messages on a per-repository basis. The same major-mode is also
used to prettify commit messages when displaying existing commit
messages in ~magit-revision-mode~ buffers.
To set the major-mode to be used for commit messages add an entry
to the appropriate ~.dir-locals.el~ file using ~git-commit-mode~ as
the key, as if that mode were a major-mode. This can also be used
to set other variables in the buffers used to /edit/ commit messages.
If ~$GIT_WORK_TREE/.git~ is a file, then ~$GIT_WORK_TREE/.dir-locals.el~
would normally not apply when editing a file inside ~$GIT_DIR~. Magit
uses it anyway unless ~$GIT_DIR/.dir-locals.el~ exists.
55ba0534c, d7412da32, c5269547a
- Added a new major-mode ~git-commit-elisp-text-mode~ intended to be
used when editing commit messages for Elisp projects. It derives
from ~text-mode~ and additionally highlights ~`symbols'~ and "strings".
d7fa6632b
- Changed the order and the initial visibility of log sections in the
status buffer to optimize for "usefulness". Previously the focus
was on making it more likely that the user did not ignore the less
frequently useful logs, but that was quite annoying because it got
in the way of the more frequently performed tasks. #3518
- Added new option ~magit-status-initial-section~, which controls which
section point is placed on when a status buffer is created. The new
default is to place point on the section that follows the headers,
i.e., the second section. This is quite flexible, you might want to
read the doc-string. 87de83da8, #3562, #3518
- Added new commands ~magit-commit-absorb~ and ~magit-commit-absorb-popup~.
These commands depend on the ~git-autofixup~ script, which is available
from https://github.com/torbiak/git-autofixup. #3053
- Began migrating from using section "types" to using section classes
that can inherit from other classes. #3590
- Removed many backward compatibility hacks, which are no longer
necessary.
- Began to use features and many convenience functions that we
couldn't use before because we still supported Emacs 24.4.
- ~magit-file-rename~ now reads the target from the same directory as
the source. This is more convenient because removing parts of the
path is easier than adding them again.
- Added new ~magit-gitignore-popup~ and bound ~I~ to it, making it
possible to use ~i~ for the ~magit-imerge-popup~ from the ~magit-imerge~
package.
- Renamed the existing command ~magit-describe-section~ to
~magit-describe-section-briefly~ and added a new command
~magit-describe-section~, which pops up a ~*Help*~ buffer,
which contains information about the function and hook
used to insert the section. #3539
- Added new ~magit-refname-pullreq~ face and a corresponding entry to
~magit-ref-namespaces~.
- Added new option ~magit-log-trace-definition-function~, which allows
specifying the function that ~magit-log-trace-definition~ should use
to determine the function at point. The default is ~which-function~.
Previously the less complete ~add-log-current-defun~ was used.
#3483, 9ff266358
- fixup! and squash! are now highlighted like [keywords] in logs.
426773040
- Added new stub commands ~magit-browse-thing~ and ~magit-edit-thing~.
Like other ~magit-*-thing~ functions they are intend to be replaced
in section-specific keymaps. The ~forge~ package will use do so for
these commands. 56fccaca6, 0fa3092eb
- In case they are bound when Magit is loaded then ~$GIT_DIR~ and
~$GIT_WORK_TREE~ are unset now. Magit breaks if these variables are
set and the most likely cause for them to be set is a user error.
2d7d5d840
- ~magit-merge-into~ now only offers local branches for completion and
defaults to the upstream. If the upstream is a remote branch then
it defaults to the respective local branch. a52d70198
- It is now possible to set the face used to highlight the headings of
certain sections using the new ~heading-highlight-face~ slot. 2319a1e0e
- The summary line of a commit message and the first line of notes are
now emphasized more to make it more obvious what text is part of the
commit message and what text was added by a note. fda4b936c
- Detection of the branch at point was improved. #3530
- Added new shortstat margin style for logs. Performance isn't good
yet, so you might want to avoid this for long logs. #3035
- Added new variable ~magit-perl-executable~ for platforms that put ~perl~
in unusual places. We use ~perl~ for some one-liners that are embedded
in lisp because we known that it is available because ~git~ depends on
it. #3538
- Added new command ~magit-reset-worktree~. The existing ~magit-reset-*~
commands already implemented the variants supported by ~git reset~,
now Magit also implements the variant missing from that. b4d5c2bee
- Improved ~magit-process-password-auth-source~'s entry matching.
60a335e5c
- Added new hook ~magit-create-buffer~ hook. 2113dfc3d
- When the user "discards" a file with conflicts then they are asked
which side of the conflict they want to keep. When multiple files
are selected, then it is now possible to decide for all of them at
once. #3553
- Added option ~--ignore-submodules~ to diff popups. This option does
not only affect diffs but also the dedicated module sections and can
therefore be used to temporarily hide all information about modules,
which can be expensive to calculate. #3555, #3568
- Added ~--graph~ to the default value of ~magit-log-select-arguments~
instead of hard-coding this argument for some of the users of the
log-select machinery. #3559
- The upstream of the current branch is no emphasized in logs, by
default by making it italic. #3573
- Added new command ~magit-submodule-remove~ and the new related option
~magit-submodule-remove-trash-gitdirs~. The default is to not trash
the gitdirs. ~magit-submodule-add~ now offers to reuse an existing
gitdir when re-adding a submodule. #3585
- ~magit-submodule-add~ is run asynchronously now. #3585
- Information about the running Git process is now also shown in the
mode-line of buffers that were created after the process was
started. 43264c873
- Rebase commands that continue a rebase sequence can now use ~git rbr~
instead of ~git rebase~. To initiate a rebase sequence using ~git rbr~
you may use https://github.com/fanatoly/magit-rbr. c2cd780b2
- The manual is now also available in epub format, but it isn't very
pretty. #3579
- Added new hooks ~magit-stage-hook~ and ~magit-unstage-hook~. #3496
- Added new hook ~git-commit-post-finish-hook~, a hook that has been
requested many times but which I did not implement before because it
is impossible to make 100% reliable. When the ~emacsclient~ returns,
then that does not mean that the calling process is done too. We
avoid a race condition by waiting for ~HEAD~ to point to a different
commit than it used to point to, before running the hook. If it
takes longer than a second for this to happen, then the hook is not
run. A few unsafe commands are also blacklisted because they
perform other things after creating the commit and that would lead
to another race condition. #3615, d445a3d30, af4bf8df8
This hook is used instead of ~with-editor-post-finish-hook~ (on which
the former is build) to merge the current branch into its wip refs
when ~magit-wip-merge-branch~ is non-nil.
- Added new hook ~magit-post-commit-hook~, which is only run after
running a ~magit-commit-*~ command that does not require the user
to edit the commit message. #3615
- ~magit-format-patch~ can now be told to only include the changes to
certain files in the patch. It now also refreshes Magit buffers.
#3601
- The list of related refs in ~magit-revision-mode~ buffers is no longer
truncate when it doesn't fit on a single line. Instead users can
now specify the kinds of refs that should be inserted in such
buffers using the option ~magit-revision-insert-related-refs~. #3487
- Added new function ~magit-gitdir~ scheduled to replace ~magit-git-dir~
eventually because the latter has a really strange signature.
5f407a29a
- Created new libraries from existing code. 9efcb1e8b ff
- The option ~magit-revision-show-gravatar~ is now easier to customize.
Customizing it to only show one of the two images actually works
now. f4b8fee66, b82228bc6
- The option ~magit-repository-directories~ has a non-nil default value
now. f77d1158b
- The list of stashes in the status buffer is initially collapsed now.
4dc1d0593
- The commands ~magit-previous-line~ and ~magit-next-line~ are used by
default now. 3ae75c865
- Added support for ~--left-right~ output in logs. #3627
- Added new option ~magit-with-editor-envvar~. Changing its value from
~GIT_EDITOR~ to ~GIT_SEQUENCE_EDITOR~ allows users to continue to use
Magit (~git-rebase.el~ actually) to edit rebase sequence but to use
another editor to edit commit messages and such. #3629
- Added new option ~magit-clone-default-directory~. #3635
- ~magit-ref-namespaces~ is now taken into account when colorizing
branch names in buffers listing refs. #3645
- Added new option ~magit-revision-fill-summary-line~. #3610
** Fixes since v2.13.0
- A confirmation prompt during rebase was wrong. 37d76f409
- ~magit-rebase-autosquash~ asked for confirmation when the user already
confirmed earlier. 02e6c75b6
- ~magit-commit-add-log~ inserted after the diff that gets inserted if
~commit.verbose~ is ~true~. #3480
- ~magit-log-wash-rev~ errored in ~magit-cherry-mode~, starting with Emacs
26.1.
- ~magit-dired-jump~ failed, starting with Emacs 26.1. #3469
- Magit used a completion function to make the built-in completion
respect the collection's order. Even though that wasn't necessary
for Ivy and Helm it did the same here, which became a problem when a
change in Helm caused fuzzy completion to break in combination with
a completion function. Likewise a change in Ivy caused Magit's sort
order to be ignored, which we work around now. #3476, #3477
- In some edge cases ~magit-branch-pull-request~ used to set Git
variables to invalid values. #3417
- The section visibility cache used ~eq~ when it should have used ~equal~.
It also briefly used ~alist-get~, which we cannot do because that did
not take a ~testfn~ argument in Emacs 25. #3495, #3499
- Detecting whether a commit has already been pushed to a "publishing"
branch was much slower than it had to be. #3519
- ~magit-gitignore-popup~'s autoload definition was broken.
- When using cygwin, then ~git-commit-setup-font-lock~ could end up
trying to run git in a non-existent directory. #3505
- ~magit-completing-read~ did not protect the value of ~this-command~ even
though there is code that assumes it does. #3529
- ~magit-read-file-trace~ in some cases claimed that valid user input
was invalid even though it was valid. Now we don't try to validate
it anymore. #3531
- We didn't account for the surprising fact that asking whether the
value of a local variable is risky can change point. #3541
- ~magit-merge-into~ signaled an error if the upstream of the current
branch isn't configured instead of letting the user pick a target.
#3550
- Some of the more complex ~magit-cherry-*~ variants did not abort if
the first step failed. #3556
- Trying to visit a commit of a submodule directly from the status
buffer of the super-projects resulted in an error. #3563
- ~magit-file-rename~ failed to rename a file that is located at the
top-level of the working tree. #3569
- Magit didn't account for ~git rebase -i --root~ corrupting the root
commit's author date field, resulting in its output being corrupted
too. #3574
- If given one invalid rev, then ~magit-rev-eq~ returned ~nil~, but when
both revs are invalid, then it returned ~t~. Now it returns ~nil~ in
both cases.
- In an edge case ~magit-diff-type~ falsely concluded that the
uncommitted changes in a diff buffer already are committed. #2627
- ~magit--github-url-p~ failed to return ~t~ for an url for Github
Enterprise instances. #3572
- Trying to insert Gravatar images resulted in an error if the service
is not reachable. #3597
- ~magit-display-buffer~ always selected the appropriate frame even if
that was already selected. That is undesirable because selecting
a frame has side-effects. f07eb85c6
- A key binding was not updated when ~magit-submodule-deinit~ was renamed
to ~magit-submodule-unpopulate~. b06845208
- ~magit-submodule-visit~ could end up re-populating the visited module.
3d794cd01
- The third-party ~git-annex~ program converts submodule gitdirs to
symlinks, which we did not account for. #3599
- ~magit-bisect-start~ did fail silently when invalid user input, which
flipped the good and bad revisions, instead of providing an
informative error message. #3604
- ~magit-bisect-start~ did fail silently when there are uncommitted
changes instead of providing an informative error message. In some
cases it actually is possible to bisect with uncommitted changes but
that would be dangerous and we do not try to detect whether that is
the case and just always error out. #3604
- When applying changes, then the ~--unidiff-zero~ and ~-C0~ arguments
were not automatically used when needed. The former wasn't used
because of a bug, the latter because I was not aware that there
was an edge case that makes that necessary. #3608
- Backported a fix (from Emacs 27) for an Emacs bug that sometimes
caused ~git rebase~ to fail to acquire the ~index.lock~. #2708,
https://debbugs.gnu.org/cgi/bugreport.cgi?bug=21559
- Autoloading ~magit-submodules~ didn't work. #3618
- Reverting files failed if the selection contained only binary files.
c7bbe3e9a
- ~magit-read-repository~ failed when ~magit-repository-directories~ is
non-nil but no repository can be found in those directories. #3636
- Attempting to reverse changes to binary files failed with an error
that wasn't informative enough. #3625
- When a local branch is being renamed, then ~magit-branch-rename~ used
to also rename the (remote) push-target, which is unsafe in some
cases. Now it always asks the user before doing so. 14c7b1381
* Authors
333 Jonas Bernoulli
31 Kyle Meyer
13 Noam Postavsky
2 Phil Sainty
1 Alex Branham
1 Aria Edmonds
1 Arialdo Martini
1 Basil L. Contovounesios
1 Benjamin Motz
1 Bob Uhl
1 Eric Prud'hommeaux
1 Felix Yan
1 John Morris
1 Jordan Galby
1 Louis Roché
1 Mak Kolybabi
1 Miciah Masters
1 N. Troy de Freitas
1 Pierre Neidhardt
1 Raimon Grau
|