diff options
| author | Jonas Bernoulli <jonas@bernoul.li> | 2021-12-16 19:35:00 +0100 |
|---|---|---|
| committer | Jonas Bernoulli <jonas@bernoul.li> | 2021-12-16 19:35:00 +0100 |
| commit | 337a190c1a49266864545facecddcb4a89eca035 (patch) | |
| tree | 9744c5ce5b3176d2d6197060914583adb52e4f0a /docs/RelNotes | |
| parent | 65c4485e19bf570ebcb81fbaa6352c4e94bb05da (diff) | |
Rename Documentation/ to docs/
Diffstat (limited to 'docs/RelNotes')
48 files changed, 5962 insertions, 0 deletions
diff --git a/docs/RelNotes/0.5.1.txt b/docs/RelNotes/0.5.1.txt new file mode 100644 index 0000000..d08cdb0 --- /dev/null +++ b/docs/RelNotes/0.5.1.txt @@ -0,0 +1,11 @@ +Magit v0.5.1 Release Notes +========================== + +This is the first release of Magit. Enjoy! + +Released 14 August 2008 by Marius Vollmer. + +Authors +------- + + 157 Marius Vollmer diff --git a/docs/RelNotes/0.6.1.txt b/docs/RelNotes/0.6.1.txt new file mode 100644 index 0000000..a58c3ba --- /dev/null +++ b/docs/RelNotes/0.6.1.txt @@ -0,0 +1,24 @@ +Magit v0.6.1 Release Notes +========================== + +Released 16 October 2008 by Marius Vollmer. + +Changes since v0.5.1 +-------------------- + +Almost everything has changed. Some highlights: + + * Magit now works with Git 1.6.0. (John Wiegley) + + * Support for interactive rewriting. + + * Sections can be shown and hidden. + + * Staging, unstaging, applying, reverting and discarding changes can + now be done line-by-line, not only hunk-by-hunk. + +Authors +------- + + 212 Marius Vollmer + - John Wiegley diff --git a/docs/RelNotes/0.7.0.txt b/docs/RelNotes/0.7.0.txt new file mode 100644 index 0000000..d035539 --- /dev/null +++ b/docs/RelNotes/0.7.0.txt @@ -0,0 +1,70 @@ +Magit v0.7.0 Release Notes +========================== + +Released 8 March 2009 by Marius Vollmer. + +Changes since v0.6.1 +-------------------- + + * Tagging, on 't' and 'T'. + + * Stashing, on 'z' and 'Z'. + + * Wazzup, on 'w'. Wazzup gives you an overview over how other + branches relate to the current one. + + * There is more control over pushing. 'P' now takes a prefix argument + and pushing a branch without a default remote will ask for one. + + * Logs have changed a bit: 'l' shows the traditional brief log, and + 'L' shows a more verbose log. Use the prefix arg to specify the + range of the log. + + * M-x magit-status doesn't prompt anymore for a directory when invoked + from within a Git repository. Use C-u to force a prompt. + + * When you have nothing staged, 'c' will now explicitly ask whether to + commit everything instead of just going ahead and do it. This can + be customized. + + * The digit keys '1', '2', '3', and '4' now show sections on the + respective level and hide everything below. With Meta, they work on + all sections; without, they work only on sections that are a parent + or child of the current section. + + * Typing '+' and '-' will change the size of hunks, via the "-U" + option to git diff. '0' resets hunks to their default size. + + * Typing 'k' on the "Untracked files" section title will offer to + delete all untracked files. + + * Magit understands a bit of git-svn: the status buffer shows unpushed + and unpulled commits, 'N r' runs git svn rebase, and 'N c' runs git + svn dcommit. + + * Magit now also works when the directory is accessed via tramp. + + * M-x magit-status can also create new repositories when given a + directory that is not a Git repository. + + * Magit works better with oldish Gits that don't understand "--graph", + for example. + + * The name of the Git program and common options for it can be + customized. + +Authors +------- + + 107 Marius Vollmer + 18 John Wiegley + 9 Alexey Voinov + 5 Marcin Bachry + 3 Rémi Vanicat + 2 Alex Ott + 2 René Stadler + 2 Steve Purcell + 1 Daniel Farina + 1 David Wallin + 1 Ian Eure + 1 Jesse Alama diff --git a/docs/RelNotes/0.8.0.txt b/docs/RelNotes/0.8.0.txt new file mode 100644 index 0000000..3ce415f --- /dev/null +++ b/docs/RelNotes/0.8.0.txt @@ -0,0 +1,55 @@ +Magit v0.8.0 Release Notes +========================== + +Released 7 May 2010 by Phil Jackson. + +Changes since v0.7.0 +-------------------- + + * By setting magit-repo-dirs, you can get better repo completion. + Magit will offer all subdirectories (up to magit-repo-dirs level + deep) of the listed directories when magit-status asks for a + directory to work on. You can get the old behavior with a double + prefix to magit-status. + + * Hitting 'c' or 'C' while resolving a conflict in the middle of a + rebase will offer to continue the rebase instead of trying to commit + your changes. + + * Pulling will ask which branch to pull from when you don't have a + default branch configured. + + * Switching to a remote branch will offer to create a local tracking + branch for it. + + * Hitting C-c C-s while editing a commit message will toggle the + "--signoff" option. + + * Hitting 's' on the "Untracked files" section title will stage all + untracked files. + + * Hitting 'C-u S' will stage all untracked and tracked files. + + * Performance improvements in the status buffer. + + * Bug fixes to make Magit work better with newer Gits. + +Authors +------- + + 66 Phil Jackson + 53 Marius Vollmer + 27 Rémi Vanicat + 7 Alexey Voinov + 5 Hannu Koivisto + 5 Roger Crew + 4 John Wiegley + 4 Moritz Bunkus + 3 Ben Walton + 2 Marcin Bachry + 2 Óscar Fuentes + 1 David Abrahams + 1 Leo Liu + 1 Pavel Holejsovsky + 1 Ramkumar Ramachandra + 1 Steve Purcell diff --git a/docs/RelNotes/0.8.1.txt b/docs/RelNotes/0.8.1.txt new file mode 100644 index 0000000..95b204f --- /dev/null +++ b/docs/RelNotes/0.8.1.txt @@ -0,0 +1,28 @@ +Magit v0.8.1 Release Notes +========================== + +Released 10 June 2010 by Phil Jackson. + +Changes since v0.8.0 +-------------------- + + * New library `rebase-mode.el'. Edit Git rebase files. + + * New commands `magit-log-all' and `magit-log-first-parent'. + + * New command `magit-git-command'. Run any Git command. + + * `magit-remote-update' learned to fetch just the current remote. + + * `magit-tag' learned to place the tag on something other than HEAD. + +Authors +------- + + 55 Phil Jackson + 7 Rémi Vanicat + 7 Ævar Arnfjörð Bjarmason + 4 Natalie Weizenbaum + 2 Ramkumar Ramachandra + 1 Mark Hepburn + 1 Moritz Bunkus diff --git a/docs/RelNotes/0.8.2.txt b/docs/RelNotes/0.8.2.txt new file mode 100644 index 0000000..9367486 --- /dev/null +++ b/docs/RelNotes/0.8.2.txt @@ -0,0 +1,27 @@ +Magit v0.8.2 Release Notes +========================== + +Released 10 July 2010 by Phil Jackson. + +Changes since v0.8.1 +-------------------- + + * Use shorter more human readable representations for refs. + + * Optionally show refs for remote branches the way Git would. + + * Tell VC to update the mode-line for us. + +Authors +------- + + 21 Phil Jackson + 18 Natalie Weizenbaum + 2 Alan Falloon + 2 Moritz Bunkus + 2 Rémi Vanicat + 1 Alex Ott + 1 Leo Liu + 1 Sean Bryant + 1 Ævar Arnfjörð Bjarmason + 1 Óscar Fuentes diff --git a/docs/RelNotes/1.0.0.txt b/docs/RelNotes/1.0.0.txt new file mode 100644 index 0000000..92f9175 --- /dev/null +++ b/docs/RelNotes/1.0.0.txt @@ -0,0 +1,84 @@ +Magit v1.0.0 Release Notes +========================== + +Released 23 March 2011 by Phil Jackson. + +Changes since v0.8.2 +-------------------- + + * New library `magit-key-mode.el'. From a popup buffer dispatch + Magit/Emacs commands which wrap Git commands and select the + arguments passed to Git. Group various sets of related commands + in new menus and adjust them accordingly. + + * New library `magit-svn.el' based on code previously in `magit.el'. + Improve the implementation. Control `git svn' from Magit. + + * New library `magit-topgit.el' based on code previously in + `magit.el'. Improve the implementation. Control TopGit from Magit. + + * Provide a wrapper for `completing-read'. Support using iswitchb to + do completion. + + * Fixed and improved information shown during a rebase. + + * New macro `magit-define-inserter' to define functions which insert + sections. + + * New macro `magit-add-action'. A hook-like extension mechanism for + commands that behave differently based on the type of the section + at point. + + * New macro `magit-define-command'. Like `defun' but also define + a hook in addition to the function/command. If a hook function + succeeds do not run the function body as passed to this macro. + + * New commands `magit-add-change-log-entry' + and `magit-add-change-log-entry-other-window'. + + * New command `magit-change-what-branch-tracks'. + + * New commands `magit-run-git-gui' and `magit-run-gitk'. + + * Various new submodule commands. + + * Various new branch commands. + + * Various new log commands. Remove some old log commands. + + * Make reflog commands more like the log commands. + + * Numerous bugfixes and tweaks. + +Authors +------- + + 197 Phil Jackson + 27 Natalie Weizenbaum + 25 Óscar Fuentes + 22 Moritz Bunkus + 20 Rémi Vanicat + 17 Aaron Culich + 10 Timo Juhani Lindfors + 8 Ramkumar Ramachandra + 8 Ævar Arnfjörð Bjarmason + 6 Yann Hodique + 5 Hannu Koivisto + 5 Julien Danjou + 5 Peter J. Weisberg + 4 Leo Liu + 3 Robin Green + 2 Brian Warner + 2 Christian Kluge + 2 Marc Herbert + 1 Andreas Fuchs + 1 Chris Bernard + 1 David Abrahams + 1 Dominique Quatravaux + 1 John Wiegley + 1 Paul Stadig + 1 Philip Weaver + 1 Remco van 't Veer + 1 Robert Boone + 1 Rüdiger Sonderfeld + 1 Tom Feist diff --git a/docs/RelNotes/1.1.0.txt b/docs/RelNotes/1.1.0.txt new file mode 100644 index 0000000..0e1c1fb --- /dev/null +++ b/docs/RelNotes/1.1.0.txt @@ -0,0 +1,112 @@ +Magit v1.1.0 Release Notes +========================== + +Released 23 December 2011 by Yann Hodique. + +Changes since v1.0.0 +-------------------- + + * Added distinct faces for various different kinds of refs. + + * Completely redesigned existing faces. + + * Added library `magit-classic-theme.el' for users who like the old + faces better. + + * Share many more key bindings between all Magit modes. Previously + many commands were only available in certain buffers, even though + they are useful in all Magit buffers. + + * Added library `magit-simple-keys.el' for users who don't like the + popups. + + * Added support for using Ido to do completion. + + * Added support for Ediff. + + * Added shell script `magit'. + + * Added library `magit-bisect.el'. + + * Added library `magit-stgit.el'. + + * Added mode `magit-svn-mode'. + + * Added mode `magit-topgit-mode'. + + * Added mode `magit-rebase-mode'. + + * Added buttons to commit buffer to cylce to commits which were + previously shown. The commands are `magit-show-commit-backward' + and `magit-show-commit-forward. + + * Defined backward compatibility implementations of some Emacs + functions. + + * Type changes are now shown in diffs. + + * Added option `magit-set-upstream-on-push'. + + * Added option `magit-default-tracking-name-function'. + + * Added option `magit-log-auto-more'. + + * Added option `magit-create-branch-behaviour'. + + * Added option `magit-status-buffer-switch-function'. + + * Added option `magit-rewrite-inclusive'. + + * Added options `magit-highlight-trailing-whitespace' and + `magit-highlight-indentation'. + + * Added command `magit-show'. Visit REVISION:FILE. + + * Added command `magit-delete-branch-forced'. + + * Added command `magit-log-edit-toggle-author'. + + * `magit-reset-working-tree' learned to remove untracked files. + + * `magit-push' learned to set the upstream branch. + +Authors +------- + + 152 Peter J. Weisberg + 55 Yann Hodique + 18 Phil Jackson + 18 Pieter Praet + 18 Rémi Vanicat + 12 Moritz Bunkus + 10 Lluís Vilanova + 8 Eli Barzilay + 7 Nicolas Dudebout + 6 Roger Crew + 5 Štěpán Němec + 3 David Abrahams + 3 Hannu Koivisto + 3 Jeff Bellegarde + 3 Rüdiger Sonderfeld + 2 Alan Falloon + 2 Andreas Rottmann + 2 Andrew Kirkpatrick + 2 Craig Andera + 2 Jasper St. Pierre + 1 Andrey Smirnov + 1 Bastian Beischer + 1 Chris Moore + 1 Daniel Brockman + 1 Eric Davis + 1 George Kadianakis + 1 Kimberly Wolk + 1 Luke Amdor + 1 Luís Borges de Oliveira + 1 Marc Herbert + 1 Marco Craveiro + 1 Ramkumar Ramachandra + 1 Steve Purcell + 1 Thomas Jost + 1 Tibor Simko + 1 Tom Feist + 1 Ævar Arnfjörð Bjarmason diff --git a/docs/RelNotes/1.1.1.txt b/docs/RelNotes/1.1.1.txt new file mode 100644 index 0000000..21b3baf --- /dev/null +++ b/docs/RelNotes/1.1.1.txt @@ -0,0 +1,25 @@ +Magit v1.1.1 Release Notes +========================== + +Released 14 January 2012 by Yann Hodique. + +Changes since v1.1.0 +-------------------- + + * `magit-svn-get-local-ref' learned to expand branch specs containing + braces. + + * `magit-log-edit' learned to amend and create commits with no message. + + * Several other fixes and improvements. + +Authors +------- + + 6 Nicolas Dudebout + 6 Yann Hodique + 1 Graham Clark + 1 Justin Caratzas + 1 Peter J. Weisberg + 1 Ryan C. Thompson + 1 Timo Juhani Lindfors diff --git a/docs/RelNotes/1.1.2.txt b/docs/RelNotes/1.1.2.txt new file mode 100644 index 0000000..4950edc --- /dev/null +++ b/docs/RelNotes/1.1.2.txt @@ -0,0 +1,33 @@ +Magit v1.1.2 Release Notes +========================== + +Released 23 September 2012 by Yann Hodique. + +Changes since v1.1.1 +-------------------- + + * Modes now have proper mode-line lighters. + + * Hook variables are now defined semi-explicitly. + + * Uninteresting refs are no longer shown in logs. + + * The deprecated `assoc' library is no longer used. + + * Several other fixes and improvements. + +Authors +------- + + 13 Yann Hodique + 9 Peter J. Weisberg + 2 Jonas Bernoulli + 2 Ramkumar Ramachandra + 1 Bradley Wright + 1 Bryan Shell + 1 Damien Cassou + 1 Eric Davis + 1 John Wiegley + 1 Nic Ferier + 1 Nick Alcock + 1 Rémi Vanicat diff --git a/docs/RelNotes/1.2.0.txt b/docs/RelNotes/1.2.0.txt new file mode 100644 index 0000000..b27f259 --- /dev/null +++ b/docs/RelNotes/1.2.0.txt @@ -0,0 +1,73 @@ +Magit v1.2.0 Release Notes +========================== + +Released 23 September 2012 by Yann Hodique. + +Changes since v1.1.2 +-------------------- + + * Rewrote the branch manager. + + * Diffs are optionally refined using `diff-refine-hunk'. + + * Added library `magit-blame.el' defining new mode + `magit-blame-mode'. + + * Added library `magit-wip.el' defining new modes + `magit-wip-save-mode' and `magit-wip-mode'. + + * New section movement commands; `magit-goto-next-sibling-section' + and `magit-goto-previous-sibling-section'. + + * Added command `magit-file-log'. + + * Added command `magit-manual-merge'. + + * `magit-delete-branch-force' was merged into `magit-delete-branch'. + + * `magit-move-branch' learned to force the rename. + + * `magit-reset-working-tree' learned to remove ignored files. + + * `magit-pull' learned to set `branch.BRANCH.merge'. + + * `magit-log-edit' learned to respect GIT_AUTHOR_EMAIL, + GIT_AUTHOR_NAME and GIT_AUTHOR_DATE. + + * `magit-visit-item' learned to visit untracked files, diffs and + hunks. + + * Added option `magit-sha1-abbrev-length'. + +Authors +------- + + 157 Yann Hodique + 61 Nicolas Dudebout + 14 Peter J. Weisberg + 12 Jonas Bernoulli + 10 Ryan C. Thompson + 7 Miles Bader + 6 Damien Cassou + 5 Samuel Bronson + 4 Dale Hagglund + 4 Eli Barzilay + 4 Takafumi Arakaki + 4 rabio + 3 Leonardo Etcheverry + 3 Nick Alcock + 3 Rémi Vanicat + 3 Rüdiger Sonderfeld + 2 Graham Clark + 2 Hans-Peter Deifel + 2 Moritz Bunkus + 1 Andreas Liljeqvist + 1 Christian Dietrich + 1 Christopher Monsanto + 1 Daniel Hackney + 1 Hannu Koivisto + 1 John Wiegley + 1 Jonathan Roes + 1 Ole Arndt + 1 Ron Parker + 1 Suhail Shergill diff --git a/docs/RelNotes/1.2.1.txt b/docs/RelNotes/1.2.1.txt new file mode 100644 index 0000000..6e255bf --- /dev/null +++ b/docs/RelNotes/1.2.1.txt @@ -0,0 +1,15 @@ +Magit v1.2.1 Release Notes +========================== + +Released 23 May 2014 by Jonas Bernoulli. + +Changes since v1.2.0 +-------------------- + + * `magit-delete-directory' was rewritten to deal with an incompatible + change in `delete-directory' in Emacs v24.4. + +Authors +------- + + 1 Jonas Bernoulli diff --git a/docs/RelNotes/1.2.2.txt b/docs/RelNotes/1.2.2.txt new file mode 100644 index 0000000..e529dc9 --- /dev/null +++ b/docs/RelNotes/1.2.2.txt @@ -0,0 +1,17 @@ +Magit v1.2.2 Release Notes +========================== + +Released 23 October 2014 by Jonas Bernoulli. + +Changes since v1.2.1 +-------------------- + + * `magit-delete-directory' uses itself when deleting recursively, + instead of `org-delete-directory' which it was copied from. + + * Many byte-compile warnings were addressed. + +Authors +------- + + 5 Jonas Bernoulli diff --git a/docs/RelNotes/1.4.0.txt b/docs/RelNotes/1.4.0.txt new file mode 100644 index 0000000..f0f8d9e --- /dev/null +++ b/docs/RelNotes/1.4.0.txt @@ -0,0 +1,231 @@ +Magit v1.4.0 Release Notes +========================== + +Released 1 April 2015 by Jonas Bernoulli. + +This release sits in the middle of a commit marathon that lasted for +more than 4700 commits. + +When I became Magit's new maintainer during the summer of 2013 Magit +was already a big success, but underneath its shiny surface it was +having some serious problems. Over the years the source had gotten +very disorganized and many old abstractions were no longer sufficient. +Unfortunately existing code had almost never been adjusted when new +features had been added, leading to a lot of new code that worked +around limitations of existing code. + +This was clearly not sustainable in the long run, and so I started +cleaning up and replacing the existing abstractions with simpler, yet +often more powerful implementations. Unfortunately his had to happen +incrementally as it was seldom possible to cleanup one area without +making substantial changes elsewhere. Along the way I also addressed +many of the hundreds of feature requests, but that was more of a bonus +- the focus was on getting the codebase ready for future improvements. + +At the beginning of 2014 I moved development to the new next branch. +Working on a branch which was not used by thousands of Melpa users +allowed me to move faster and users were no longer affected by the +occasional regression. But it also meant that I now had to maintain +two branches. In hindsight I should have released the master branch +as 1.3.0 at that time, despite all the known defects it had. + +Since then I have finished the cleanup on the next branch and then +moved on to implement many new features. On the master branch the +focus was on bugfixes and the occasional backport. This release is +based on the master branch. Later this spring 2.1.0 will be released +based on the next branch. + +Compiling a list of all changes in 1.4.0 would by a major amount of +work in itself, so instead the below list is for the most part limited +to major changes, which enabled the user visible changes. Many users +don't have to be told about the new features anyway - they have been +using them for more than a year now. + +Changes since v1.2.2 +-------------------- + + * The libraries `magit-topgit.el', `magit-stgit.el', and + `magit-svn.el' all reincarnated as separate repository. + + * The libraries `magit-classic-theme.el' and `magit-simple-keys.el', + which allowed users to undo some of the changes in older releases, + were removed. + + * The library `rebase-mode.el' was renamed to `git-rebase-mode.el' + and moved to the `magit/git-modes' repository. + + * The library `magit-log-edit-mode.el' was removed and replaced with + `git-commit-mode.el' from the `magit/git-modes' repository. + + * The functionality provided by the library `magit-bisect.el' was + replaced with a new implementation in `magit.el'. + + * The package `cl-lib` is now used instead of the obsolete `cl'. + + * The library `magit.el' no longer lacks any recognizable structure. + + * The macro `magit-define-command' was removed. + The hook that was defined in addition to the command only served + to make things more complicated and the generated doc-string was + insufficient. + + * The use of "section actions" has been reduced to a minimum. + Commands that behave differently depending on the type of the + current section still use `magit-section-case' or in some cases + even `magit-section-action', but the preferred way for users to + add new variants now is to add a new command to the type-specific + section keymap, instead of the hooks defined by + `magit-section-action'. + + * More work is done directly in `magit-with-section'. + Most of the helper functions were removed. These functions + were not intended to be used directly, but that did not keep + contributors from doing so, leading to many inconsistencies. + + * The mode machinery was massively refactored. + Most importantly the new macro `magit-mode-setup' was added, + replacing the old `magit-mode-init' which forgoes most of the + things each and every of its callers has to do, which let to many + inconsistencies + + * The refresh machinery was massively refactored. + A refresh now has to be requested more explicitly by either calling + `magit-refresh' or one of the functions that call Git and then the + former. Also, refreshing now more often correctly preserves point. + + * Washing diffs now takes less cycles. + Previously the code used to wash diffs was very complicated. It + passed around state using many dynamically bound variables, and + called `git diff' many times. Now we call `git diff' once and then + wash its output in one go. + + * Commits and stashes are now washed using the regular diffwasher. + + * Low-level functions for running Git were massively refactored, and + many new variants were added. Previously many callers had to deal + with the gory details themselves (and usually did it badly). + + * The output from processes is now logged in a dedicated buffer. + From this buffer it's also possible to kill a running process. + + * The Wazzup buffer was massively refactored. + All options to optionally make it faster were removed, as it is now + faster out-of-the-box without sacrificing any functionality at all. + + * Many more competing abstractions were unified. + It was common to have one no longer sufficient core abstraction, and + several competing wrapper abstractions. In most cases this has been + replaced with a single, less complex implementation, which serves all + of the current use cases. + + * Refreshing "after a asynchronous process has run" now happens after + the process has actually finished. That was always the intention, + but not what actually used to happen. + + * The commit message is no longer provided when calling `git commit'. + Instead Git populates a file with a template and then uses $EDITOR + to have the user edit that. This did not work so well for a while + but now we succeed in having the emacsclient being used as $EDITOR. + + * A new Branch Manager was added. + + * Log learned to show optionally show author information in the + margin. + + * Terminology with regards to what a tracking branch is, was fixed. + + * When creating a new branch the default choice is what Git would + default to, instead of some silly name. + + * Tools used to test whether Git supports certain features was removed. + Instead we now require a non-ancient version of Git. + + * The shell script `magit' reincarnated as a separate repository. + +Authors +------- + + 1838 Jonas Bernoulli + 171 Yann Hodique + 121 Pieter Praet + 59 Rémi Vanicat + 24 Nicolas Dudebout + 21 Takafumi Arakaki + 16 acple + 14 Phil Jackson + 13 Rüdiger Sonderfeld + 12 Mitchel Humpherys + 8 Servilio Afre Puentes + 7 Ramkumar Ramachandra + 7 Teruki Shigitani + 6 Lluís Vilanova + 6 Sergey Vinokurov + 5 Thierry Volpiatto + 4 Moritz Bunkus + 4 Noam Postavsky + 4 Seong-Kook Shin + 3 Laurent Laffont + 3 Leonardo Etcheverry + 3 Loic Dachary + 3 Raimon Grau + 3 Sébastien Gross + 2 Bastian Beischer + 2 Damien Cassou + 2 Evgkeni Sampelnikof + 2 Greg A. Woods + 2 Greg Sexton + 2 Jesse Alama + 2 Leandro Facchinetti + 2 Nguyễn Tuấn Anh + 2 Nick Alexander + 2 Pekka Pessi + 2 Philippe Vaucher + 2 Rafael Laboissiere + 2 Sebastian Wiesner + 1 Abdo Roig-Maranges + 1 Adam Spiers + 1 Andrei Chițu + 1 Andrew Schwartzmeyer + 1 Brandon W Maister + 1 Chris Done + 1 Chris Ring + 1 Christopher Monsanto + 1 Cornelius Mika + 1 Dan LaManna + 1 David Hull + 1 Dennis Paskorz + 1 Divye Kapoor + 1 Eric Schulte + 1 Felix Geller + 1 Feng Li + 1 Geoff Shannon + 1 Jan Tatarik + 1 Jeff Dairiki + 1 John Wiegley + 1 Jordan Greenberg + 1 Kyle Meyer + 1 Lele Gaifax + 1 Manuel Vázquez Acosta + 1 Marcel Wolf + 1 Marian Schubert + 1 Matus Goljer + 1 Nick Dimiduk + 1 Nicolas Richard + 1 Peter J. Weisberg + 1 Philipp Haselwarter + 1 Prathamesh Sonpatki + 1 Romain Francoise + 1 Roy Crihfield + 1 Sanjoy Das + 1 Sergey Pashinin + 1 Steve Purcell + 1 Steven Chow + 1 Steven Thomas + 1 Thomas Frössman + 1 Thomas Riccardi + 1 Ting-Yu Lin + 1 Wilfred Hughes + 1 Win Treese + 1 York Zhao + 1 aaa707 + 1 Ævar Arnfjörð Bjarmason diff --git a/docs/RelNotes/1.4.1.txt b/docs/RelNotes/1.4.1.txt new file mode 100644 index 0000000..15dc747 --- /dev/null +++ b/docs/RelNotes/1.4.1.txt @@ -0,0 +1,31 @@ +Magit v1.4.1 Release Notes +========================== + +Released 12 April 2015 by Jonas Bernoulli. + +This is a bugfix release. + +Changes since v1.4.0 +-------------------- + + * The external library `magit-log-edit.el' is no longer supported. + If it is still installed, then instruct the user to remove it. + + * The function `magit-maybe-show-setup-instructions' is now run even + when `magit' has not been loaded by the time `after-init-hook' ran. + + * Invalid `:package-version' keywords in option definitions were + fixed. In some cases the value was "2.1.0" instead of "1.4.0". + + * Some unnecessary obsolete-variable definitions were removed. + + * Running tests on Travis CI was fixed. + + * The Makefile, README.md, and release notes received minor fixes + and cleanup. + +Authors +------- + + 9 Jonas Bernoulli + 1 Noam Postavsky diff --git a/docs/RelNotes/1.4.2.txt b/docs/RelNotes/1.4.2.txt new file mode 100644 index 0000000..b50f1a8 --- /dev/null +++ b/docs/RelNotes/1.4.2.txt @@ -0,0 +1,23 @@ +Magit v1.4.2 Release Notes +========================== + +Released 8 June 2015 by Jonas Bernoulli. + +This is a bugfix release. + +Changes since v1.4.1 +-------------------- + + * Automatic revers of file-visiting buffers now works again in Emacs + version 24.5. It was broken due to an incompatible change in that + Emacs release. + + * Git's reflogs sometimes end with bogus entries. We now work around + that when listing stashes. + +Authors +------- + + 11 Jonas Bernoulli + 1 Peter Vasil + 1 Steven E. Harris diff --git a/docs/RelNotes/2.1.0.txt b/docs/RelNotes/2.1.0.txt new file mode 100644 index 0000000..85e8d41 --- /dev/null +++ b/docs/RelNotes/2.1.0.txt @@ -0,0 +1,433 @@ +Magit v2.1.0 Release Notes +========================== + +Released 1 July 2015 by Jonas Bernoulli. + +This release marks the end of a commit marathon that lasted for more +than 4700 commits. It is the first major release in over two and a +half years. The last major release was 1.2.0, which was released +under old leadership. Version 1.4.0, which I released earlier this +year, for the most part consisted of changes that prepared for this +release (so you might want to read the respective release notes too). + +This release comes with many new and exciting features, but the most +important change is the massive increase in consistency both in the +user interface and the internal abstractions. + +Magit always provided a very intuitive staging interface, which is +vastly superior to `git add --interactive'. This release extends this +to other apply variants. Starting with this release, other areas have +also begun to be more than just incremental improvements over what Git +itself provides. But this is still limited to certain features which +have gotten more attention than others (most prominently rebasing). + +Interlude +--------- + +The code base is finally in a state that allows me to concentrate on +implementing my vision of what version control could be like. But +this will only be possible if, unlike during the last two and a half +years, I am being paid for my work. + +I intend to run a fund-raising campaign, but you can already donate +now (see http://magit.vc/donations.html). I am also looking for +corporate sponsorship and/or employment. One area where Magit +actually lags behind other Git clients is integration with Git hosting +platforms and code review tools. I hope that these platforms have an +interest in being supported by the best Git client and are willing to +pay for it. + +I am very interested in a job that would let me work on Magit *and* on +other projects, which would benefit from the skills I have acquired +integrating two complex systems and dealing with all the social and +technical challenges that arise when running a popular project. + +Changes since v1.4.0 +-------------------- + + * A new manual has been added. It's much more comprehensive than the + old manual and instead of just documenting the various commands and + options, it also explains concepts and plumbing functions, and + comes with extensive indices for commands, functions, and options. + + Actually three new manuals were added; the packages `magit-popup' + and `with-editor' are documented in separate manuals. + + The manuals are written in Org mode and then exported to Texinfo. + + * Performance is much better now. In most cases this was achieved by + delaying work until it is actually needed. Most importantly diffs + are only partially washed until being fully expanded. Some + features come in a fancy and in a fast variant; when that is the + case, we now usually default to the fast variant. + + * Many options can now be set on a per-repository basis, and the + manual describes how to do so. (Actually this was always possible + but, because it was undocumented, nobody did it.) It's possible to + define "repository classes", e.g. "huge repositories", and then add + the respective repositories to that class. This is very useful in + order to turn off certain features only in repositories where they + would have a negative impact on performance, without having to do + it for each repository individually. + + * Many faces have been simplified. Most importantly, section heading + faces no longer set a background color (except for hunk headings) + and instead just use the default background. Refname faces no + longer set the background color or the box property. + + * Many, probably the majority of, functions, variables, and faces + have been renamed, which was necessary because there was very + little consistency before. + + Most importantly, the names of commands and options now begin with + a prefix that includes the name of the respective git sub-command. + For example, the names of all commands and options related to + diffing now begin with `magit-diff-'. + + Many plumbing functions and variables were also renamed. In some + cases, that also lead to shared prefixes, such as `magit-process-', + `magit-mode-', `magit-git-', and `magit-insert-'. But many + plumbing functions and variables continue to use names whose only + common part is the `magit-' prefix. + + Future renames will be performed at well defined times and obsolete + function/variable definitions will be provided for backward + compatibility. No renames are planned at present. + + * The external libraries `git-commit-mode.el' and `git-rebase-mode.el' + are no longer required and have to be uninstalled because they + conflict with their successors `git-commit.el' and `git-rebase.el', + which are now maintained inside the Magit repository instead of the + Git-Modes repository. + + The library `git-commit.el' can be used without Magit, so it is + distributed as a separate Elpa package. However, `git-rebase.el' + now depends on several Magit libraries and is therefore distributed + as part of the `magit' package. + + * The library `magit-key-mode.el' was removed and replaced with + `magit-popup.el'. The new implementation is much more flexible and + easier to use than the old one. Major new features include setting + default arguments directly inside the popup and macros for defining + new popups and extending existing popups. + + This new library can also be used by packages that are not related + to Magit and is therefore available as a separate Elpa package. + + * The library `with-editor.el' was added. Its purpose is to use the + emacsclient as $GIT_EDITOR when git is started as a subprocess and + requires an editor. This is used while committing and rebasing. + This also works over Tramp, where a "sleeping editor" shell script + is used to communicate over standard output instead of a socket + like the emacsclient does. + + The `1.4.0' release already supported this, but this release splits + this feature into a separate library. And now that it is a separate + library, it can also be used by packages that are not related to + Magit. `with-editor.el' is distributed as a separate Elpa package. + + * All libraries are now located in the new `lisp/' subdirectory. + + * The library `magit.el' has been split into many new libraries. + The code base is now much better organized. Together with the + description of plumbing commands in the manual, this should make it + much easier for contributors to get started. + + * The library `magit-wip.el' has been rewritten from scratch and no + longer depends on the external and unmaintained shell script from + https://github.com/bartman/git-wip. + + * There are now three different modes that commit to the + work-in-progress refs before/after certain events, and in addition + to the old working tree wip refs, these modes now also commit to + index wip refs. When these new modes are turned on, Git's + protection of committed (but dangling) changes is effectively + extended to uncommitted changes (which some exceptions). These + modes are not enabled by default due to performance concerns. + + * The library `magit-blame.el' has been rewritten from scratch. The + new implementation can blame recursively, jump to the next/previous + chunk from the same commit, replace headings with separator lines, + scroll the revision buffer for the chunk at point (like log buffers), + and fine-tune the arguments for `git blame' using a popup. + + * The new library `magit-ediff.el' replaces the old Ediff support. + The new implementation comes with a dwim command and a popup, and + it relies less on high-level functions provided by VC and Ediff + itself, because many of those turned out to be unsuitable. + + * The popular third-party library `dash.el' is now required. This + is the only mandatory external dependency now, except for Git and + Emacs themselves, of course. + + * When using Ido inside Magit, users now have to install the + third-party library `ido-completing-read+.el'. This is necessary + because the function `ido-completing-read', which is part of the + built-in library `ido.el', is not a sufficient drop-in replacement + for `completing-read'. + + * The new macro `magit-insert-section' replaces `magit-with-section'. + The macros `magit-cmd-insert-section' and `magit-git-insert-section' + were removed without a direct replacement. + + * The new functions `magit-insert' and `magit-put-face-property' take + care of working around the fact that negative overlay priorities + are not supported, i.e., that overlays always take precedence + against text properties. Previously this was done in various + places, and not always correctly (e.g., in some cases overlays did + not evaporate). + + * The section visibility and movement commands were rewritten from + scratch. All those commands now share the prefix `magit-section-' + and edge cases are handled better. New commands were added that + allow cycling the visibility of sections and their children. From + a user perspective Magit's section handling is now quite similar to + that of Org mode. + + * The macro `magit-section-action' was removed. The related macro + `magit-section-case' still exists and will continue to do so. The + action variant provided user-customizable hooks, but these hooks + were rarely, if ever, used. Instead of such action hooks, users who + wish to extend Magit now have to use type-specific section keymaps. + + * Section highlighting was rewritten from scratch. The new + implementation uses hooks to allow washing certain section types + differently than others - without obfuscating the simple cases. + Washing diffs is much more complicated than washing all other + sections, and that part has been factored out. The washing of + all other section types is now quite simple. + + * The appearance of the region now indicates whether it is valid as a + selection. As far as Magit is concerned, valid selections are hunk + internal regions and regions that mark sibling sections of the same + type. When a region does not satisfy one of these, then it is + displayed the sames as in other buffers and Magit cannot act on it. + + * The new option `magit-no-confirm' makes it easy to forgo having to + confirm potentially dangerous actions. Many of these actions are + only dangerous for users who don't know how to undo them. When the + wip modes are turned on, many more previously fatal actions can be + easily undone. Adding `safe-with-wip' here makes it unnecessary to + confirm these actions. + + * The new Refs buffer combines the features of the old Wazzup and + Branch Manager buffers into one, more powerful and efficient + synthesis. For each reference, cherries can be shown by expanding + the ref section, but unlike in the Wazzup buffer, the cherries are + not calculated until the expansion happens, making it vastly more + efficient. Besides local and remote branches, the buffer now also + lists tags, and users can add additional sections listing other + refs, e.g., stashes. The format of refs headers is now + customizable. + + * File-visiting buffers are now reverted without using code from the + built-in `autorevert.el` library. The function we previously used + was intended for internal use only and indeed, changes made there + broke Magit in the past. + + * The new option `magit-revert-buffers' controls whether and how + buffers visiting tracked files are reverted. As before, such + buffers are reverted by default. But by default this is now done + rather noisily to encourage users to read the doc-string and + pick what is right for them. It's now also possible to revert + asynchronously and for the user to be asked every time there are + buffers that could be reverted. This option replaces + `magit-auto-revert-mode`. + + * Many new section inserters are available. Some are variations of + default inserters; `magit-insert-unpulled-cherries', for example, is + like `magit-insert-unpulled-commits' but prefixes each commit with + "+" or "-" to indicate its "cherry state". Other inserters are + completely new (e.g., `magit-insert-unpulled-module-commits'). + + * The header sections in status buffers can now be customized using + the new `magit-status-headers-hook'. This is an additional section + insertion hook; separating it from `magit-status-sections-hook' + gives users complete control over what information is displayed in + the headers, while still making the first header the parent section + of all the other header lines. + + * Many commands that previously could only act on the section at + point can now act on all sections selected by a region, which can + span sibling sections of the same type. + + * Many commands now more intelligently dwim based on the section at + point. + + * Where it makes sense, completion and confirmation have been merged + into a single user action. Many commands that previously allowed + carrying out or aborting some action now also allow the user to act + on something different from the default choice. Where one + previously had to confirm with `yes RET', one now confirms with just + `RET' (to accept the default choice, which previously was the only + choice). + + * The distinction between the various "apply variants" has been + clearly worked out, and they now all provide the same feature set. + The variants are: stage, unstage, discard, reverse, and "regular + apply". In all cases, it is possible to act on a file or hunk, or + part of a hunk. When acting on the hunk level, all variants are + implemented on top of `git apply', thus the name "apply variants". + + Un-/staging has always been one of Magit's most beloved features, + and this release takes it to the next level by making the other + apply variants just as consistent, powerful, and intuitive to use. + + All apply variants are context aware, meaning that, for example, the + stage variant knows that an already staged change cannot be staged. + That leads to better error messages. + + * The committing prefix now features additional variants. It was + already possible to quickly create a fixup or squash commit; the + new variants do that and then also instantly perform a rebase to + actually combine these commits with their intended target commits. + + * Rebase sequences are now initiated from the new rebasing prefix. + Several rebasing variants exist, of course including basic + "rebase onto something" and interactive rebase. Other variants + automatically detect and combine squash and fixup commits with + their intended targets. Others let the user edit or reword a + single commit, without having to go through the steps that are + irrelevant in these cases. + + * When a rebase sequence stops at a commit, then the rebasing prefix + instead features suffix commands for continuing, editing, or + aborting the sequence; or skipping the current commit. + + * When a rebase sequence stops, the status buffer displays a list of + the already applied and yet-to-be applied commits. These commits + can be acted on like those in logs. + + * Cherry-picking, reverting, and applying patches using `git am' are + treated the same way as rebasing. A prefix command features + several variants to initiate the sequence. When a sequence is in + progress, then the same prefix instead features suffix commands for + continuing or aborting the sequence, and the status buffer lists + the relevant commits. + + * The magit-specific "rewriting" feature has been removed because it + was a hybrid of "rebasing" and "cherry-picking" and vastly + inferior to both of them. + + * The merging prefix features several new convenient merge variants. + + * Merges can now be previewed before actually carrying them out. + + * When a merge results in conflicts then the commits being merged are + listed in the status buffer, making it easier to review conflicting + changes in the context they were created. + + * Its now possible to discard one side of a conflict directly from + the hunk containing the conflict, using the regular discard key + `k'. It's also possible to restore a conflict. + + * When using an existing branch as the starting-point of a new + branch, it is now automatically configured as the upstream branch. + + * The branching prefix now features suffix commands for un-/setting + the upstream branch. Previously this was coupled with pushing in + a truly obscure way. + + * Branch descriptions can now be displayed in the refs or status + buffer, and the description can be edited using a suffix command + from the branching prefix. + + * The URL of a remote can now be changed from the remoting prefix. + + * A new pulling prefix command was added, which features several new + pulling variants. Previously only one pulling command existed and + it had to be controlled using prefix arguments, which was very + cumbersome. + + * A new pushing prefix command was added, which features several new + pushing variants. Previously only one pushing command existed and + it had to be controlled using prefix arguments, which was very + cumbersome. + + * The various tagging commands are now suffix commands of the new + tagging prefix command. + + * It is now possible to stash, or create a snapshot from, just the + staged or the unstaged changes, instead of both. Suffix commands + for branching, listing, and showing stashes were added to the + stashing prefix + + * When creating stashes the new implementation in `magit-wip.el' is + used instead of `git stash'. This allows the user to create + snapshot stashes without touching any files in the working tree. + + * The submodule prefix now features new suffix commands for adding, + setting up, and fetching modules. + + * Submodules with unmerged commits can now be displayed in the status + buffer. Sections representing submodules can be expanded to show + their unpulled commits. These commits can be acted on like commits + belonging to the super-project. + + * Support for displaying diffs inside the log buffer instead of in a + separate diff buffer has been removed. It might come back one day, + but the old implementation had just fallen behind regular one-line + log too much. + + * The logging prefix features many new infix arguments and suffix + commands, which can now be combined in more flexible ways than + before. + + * Many commands that previously read a single commit, branch, or + file in the minibuffer, can now read multiple, comma-separated items + from the user, while providing completion candidates for all of + them. Likewise, when selecting a range, completion is available + for the second commit too. + + * All of Git's reset variants are now exposed as individual commands, + but not all of them have a key binding by default. + +This was just the tip of the iceberg. + +Authors +------- + + 2187 Jonas Bernoulli + 28 Sebastian Wiesner + 25 Kyle Meyer + 19 Noam Postavsky + 17 Pieter Praet + 12 Rémi Vanicat + 9 Florian Ragwitz + 5 Philippe Vaucher + 5 Ramkumar Ramachandra + 4 Cornelius Mika + 4 Kan-Ru Chen + 4 Syohei Yoshida + 3 Alex Dunn + 3 Alex Kost + 3 Nicolas Richard + 2 Eric Schulte + 2 Ingo Lohmar + 2 Mitchel Humpherys + 2 Peter Eisentraut + 2 Ryan C. Thompson + 1 Adeodato Simó + 1 Andrew Schwartzmeyer + 1 Andy Sawyer + 1 Bradley Wright + 1 Guillaume Martres + 1 John Mastro + 1 John Wiegley + 1 Julien Danjou + 1 Lingchao Xin + 1 Mark Oteiza + 1 Michael Fogleman + 1 Michael Griffiths + 1 Michal Sojka + 1 Natalie Weizenbaum + 1 Oleh Krehel + 1 Peter Vasil + 1 Rüdiger Sonderfeld + 1 Steven E. Harris + 1 Teemu Likonen + 1 Thomas A Caswell + 1 Tim Perkins + 1 Tim Wraight + 1 Wei Huang + 1 Xavier Noria diff --git a/docs/RelNotes/2.10.0.txt b/docs/RelNotes/2.10.0.txt new file mode 100644 index 0000000..6b6e5ac --- /dev/null +++ b/docs/RelNotes/2.10.0.txt @@ -0,0 +1,101 @@ +It's Magit! A Git Porcelain inside Emacs +========================================= + +Magit is an interface to the version control system Git, implemented +as an Emacs package. Magit aspires to be a complete Git porcelain. +While we cannot (yet) claim that Magit wraps and improves upon each +and every Git command, it is complete enough to allow even experienced +Git users to perform almost all of their daily version control tasks +directly from within Emacs. While many fine Git clients exist, only +Magit and Git itself deserve to be called porcelains. + +For more information about Magit, see https://magit.vc. + +If Magit helps you be more productive, then please consider donating +at https://magit.vc/donate/. + +Magit v2.10.0 Release Notes +=========================== + +Released 4 January 2017 by Jonas Bernoulli. + +We are pleased to announce the release of Magit version 2.10.0, +representing 85 commits by six people over one month. + +Also see https://emacsair.me/2017/01/04/magit-2.10. + +Changes since v2.9.0 +-------------------- + +* Many new, well organized, libraries were added, consisting of code + that was previously located inside a messier "magit.el". #2908 + +* The function `magit-display-buffer' now sets the focus on the frame + used to display the selected window. #2865 + +* The Custom groups are better organized now. New groups were added, + but many options also moved between groups that already existed + before. 422d776e, 33c5c1ca + +* Many Custom groups and options now link to the relevant Info nodes + and to other relevant groups. 810d7fb4 + +* Many doc-strings were improved, added, and fixed. 47aae617 + +* Added the function `magit-repolist-column-dirty', which can be added + to `magit-repolist-columns' and `magit-submodule-list-columns'. #2907 + +* The obsolete variable `magit-repository-directory-depth' is no + longer defined as an option. 09993c39 + +* The obsolete hook variable `magit-status-refresh-hook' is no longer + defined explicitly. 7e96e831 + +Fixes since v2.9.0 +------------------ + +* Customizations of hooks were ignored, if the `custom-set-variables' + form was evaluated before the Magit libraries were loaded. #2902 + +* When rebase stopped at a commit, point was no longer placed on that + commit. #2884 + +* When creating a commit, `magit-display-buffer-fullcolumn-most-v1' + filled the entire frame, hiding the commit message buffer. #2891 + +* The commands `magit-reflog' and `magit-reflog-current' reported + a revision's reflog as empty when the name of a file in the + repository, relative to the top-level directory, matched the + revision name. 5264ffcb + +* The function `magit-repolist-column-upstream' returned the current + branch instead of its upstream. 46acbd6d + +* The functions `magit-repolist-column-unpulled-from-upstream' and + `magit-repolist-column-unpushed-to-upstream' raised a type error + if the upstream was configured but did not exist. #2904 + +* The default values of the options `magit-submodule-list-columns' + and `magit-repolist-columns' didn't match the documentation and the + Custom type. But the code that that uses these values is resilient + against that defect and so the only effect was that the values were + reported as mismatched in the Custom interface. 79f6af23 + +* The Custom type of option `magit-update-other-window-delay' didn't + match the default value. eb6d8bde + +* The shell command generated by `magit-emacs-Q-command' could end + up trying to load a directory as a library, due to a bug in Emacs. + 83980c66, debbugs#16406 + +This release also contains documentation updates and typo fixes. + +Authors +------- + + 68 Jonas Bernoulli + 13 Kyle Meyer + 1 Aleksey Uimanov + 1 Alexander Gramiak + 1 Noam Postavsky + 1 Wouter Bolsterlee diff --git a/docs/RelNotes/2.10.1.txt b/docs/RelNotes/2.10.1.txt new file mode 100644 index 0000000..7f90600 --- /dev/null +++ b/docs/RelNotes/2.10.1.txt @@ -0,0 +1,57 @@ +Magit v2.10.1 Release Notes +=========================== + +Changes since v2.10.0 +--------------------- + +* The command `ido-enter-magit-status' is now being autoloaded. #2918 + +* The minor-mode `bug-reference-mode' is now being suggested when + customizing `magit-revision-mode-hook' and `git-commit-setup-hook'. + e0d57c49 + +* The function `magit-version' can now deal with the Magit libraries + being symlinked to, which is required for the new `straight' package + manager. #2967 + +Fixes since v2.10.0 +------------------- + +* When multiple stashes were selected by the region, responding "no" + when asked to confirm the deletion of these stashes resulted in a + type error. #2917 + +* The function `magit-split-range' choked on ranges if one of the + revisions was omitted, breaking a diff variant and potentially + other uses as well. #2928 + +* The function `magit-commit-setup' called without an argument, which + causes the option `enable-local-variables' to be ignored. #2946 + +* When committing inside a repository that was created using `git + init --separate-git-dir', the diff buffer was empty, instead of + showing the changes about to be committed. For some reason that + git command, unlike other commands that do essentially the same + thing, does not set `core.worktree', which confused Magit. #2955 + +* In the repository list buffer, the columns that are supposed to list + unpushed and unpulled commit counts, were blank. #2960 + +* The command `magit-reflog-head' did not properly format reflog lines + for branch renaming events. 2a268e20 + +* The commands `magit-diff-show-or-scroll-down' and + `magit-diff-or-scroll-up' scrolled instead of updated the revision + or stash buffer, when that already showed the requested reference + but that reference no longer pointed at the same revision. #2966 + +This release also contains typo fixes and other documentation fixes. + +Authors +------- + + 16 Jonas Bernoulli + 4 Kyle Meyer + 2 Alex Kost + 1 Kévin Le Gouguec + 1 Radon Rosborough diff --git a/docs/RelNotes/2.10.2.txt b/docs/RelNotes/2.10.2.txt new file mode 100644 index 0000000..bcaa040 --- /dev/null +++ b/docs/RelNotes/2.10.2.txt @@ -0,0 +1,47 @@ +Magit v2.10.2 Release Notes +=========================== + +Changes since v2.10.1 +--------------------- + +* The new command `git-rebase-noop' adds a noop action during a + rebase. It can be used to make git perform a rebase even if none + of the commits are selected. #2991 + +Fixes since v2.10.1 +------------------- + +* Cherry-picking a commit with multiple parents was not possible, + because "--mainline" was treated as a switch rather than an option, + and because of a too-strict assertion that only single-parent commits + can be cherry-picked. #2978 + +* `magit-abbrev-length' mishandled two edge cases, returning 0 when + called within an empty repository or outside of a repository. + 077740f5 + +* A bug fix in the last release broke the visit-file functionality in + diff buffers displayed while committing. #2988 + +* Diff buffers did not recognize "rev^-n" as a short-hand for + "rev^n..rev" (new in Git v2.11), resulting in the buffer header + incorrectly indicating that the diff was between "rev^-n" and the + working tree. 293f0cc8 + +* In diff buffers created using the dotted range notation, the command + `magit-diff-visit-file' incorrectly swapped which revision was + visited for deleted and added lines. For example, with the range + "rev1..rev2", calling `magit-diff-visit-file' on a deleted line + visited the blob for rev2. c24f32cd + +This release also contains other minor improvements, bug fixes, and +documentation fixes. + +Authors +------- + + 10 Jonas Bernoulli + 9 Kyle Meyer + 1 Ben North + 1 Fabian Wiget + 1 Mark Oteiza diff --git a/docs/RelNotes/2.10.3.txt b/docs/RelNotes/2.10.3.txt new file mode 100644 index 0000000..1a77c40 --- /dev/null +++ b/docs/RelNotes/2.10.3.txt @@ -0,0 +1,41 @@ +Magit v2.10.3 Release Notes +=========================== + +Changes since v2.10.2 +--------------------- + +* The new command `magit-do-async-shell-command' opens the file at + point with `dired-do-async-shell-command'. "&" is now bound to + this command. #2992 + +Fixes since v2.10.2 +------------------- + +* The command `magit-bisect-run' now uses a shell to run the command + entered in response to the "Enter shell command" prompt. #3001 + +* Discarding a renamed file failed if the original file was within a + directory that no longer existed. #2998 + +* When inserting information about a rebase in progress into the + status buffer, "exec" lines were treated as a commit, leading to an + error. #3002 + +* The command `magit-blame' failed in blob-visiting buffers if the + corresponding file no longer exists in the HEAD or the index. + +* The command `magit-remote-add' asked whether to set the new remote + as the `remote.pushDefault', when that variable is already set and + and it was configured not to ask in that case. 4f565039 + +This release also contains typo fixes and documentation improvements. + +Authors +------- + + 10 Jonas Bernoulli + 2 Kyle Meyer + 1 Basil L. Contovounesios + 1 Damien Cassou + 1 Duianto Vebotci + 1 Noam Postavsky diff --git a/docs/RelNotes/2.11.0.txt b/docs/RelNotes/2.11.0.txt new file mode 100644 index 0000000..1cd9694 --- /dev/null +++ b/docs/RelNotes/2.11.0.txt @@ -0,0 +1,231 @@ +It's Magit! A Git Porcelain inside Emacs +========================================= + +Magit is an interface to the version control system Git, implemented +as an Emacs package. Magit aspires to be a complete Git porcelain. +While we cannot (yet) claim that Magit wraps and improves upon each +and every Git command, it is complete enough to allow even experienced +Git users to perform almost all of their daily version control tasks +directly from within Emacs. While many fine Git clients exist, only +Magit and Git itself deserve to be called porcelains. + +For more information about Magit, see https://magit.vc. + +Magit needs your help +===================== + +If Magit helps you be more productive, then please consider backing +the fundraising campaign on Kickstarter. Thanks! <3 + +https://www.kickstarter.com/projects/1681258897/its-magit-the-magical-git-client?ref=ej621y + +Magit v2.11.0 Release Notes +=========================== + +Released 13th September 2017 by Jonas Bernoulli. + +I am pleased to announce the release of Magit version 2.11.0, +representing 303 commits by 26 contributors over six months. + +Also see https://emacsair.me/2017/09/12/magit-2.11. + +Changes since v2.10.3 +--------------------- + +* The popup `magit-remote-popup' now exposes the `-f' switch for `git + remote add', which allows the user to control whether information + from the remote is fetched after the remote is added. The default + behavior is still to fetch after adding a remote (i.e., the switch + is enabled by default). #2997 + +* Added option `magit-list-refs-sortby' to allow more control over the + order of refs in prompts. #2872 + +* The Magit wrappers around the default Emacs completion functions now + override the default behavior of alphabetically sorting choices when + displaying them in the "*Completions*" buffer. In repositories with + many release tags, the new behavior prevents completion prompts from + being dominated by version tags instead of branch names. #2925 + +* The commands `magit-git-command', `magit-git-command-topdir', + `magit-shell-command', and `magit-shell-command-topdir' now use + `read-shell-command' to read the command and a shell to run it. + Packages like `pcmpl-git' and `bash-completion' can now be used + to get command-line completion when using these commands. #2951 + +* The commands `magit-git-command' and `magit-git-command-topdir' can + now call arbitrary commands. The initial-value when reading the + command is "git ", and you can remove that to call something else. + #2951 + +* Added option `magit-shell-command-verbose-prompt'. #2951 + +* The function `magit-branch-or-commit-at-point' now offers the + appropriate default choice in a `magit-merge-preview-mode' buffer + and in blob-visiting buffers. #3039, #3066 + +* On Travis tests are now run against all supported Emacs releases, as + well as against snapshots of the `master' and `emacs-25' branches. + #3046 + +* Added command `magit-debug-git-executable'. #3044 + +* Added new function `magit-display-file-buffer-other-window' to be + used as `magit-display-file-buffer-function'. + +* Added `--mainline' switch to `magit-revert-popup'. #3018 + +* Added `magit-file-checkout' to `magit-reset-popup'. #3052 + +* When a revision is shown from a log buffer, the revision buffer now + inherits the file restriction of the log buffer. #3056 + +* Added new command `magit-diff-toggle-file-filter'. #3062 + +* Added new option `magit-use-sticky-arguments' that provides more + control over how diff and log commands reuse arguments from existing + buffers. #3074 + +* Added imenu support in log, revision, and status buffers. #3022 + +* Added command `magit-abort-dwim` to abort the current operation. + Depending on the context, this will abort a merge, a rebase, a + patch application, a cherry-pick, a revert, or a bisect. #3017 + +* The command `magit-clone' now suggests a directory name that more + closely follows `git clone' when no directory is given. #3079 + +* The commands `magit-subtree-add', `magit-subtree-pull', and + `magit-subtree-push' now offer more completion candidates. #3081 + +* The log buffer now shows the line range restriction (i.e. `-L' + argument) in its header. #3075 + +* Added new functions `magit-repolist-column-branches' and + `magit-repolist-column-stashes', which insert the count of branches + and stashes into submodules and repository list buffers. By default + they are used in submodule lists but not in the repository list. + +* Text inside brackets in commit messages (including when shown in a + log) are now highlighted using face `magit-keyword'. + +* Invocations of git are cached over the whole body of + `magit-run-git', not just during the status buffer refresh. This + should make staging and unstaging slightly faster. #3096 + +* When reading a value for the `--reuse-message' option, the popup + `magit-commit-popup' now prompts with all ref names, offering + `ORIG_HEAD' as the default if it exists. #3110 + +* Added bookmark support in status, refs, log, reflog, stashes, + cherry, diff, revision, stash, and submodule-list buffers. #3113 + +* Added new function `magit-insert-modules', a wrapper around the + existing `magit-insert-modules-*' functions. Also added options + `magit-module-sections-hook' and `magit-module-sections-nested', + to allow tuning the behavior of this function. #3141 + +* Renamed function `magit-insert-submodules' to + `magit-insert-modules-overview' for consistency with other + `magit-insert-modules-*' functions. #3141 + +* Inserting module sections is much faster now. #3141 + +* Added `--no-verify' switch to `magit-rebase-popup'. #3144 + +* The `--no-verify' switch in `magit-commit-popup' is now bound to "h" + instead of "n" for consistency with `magit-push-popup' and + `magit-rebase-popup'. #3144 + +* Added support for the file "EDIT_DESCRIPTION", which is used instead + of "BRANCH_DESCRIPTION" for editing a branch's description as of Git + 2.13.0. #3149 + +Fixes since v2.10.3 +------------------- + +* Rebasing was sometimes interrupted by an error about the index lock + already being held. This happened because VC asynchronously checks + for files with conflict, which involved using a git command that + grabs the lock. Magit now redefines that VC command to use a git + command that does not grab the lock. #2708, debbug#21559 + +* Adding an untracked subdirectory as a submodule failed if a remote + was not configured for the subdirectory repository. #3047 + +* Parsing the log buffer failed if the log displayed a ref that + contained parentheses in its name. #3028 + +* Parsing the `git show' and `git log' output for a signed commit + failed with the Git variable `log.showSignature' enabled. #3061 + +* When deleting the current branch, `magit-branch-delete' did not ask + for confirmation in some cases. #3058 + +* When using a non-standard `magit-display-file-buffer-function' that + does not select the window used to display the buffer, then the + point in that window was not adjusted. #3082 + +* `git-rebase-mode' did wrongly assume that there is no space after + the comment character in action lines that are commented out. #3085 + +* The command `magit-show-commit' mistakenly displayed a tag's commit + when point was on a branch with the same name. #3098 + +* The command `magit-log-buffer-file' miscalculated line numbers from + the region. #3075 + +* Staging a link failed when it points to a repository. + +* When setting the upstream of a branch that isn't the current branch, + the user was asked what branch to use as the upstream of the current + branch anyway, even though the correct branch would then be modified. + +* When deleting a branch that is merged into the current branch but + not into its own upstream branch, then the user was not offered to + force the deletion, causing it to fail. #3107 + +* With `find-file-visit-truename' set to a non-nil value, the commands + `magit-status' and `magit-init' failed to detect when their + directory argument was a symlink that resolved to the output of + `magit-toplevel'. #3115 + +* Using an url instead of a remote name as `branch.<name>.remote' was + not properly supported, causing issues when trying to pull or push. + #3116 + +* The log margin displayed invalid information for cherries. #3163 + +This release also contains the fixes described in the v2.10.{1,2,3} +release notes, as well as other minor improvements, bug fixes, typo +fixes, and documentation fixes. + +Authors +------- + + 148 Jonas Bernoulli + 93 Kyle Meyer + 15 Damien Cassou + 15 Noam Postavsky + 5 Basil L. Contovounesios + 3 Justin Guenther + 2 Alex Kost + 2 Duianto Vebotci + 2 Radon Rosborough + 2 Štěpán Němec + 1 Adam Benanti + 1 Allen Li + 1 Ben North + 1 Erik Anderson + 1 Eyal Lotem + 1 Fabian Wiget + 1 Ioan-Adrian Ratiu + 1 Jeremy Meng + 1 Justin Burkett + 1 Justin Thomas + 1 Kévin Le Gouguec + 1 Marc Sherry + 1 Mark Karpov + 1 Mark Oteiza + 1 Sean Whitton + 1 Yuri Khan diff --git a/docs/RelNotes/2.12.0.txt b/docs/RelNotes/2.12.0.txt new file mode 100644 index 0000000..d871732 --- /dev/null +++ b/docs/RelNotes/2.12.0.txt @@ -0,0 +1,662 @@ +It's Magit! A Git Porcelain inside Emacs +========================================= + +Magit is a text-based Git user interface that puts an unmatched focus +on streamlining workflows. Commands are invoked using short mnemonic +key sequences that take the cursor’s position in the highly actionable +interface into account to provide context-sensitive behavior. + +With Magit you can do nearly everything that you can do when using Git +on the command-line, but at greater speed and while taking advantage +of advanced features that previously seemed too daunting to use on a +daily basis. Many users will find that by using Magit they can become +more effective Git user. + +For more information about Magit, see https://magit.vc +and https://emacsair.me/2017/09/01/campaign-articles. + +Magit v2.12.0 Release Notes +=========================== + +Released 29th March 2018 by Jonas Bernoulli. + +I am pleased to announce the release of Magit version 2.12.0, +representing 610 commits by 30 contributors over six months. + +Also see https://emacsair.me/2018/03/29/magit-2.12. + +Upcoming breaking changes +------------------------- + +* An upcoming release will remove support for older versions of Emacs. + It isn't yet certain in what Magit release that will happen and what + the new minimal version of Emacs will be. You should consider to + update to the latest Emacs release now, or at least to v25.1, which + was released one and a half years ago. + +* Likewise support for older versions of Git is going to be removed. + You should update to at least v2.4, which was released almost three + years ago. Older releases don't get security updates anymore, which + is another reason to update. + +* The option `magit-no-confirm-default' has been demoted to a variable + and will be removed in v2.13.0. Please migrate your customizations + to the new option `magit-dwim-selection'. #3232 + +Changes since v2.11.0 +--------------------- + +* Added new commands `magit-previous-line' and `magit-next-line' as + substitutes for `previous-line' and `next-line'. Magit's selection + mechanism is based on the region but selects an area that is larger + than the region. This causes shift-selection to select two lines on + the first invocation when using the vanilla commands. On section + headings and inside hunk bodies the new magit-specific variants + don't move point on the first invocation and thereby they only + select a single section or line. Which inconsistency you prefer + is a matter of preference. #2912 + + To use the Magit-specific variants add this to your init file: + + (define-key magit-mode-map [remap previous-line] 'magit-previous-line) + (define-key magit-mode-map [remap next-line] 'magit-next-line) + +* The command `magit-refs-popup' now remembers arguments and they are + displayed in the header-line of `magit-refs-mode' buffers. The popup + command still invokes the default action by default when invoked from + another buffer, but when invoked from a `magit-refs-mode' buffer it + now shows the popup. #2898 + +* The module overview section now shows a hash for modules that don't + have a tag and column alignment is optimized. #3160 + +* The diff that is being displayed while committing learned about a + few more special cases. #3095 + +* Added new command `magit-branch-or-checkout' as a potential + substitute for `magit-checkout'. Setup instructions can be found in + the manual. #3104 + +* Added new customizable options `magit-log-highlight-keywords' and + `magit-diff-highlight-keywords', which control whether text inside + brackets is highlighted in magit-log and magit-diff buffers + respectively. #3190 + +* When the names of Magit buffers are not uniquified then their names + now end with an asterisk. When the `uniquify' package is used, then + that still is not possible due to limitations in that package. #2841 + +* When selecting a fixup target then the log graph, which makes it + less likely that you attempt to modify a merged commit, which would + result in the merges being lost when rebasing. c0209c74d + +* Added the existing commands `magit-blame' and `magit-blob-next' to + the `magit-file-popup' popup. + +* Added new command `magit-blame-reverse'. See the updated manual + for information on how to best use this and other blaming commands. + #3055 + +* Keywords in brackets are now being highlighted in `magit-refs-mode' + and `git-rebase-mode' buffers, and the headers of `magit-status-mode' + buffers, like they already were in logs. #3179 + +* Added new variable `magit-buffer-lock-functions' to support + third-party packages in creating Magit-like buffers. #3191 + +* Improve padding of head-line and add new faces `magit-header-line-key' + and `magit-header-line-log-select'. #3194 + +* When a stash has a note attached to it, then show it in the + `magit-stash-mode' buffer. aff2fba8f + +* Added new command `magit-rebase-remove-commit' to the rebase popup. + +* The remote popup can now be used to set various remote related + variables. #3165 + +* Added new commands `magit-patch-apply' and `magit-patch-apply-popup'. + The latter is available from inside `magit-am-popup' ("w"). #2940 + +* Added new command `magit-patch-save' for saving a diff into a patch + file. In diff buffers it is bound to "C-x C-w". #2950 + +* Added new command `magit-stash-branch-here', which — unlike the + existing `magit-stash-branch' — creates a branch that starts at + the current HEAD instead of at the commit that was current when + the stash was created. #2935 + +* Added new command `magit-dired-log' intended to be bound in + `dired-mode-map'. #3011 + +* The list of rebase actions displayed in the status buffer now also + shows "exec" actions. #3003 + +* While it exists, the stash created by `git rebase --autostash' is + now also displayed in the list of stashes. #3146 + +* When the current branch has no upstream or when all commits have + already been pushed there, then the status buffer now shows + `magit-log-section-commit-count' recent commits. If you previously + used `magit-insert-unpulled-from-upstream-or-recent', then remove + that from `magit-status-sections-hook', as it is an obsolete alias + for `magit-insert-unpulled-from-upstream' now. #3227 + +* When switching between showing "Unmerged into <upstream>" and + "Recent commits", preserve the visibility of that section. #3227 + +* When prompting for a branch to delete, the current branch is no + longer offered as default choice, except in cases where it is likely + that that is actually what the user wants. #2924 + +* Added new popup `magit-worktree-popup' and bound "%" to it. #2927 + +* The commands `magit-file-delete' and `magit-file-untrack' now act on + the selected files and with a prefix argument they force the action. + #2930 + +* When requesting the history of a single file that is no longer being + tracked, use the `--full-history' argument. Otherwise no history at + all would be shown. #3012 + +* Added new option `magit-patch-save-arguments'. #3218 + +* Leading tabs in files no longer cause misalignment in diffs. This + is done by overriding the mechanism used by the display engine to + determine how wide a tab should be, which doesn't work when there + are additional characters before the "leading" tabs that should + count as an additional, but very short tab-stop. #3185 + +* The command `magit-visit-ref' now drops the prefix argument before + calling `magit-show-commit' when appropriate, and when using the + `create-branch' variant and the branch exists, then it offers to + simply checking it out instead of resetting it first. #3009 + +* The output of `magit-list-repositories' is now sorted by module path + instead of module name. b6f6cf4a6 + +* For a long time Magit has supported selecting two or more sibling + sections using the region and then acting on that selection instead + of only on the current section. Single-section selections were not + supported and a region that did not span multiple siblings was not + visualized as a selection. Now that is supported. + + Not every section-aware command was adjusted to take single-section + selections into account because in many cases that would have led to + undesired changes in behavior. #3026 + +* The command `magit-branch-spinoff' now spins off just HEAD when that + constitutes the single-section selection. Previously one could only + spin off all commits that weren't in the upstream yet or at least + two commits. #2920 + +* Added switch `--local-user' to the tag popup. #3237 + +* When discarding untracked files, then offer to delete the buffers + visiting them. #3243 + +* When there is a valid selection based on the region, then the region + itself was never visualized. Now it is, but only if it stays within + a single line. #3249 + +* Added new command `magit-branch-checkout' and bound "l" in the + branch popup to it. This command always checks out a local branch. + Valid inputs are an existing local branch, a remote branch for which + no corresponding local branch exists, and a new branch name that + doesn't match the name of any existing local or remote branch. #2906 + +* The command `magit-show-commit' now offers the revision at point as + the default completion choice if the less generic mechanisms used to + determine the "current" revision fail. This is useful for visiting + revisions mentioned in commit messages. #2949 + +* Hashes inside commit messages are now turned into `commit' sections. + Note that this can be disabled and that even if you do so you can + still visit the commit at point using "RET". #2949 + +* The documentation regarding completion, confirmation, the selection, + and the hunk-internal region was significantly extended. It might + be worth reading that. + +* Added new option `magit-dwim-selection', which allows configuring + commands that would otherwise ask the user to select among possible + candidates to use the default instead, with or without confirmation. + #3232 + +* When there is a stash at point, then the commands `magit-stash-drop' + and `magit-stash-pop' now ask for confirmation. The former command + previously allowed users to select another stash instead and the + latter used to act on the stash at point without giving the user a + chance to abort. These changes are implemented using the new option + `magit-dwim-selection' and can easily be reverted. #2916 + +* Aborting a commit is seen as an error by Git and like all such + errors it was reported to users, which led to confusion and a few + bug reports. Now that non-error is being suppressed. #2932 + +* The option `magit-ref-namespaces' was demoted to a variable and its + format changed. #2923 + +* Some refs that are being displayed in logs are now being compressed + to save space while providing more information. #2923 + +* Added new option `magit-submodule-fetch-jobs'. By default multiple + modules are being fetched in parallel now. #3261 + +* The command `magit-show-commit' now also shows notes specified using + `notes.displayRef', not just those specified using `core.notesRef'. + #2857 + +* The package `magit-popup' is maintained in its own repository now. + 4d5d9bfac + +* The popup `magit-notes-popup' now shows the values of the relevant + variables and allows changing them. #2857 + +* The cherry-picking commands now try to use or not use the + `--mainline' argument as appropriate instead of erroring out. #2980 + +* Added `magit' as an alias for `magit-status' because I have been + told that that improves discoverability. This might or might not + make it easier for users to get started with Magit without taking + a brief glimpse at the documentation. #3290 + +* The command `magit-log-buffer-file' now also works in Dired buffers. + +* The commands `magit-stage-untracked' has been taught about the Borg + package manager. When staging a package repository it now offers to + also assimilate (aka install) that package. dc857e2ed + +* Added new command `magit-browse-pull-request', which reads an open + pull request and then visits it in a browser. For now this only + supports Github, but other Git forges will be supported in the + future. #3134 + +* Added new commands `magit-checkout-pull-request' and + `magit-branch-pull-request' to the branch popup. For now they only + support Github, but other Git forges will be supported in the future. + #3134 + +* The command `magit-branch-delete' now offers to also delete the + corresponding remote after deleting a local branch that was created + with `magit-branch-pull-request' or `magit-checkout-pull-request', + provided that remote has no other tracking branches. #3134 + +* When it is not possible to blame in reverse, then the blame popup + does not offer that command anymore. c6ef61b2e + +* The mode line process indicator, displayed in the mode line when Git + is run for side-effects, is now more visible than before, and is + additionally used to highlight process errors. + + New face `magit-mode-line-process' is applied to the mode line + process indicator to improve the visibility of pending asynchronous + processes (in particular), as Magit remains responsive after + initiating such commands (for instance fetching or rebasing), but + will not update its buffers until the process has completed, which + might take longer than anticipated. Customize this face if you wish + to make this indicator more (or less) visible. #3284 + + If the Git process returns an error, the mode line process indicator + is no longer removed, and new face `magit-mode-line-process-error` + is applied to highlight the error status. Details of the error from + the process buffer are also provided as a tool-tip. The error + indicator will remain visible in the mode line until a magit buffer + is refreshed. If you do not want errors to be indicated in the mode + line, customize the `magit-process-display-mode-line-error' user + option. #3297 + +* When staging and unstaging at the file level and there are arguments + that cause whitespace differences to be hidden, then apply the + visible changes using `git-apply' instead of using `git-add' and + `git-rm' because doing that would also un-/stage the invisible + changes. #3102 + +* Added new command `magit-diff-visit-file-other-window'. It isn't + bound by default because that would result in changes to existing + key bindings, which is something that is frowned upon. To use this + command add something like this to your init file. #2833 + + (define-key magit-file-section-map (kbd "SPC") + 'magit-diff-visit-file-other-window) + (define-key magit-hunk-section-map (kbd "SPC") + 'magit-diff-visit-file-other-window) + +* The widths of tabs in diffs can now be adjusted to match the widths + that would be used in the corresponding file-visiting buffers. This + is disabled by default because it can be expensive to determine the + appropriate values (and also unnecessary when using spaces for + indentation). Use the new option `magit-diff-adjust-tab-width' to + control if and when the tab widths should be adjusted. #2929 + +* Added documentation about how to contribute to the documentation. + +* In the references buffer the remote part of the branch names are now + hidden in the remote specific lists of branches by default, which is + done to preserves space. The option `magit-refs-show-remote-prefix' + can be used to revert this change. + +* The mode `git-commit-mode' now offers three font-lock levels, + including one that is fruitier than the previous font-lock level. + Local and remote branches are shown using different colors now. + 7a50bfdb0 ff + +* When a signed tag points at the shown revision, then the revision + buffer now also contains information about the tag signature. #3015 + +* The commands `magit-remote-remove' and `magit-branch-delete' now + unset the relevant push-remote related variables, which Git fails to + do, unlike for other variable affected by the removal of a remote or + branch. Likewise the command `magit-remote-rename' now renames such + variables. #2850 + +* Depending on the value of the new `magit-branch-rename-push-target' + option the command `magit-branch-rename' may now also preserve the + local branch's push-remote or even rename the push branch on the + remote. The default is to do both. #2850 + +* Added argument `--subject-prefix' to the patch popup. 24ce90832 + +* The section visibility is now being cached for all sections. + Previously this was only done for some sections. When a section + disappeared and later appeared again, then it went back to its + initial visibility. The option `magit-section-cache-visibility' can + be used to restrict the cache to certain sections again. #2780 + +* The section visibility cache can now also remember that a section + should be expanded instead of being hidden when the latter is the + default and the section reappears. Previously only the opposite + was possible. #2780 + +* For `magit-status-mode' and `magit-refs-mode' buffers the visibility + cache now persists when killing the buffer. #2780 + +* Added command `magit-remote-prune-refspec', which is necessary + because Git does not ignore invalid refspecs and instead refuses + to fetch using only the refspecs that are still valid. #3134 + +* Sections are now defined as classes instead of as structs. This + is only a first step towards taking advantage of generic methods. + A few subclasses are already being defined and dedicated slot + accessors have been deprecated in favor of `oref'. 651a9abcc ff + +* When asking the user whether to save modified file-visiting buffers + during a refresh, then also allow them to remember the choice for + the current session. I still think it is better to just always save + by setting the option `magit-save-repository-buffers' to `dontask'. + #3344 + +* The terminology about modules as used by Git is ambiguous. Magit + now avoids the term "initialized" and instead uses the term + "populated" to refer to a module whose working directory exists. + The names of commands have been adjusted accordingly. For example, + unlike "git submodule init", which does *not* actually "initialize" + a module, `magit-submodule-popuplate' does "populate" a module + (using "git submodule update --init"). #2911 + +* Most module commands now default to act on the selected modules or + if no modules are selected the current module, if any. Otherwise + they fall back to read a single module from the user. Previously + some of these commands acted on all modules and it was not possible + to perform the respective actions on a subset of modules. Acting + on all suitable modules is still possible using a prefix argument. + #2911 + +* Many arguments have been added to the module popup. #2911 + +* Added new option `magit-refs-filter-alist', which allows omitting + some references from being displayed in `magit-refs-mode' buffers. + +* Added new command `magit-merge-squash'. #3348 + +* Several new libraries were created from code previously in magit.el. + 0d6389680 + +* Added new commands `magit-merge-absorb' and `magit-merge-into', + which not only merge a local branch into another but also remove + the merged branch. #2922. + +* Added new commands `magit-cherry-harvest', `magit-cherry-donate', + `magit-cherry-spinout' and `magit-cherry-spinoff', which move + commits from one branch to another and also remove them from the + branch where they were previously located. #2921 + +* Added new command `magit-diff-unmerged' and taught `magit-diff-dwim' + about unmerged changes too. #3382 + +* The command `magit-push-refspecs' got its own history variable. + #3361 + +* By default the names of Magit buffers now either have a star at both + ends, or at neither when using the `uniquify' package. 831372a4f + +* Added new commands `magit-branch-shelve' and + `magit-branch-unshelve'. Use them to replace a branch with a less + visible ref while preserving the ref log. This is useful for work + that you probably but not certainly will end up discarding. You + might want to add these commands to the branch popup. 568b11f64 + +* The look of `magit-refs-mode' buffers was changed to save horizontal + space and three new options `magit-refs-primary-column-width', + `magit-refs-focus-column-width' and `magit-refs-pad-commit-counts' + were added. #3378 + +* When the dispatch popup is invoked in non-Magit buffers, then certain + actions that cannot be used there are no longer shown. 83cc91a30 + +* When the dispatch popup is invoked in a file-visiting buffer, then + it now also lists the actions from the file popup. 40361273a + +* Added new variable `magit-log-format-message-function'. #3384 + +* Added commands `magit-commit-reshelve' and `magit-reshelve-since', + replacing and improving upon commands from the `magit-rockstar' + package, which was deprecated. The former changes the dates of HEAD + and the latter those of a range of commits leading up to HEAD. + +* Added argument `--reverse' to the log popup. When that argument is + used, then the incompatible `--graph' is silently dropped. 07e1d69d2 + +* Added new option `magit-log-header-line-function'. #3395 + +* Added new command `magit-remote-prune'. 6258dd92c + +* Added new hook `magit-unwind-refresh-hook', which is like the + existing `magit-post-refresh-hook' except that is runs even if an + error occurs during the refresh. 9f838cc04 + +Fixes since v2.11.0 +------------------- + +* `git-commit-propertize-diff' could end up making the buffer + read-only. 746f2361b + +bc1093846 magit-popup: locally set help-window-select when describing function +c9689c670 magit-popup: locally set another display-buffer variable + +* `git-rebase-mode-show-keybindings' failed to process non-English + usage instructions in interactive rebase buffers. #3175 + +* The refresh cache was not properly invalidated after creating a new + repository. 7a1f1eb44 + +* The `with-editor-mode' minor-mode was sometimes enabled twice in the + same buffer. 9be36868b + +* For bare repositories all files were shown as being deleted in some + contexts. b5f05c457 + +* When a command was invoked from a popup and it set `this-command', + then that was later overwritten. a74c9b9d4 + +* While setting `magit-credential-cache-daemon-socket's initial value + an error occurred when `credential.helper's value is the empty string. + 4b15d5825 + +* Fixup commands did not warn about merges in the rebase range until + after creating the fixup commit. #3176 + +* Instant fixup allowed selecting a commit that is not reachable from + HEAD, which, for the instant variants (but only those), clearly is + a user mistake that should be caught immediately. #3176 + +* If `magit-git-executable' is an absolute path, then an error + occurred in `magit-debug-git-executable'. 9b7e34c29 + +8ed2eb4f5 magit-branch-reset: use magit-local-branch-at-point + +* The previous window configuration was not restored by + `magit-log-select-pick' and `magit-log-select-quit'. #3211 + +* When `magit-branch-spinoff' failed to perform the checkout it + never-the-less attempted to perform the subsequent steps. #3210 + +* Jumping to the correct location in a man page failed for many + switches and options. deb482063 ff + +* The default action of `magit-branch-config-popup' was a command that + isn't even available in the popup. eaa836fe2 + +* The command `magit-branch-spinoff' didn't try to prevent the user + from entering a string containing whitespace as a branch name. + bd6055ab2 + +* The command `magit-commit' failed to commit everything after asking + for confirmation if it is called from a subdirectory. #3221 + +* The command `magit-completing-read' didn't offer any completion + candidates. 387257f20 + +* In some cases an error occurred when showing the remote popup because + the length of the remotes name was not taken into account. a9177e5b9 + +* The command `magit-branch-rename' failed to rename a local branch if + a tag existed with the same name. #3222 + +* The command `magit-file-delete' ignored the prefix argument instead + of forcing the action as intended. 0df686bfd + +* Fixed a broken highlighting special case. #3238 + +* When staging all unstaged changes using "s" on "Unstaged changes" + while there also are staged changes, then the user was not asked for + confirmation. #3238 + +* When reverting a commit users are required to edit the revert + message on some platforms but not on others. #3239 + +* In a secondary worktree `magit-git-dir' failed to return a remote + path when the repository is accessed using Tramp. #3228 + +* When the user chose the default offered by `magit-patch-apply', + then that function failed to expand the file-name so that Git would + understand it. ab00c5ba2 + +* The face `magit-graph' was also used for the commit message, which + only was noticeable when the face was customized. It appears that + nobody ever did that. 47e94767b + +* When `magit-branch-read-upstream-first' is nil, then the value + returned by `magit-branch-read-args' was broken. #3268 + +* Fixed encoding of non-ascii filename arguments to git on + `windows-nt' systems. #3250 + +* A bug in `magit-list-active-notes-refs' slowed down + `magit-show-commit'. #3275 + +* The command `magit-worktree-checkout' wasn't able to checkout + arbitrary commits, just refs. #3277 + +* Due to misunderstood `flyspell' implementation details + `git-commit-turn-on-flyspell' did some unnecessary work and made + claims that are not actually true. 24c966082 + +* When the git executable could not be found, then Magit often claimed + that the user was doing something outside of a Git repository + instead. #3310 + +* The command `magit-submodule-add' always used a kludge that is + only needed when using Ido, resulting in a unnecessary removal + of functionality. 5e43377d2 + +* The function `magit-maybe-save-repository-buffers' in some cases + needlessly redisplayed a message. #3319 + +* The branch description was displayed in weird ways in a few places. + d98c44bd7, 9003b85da + +* When stashing untracked files, then the untracked files in + subdirectories were not removed from the working tree. #3334 + +* The command `magit-worktree-delete' failed to delete a worktree when + its directory no longer existed. #3355 + +* A kludge used to work around a bug in Emacs 24 prevented + `magit-copy-buffer-revision' from deactivating the mark. #3352 + +* When visiting the last blob that still had the line at point in a diff, + then that only jumped to the correct line, but not the correct column. + ebe3b5229 + +* For unpopulated modules `magit-list-submodules' showed information + about the super-repository instead. Now such modules are omitted. + 1c4fa9b14 + +* The commands `magit-am-apply-patches' and `magit-am-apply-maildir' + did not work over Tramp because they passed Tramp file names directly + to git. This was fixed in a way that should prevent similar issues + elsewhere. #3368 + +* The function `magit-branch-commit-at-point' preferred tags over + branches, which is a strange default for most callers. f2b318856 + +* The arguments set in the popup were ignored when displaying tags + in refs buffers. ae007a757 + +* When `magit-diff-section-arguments' calls for it, then all + diff-related sections are supposed to be limited to a subdirectory, + but sections listing untracked and tracked files ignored it. #3376 + +* Saving wip refs often failed because `magit-update-ref' used the + refresh cache. e0e1a44f3 + +* Buffers listing repositories using `tabulated-list-mode' did not + preserve point when being refreshed. 2f0302635 + +This release also contains other minor improvements, bug fixes, typo +fixes, and documentation fixes. + +Authors +------- + + 500 Jonas Bernoulli + 26 Kyle Meyer + 15 Phil Sainty + 13 Alexander Gramiak + 13 Noam Postavsky + 7 Sean Allred + 4 Basil L. Contovounesios + 3 Bastian Beischer + 3 Damien Cassou + 3 Štěpán Němec + 2 Bar Magal + 2 Daniel Mai + 2 Matthew Fluet + 1 Chris LaRose + 1 Daniel Gröber + 1 Daniel Kraus + 1 David Ellison + 1 Fritz Stelzer + 1 Jim Blandy + 1 John Mastro + 1 Kenny Ballou + 1 Matthieu Hauglustaine + 1 Matus Goljer + 1 Orivej Desh + 1 Philipp Stephani + 1 Radon Rosborough + 1 Vladimir Panteleev + 1 Wilfred Hughes + 1 Wouter Bolsterlee + 1 Xu Chunyang diff --git a/docs/RelNotes/2.12.1.txt b/docs/RelNotes/2.12.1.txt new file mode 100644 index 0000000..a7e0971 --- /dev/null +++ b/docs/RelNotes/2.12.1.txt @@ -0,0 +1,16 @@ +Magit v2.12.1 Release Notes +=========================== + +Fixes since v2.12.0 +------------------- + +* Magit 2.12.0 depended on a non-existent Magit-Popup version. + +* Key bindings in `magit-remote-popup' conflicted. + +Authors +------- + + 8 Jonas Bernoulli + 1 Dean Kariniemi + 1 Phil Sainty diff --git a/docs/RelNotes/2.13.0.txt b/docs/RelNotes/2.13.0.txt new file mode 100644 index 0000000..cbb07c7 --- /dev/null +++ b/docs/RelNotes/2.13.0.txt @@ -0,0 +1,139 @@ +It's Magit! A Git Porcelain inside Emacs +========================================= + +Magit is a text-based Git user interface that puts an unmatched focus +on streamlining workflows. Commands are invoked using short mnemonic +key sequences that take the cursor’s position in the highly actionable +interface into account to provide context-sensitive behavior. + +With Magit you can do nearly everything that you can do when using Git +on the command-line, but at greater speed and while taking advantage +of advanced features that previously seemed too daunting to use on a +daily basis. Many users will find that by using Magit they can become +more effective Git user. + +For more information about Magit, see https://magit.vc +and https://emacsair.me/2017/09/01/campaign-articles. + +Magit v2.13.0 Release Notes +=========================== + +Released 2nd June 2018 by Jonas Bernoulli. + +I am pleased to announce the release of Magit version 2.13.0, +representing 166 commits by 18 contributors over two months. + +Also see https://emacsair.me/2018/06/02/magit-2.13. + +Upcoming breaking changes +------------------------- + +* This is the last release to support Emacs 24.4. Going forward at + least Emacs 25.1 is required. + +* This is the last release to support Git 1.9.4. Going forward at + least Git 2.4 is required. + +* Many functions and variables that have been declared obsolete for + a while now are going to be removed after this release. + +All of these changes will happen on "master", the development branch. +Note that the snapshot packages on Melpa are built from that branch. +If you cannot update Emacs and/or Git now, then you should pin Magit +to Melpa-Stable to stick with this release (and bugfix releases) for +the time being. + +Breaking changes +---------------- + +* As announced earlier, the obsolete option `magit-no-confirm-default' + has been removed. #3232 + +Changes since v2.12.0 +--------------------- + +* Augmenting a file- or blob-visiting buffer with blame information + was completely rewritten, making the implementation more robust and + adding many new features. It is now possible blame in order to get + an answer to the question "what commits remove these lines". It is + no longer necessary for the buffer to be put into `read-only-mode', + when displaying blame information. New visualization styles were + added and users can define their own styles. New commands to visit + blobs related to the current chunk were added. + +* Added new command `magit-tag-release'. This is a fairly opinionated + command and its only use to you might be to serve as a template for + your own variant. + +* Added new section inserter `magit-insert-ignored-files', which + could be added to `magit-status-sections-hook'. + +* The mode `global-magit-file-mode' is now enabled by default, making + the `magit-file-popup' available on "C-c M-g". 0ec28b97 + +* Added new commands `magit-log-trace-definition' and + `magit-diff-trace-definition', which show a log with diffs about the + definition at point. #2588 + +* Added new commands `magit-edit-line-commit' and + `magit-diff-edit-hunk-commit', which allow editing the commit that + added the line at point. febe79ba 22b13337 + +* The interactive prompts for the various reset commands now indicate + the branch which is going to be reset. #3438 + +* Added new option `magit-published-branches', providing an additional + safety-net. If you try to modify a commit that has been pushed to + one of these branches already, then you are now being asked whether + you really want to do that. Do not rely on this exclusively, there + are edge-cases that are ambiguous and are not always handled as you + might have expected. add4a7f3 ff + +* Gravatar images are now being inserted asynchronously. #3452 + +* After deleting the current worktree, `magit-delete-worktree' now + shows the status buffer for another worktree. d9cd4611 + +* Added new command `magit-worktree-checkout-pull-request'. a3d788ec + +* New variable `magit-get-previous-branch-timeout' limits the amount + of time spent in `magit-get-previous-branch'. #3457 + +Fixes since v2.12.0 +------------------- + +* The recently added command `magit-branch-pull-request' had various + issues concerning pull-requests referencing branches from the + upstream repository. #3416 #3417 #3461 + +* The values of diffstat sections was wrong for sections that + represent renamed files. 66d9558f + +* Time zones were not handled correctly when calculating times for + blame headings. #3443 + +This release also contains the fixes described in the v2.12.1 release +notes, as well as other minor improvements, bug fixes, typo fixes, and +documentation fixes. + +Authors +------- + + 138 Jonas Bernoulli + 6 Kyle Meyer + 2 Alban Gruin + 2 Basil L. Contovounesios + 2 Buster Copley + 2 Christophe Junke + 2 Mario Rodas + 2 Phil Sainty + 1 Aaron Madlon-Kay + 1 Ben North + 1 Dean Kariniemi + 1 Eli Barzilay + 1 Jon Vanderwijk + 1 Jonathan Leech-Pepin + 1 Justin Guenther + 1 Li-Yun Chang + 1 Marc Sherry + 1 Noam Postavsky diff --git a/docs/RelNotes/2.13.1.txt b/docs/RelNotes/2.13.1.txt new file mode 100644 index 0000000..3447dab --- /dev/null +++ b/docs/RelNotes/2.13.1.txt @@ -0,0 +1,34 @@ +Magit v2.13.1 Release Notes +=========================== + +Fixes since v2.13.0 +------------------- + +* The prompt used by `magit-rebase-interactive-assert' was wrong. + 37d76f409 + +* `magit-rebase-autosquash' asked for confirmation when the user + already confirmed earlier. 02e6c75b6 + +* `magit-log-wash-rev` errored in ~magit-cherry-mode~, starting with + Emacs 26.1. 1ee577b35 + +* 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 + +* When using cygwin, then `git-commit-setup-font-lock' could end up + trying to run git in a non-existent directory. #3505 + +* `magit-insert-modules-unpushed-to-pushremote' failed to insert + anything due to a typo in the used commit range. d4e159f35 + +Authors +------- + + 11 Jonas Bernoulli + 8 Kyle Meyer + 5 Noam Postavsky diff --git a/docs/RelNotes/2.2.0.txt b/docs/RelNotes/2.2.0.txt new file mode 100644 index 0000000..2b77c4a --- /dev/null +++ b/docs/RelNotes/2.2.0.txt @@ -0,0 +1,219 @@ +Magit v2.2.0 Release Notes +========================== + +Released 16 August 2015 by Jonas Bernoulli. + +We are pleased to announce the release of Magit version 2.2.0, +representing 321 commits by 19 people over 6 weeks. + +I would like to thank Kyle Meyer and Noam Postavsky for joining +the developer team and helping me with this release. -- Jonas + +Changes since v2.1.0 +-------------------- + +* The Elpa packages `with-editor' and `magit-popup' now depend on the + package `async' and turn on the mode `async-bytecomp-package-mode'. + If available, the mode is turned on even when these packages have + not been installed from an Elpa archive. It is being turned on in + both of these libraries because any one of them might be the first + package from the Magit repository that is being updated. + + It is possible to prevent the mode from being turned on when loading + these libraries by setting `async-bytecomp-allowed-packages' to nil + before loading them. If you do that, then you must mention that you + have done so when reporting a bug (which might therefore be due to + miscompiled files). + + Turning on `async-bytecomp-package-mode' advises `package--compile', + instructing it to compile Magit and its dependencies (as well as + others packages listed in `async-bytecomp-allowed-packages' and + their dependencies) in a separate Emacs instance. + + Unfortunately it is necessary that we do this because when an old + version of a package is already loaded when a new version is being + installed, then the old version sometimes interferes during + compilation of the new version, leading to miscompiled files. + + This usually does not happen very often, but when updating from + Magit v1 to v2 then it is expected, which is why users were + instructed to uninstall the old version before installing v2.1.0. + Unfortunately many users never saw those instructions, so we have + no choice but to use this approach to get rid of miscompiled files. + +* Two new commands have been added to the diff refresh popup that + allow the range of the previous diff to be manipulated. + `magit-diff-flip-revs' swaps the revisions of the range, and + `magit-diff-switch-range-type' toggles between ".." and "..." range + types. + +* The commands `magit-ediff-show-unstaged', `magit-ediff-show-staged', + `magit-ediff-show-commit', and `magit-ediff-show-working-tree' have + been added to the Ediff popup. + +* New option `magit-ediff-dwim-show-on-hunks' controls whether calling + `magit-ediff-dwim' runs a show variant (`magit-ediff-show-unstaged' + or `magit-ediff-show-staged') rather than `magit-ediff-stage' when + point is on an uncommitted hunk. + +* `magit-diff' and `magit-ediff-compare' no longer prompt the user for + confirmation when constructing a range from the last and first + commits selected by a region. A prefix argument can now be used to + specify that the diff is between the second revision and the common + ancestor of both revisions (i.e., the "..." range type is used). + +* `magit-ediff-*' variants now limit file choices to those that have + changed between the revisions of interest. If only one file has + changed, this file is used without prompting. + +* `magit-diff' and `magit-ediff-compare' now consider the location at + point when choosing the default for the prompt, and this default + value usually corresponds with the actions of their DWIM + counterparts. + +* The key in Ediff popup for `magit-ediff-compare' has changed from + "d" to "r" to be consistent with the key in the diff popup for the + similarly behaved `magit-diff`. + +* Entering a single commit for the range to `magit-ediff-compare' now + compares the commit with the working tree (like `magit-diff' and + `git diff') rather than the previous commit. + +* The popup `magit-diff-refresh-popup' and its suffix commands and + helper functions were fixed. Most importantly file arguments and + diff-type arguments are no longer lost when this popup is used - + it only changes those arguments it is supposed to change. Also + the popup only lists the arguments which can actually be used in + the current buffer (in status buffers fewer are supported than in + diff-only buffers). + +* The popup `magit-diff-popup' and its suffix commands now use the + arguments currently in the `magit-diff-mode' buffer of the current + repository. Previously the arguments were always reset to the + default value of `magit-diff-arguments'. + +* The default values of `magit-diff-section-arguments' and + `magit-diff-arguments' now contain the `--no-ext-diff' switch. + +* New popup `magit-log-refresh-popup' allows changing the log + arguments used in the current buffer. This allows changing the + arguments used in a log buffer without having to specify the + reference(s) again. And it makes it possible to change the log + arguments used in the status buffer, which previously required that + option `magit-log-section-arguments' was customized manually. + +* When a log is displayed for the purpose of having the user select + a commit, then this is now displayed in a buffer separate from the + regular log buffer. New option `magit-log-select-buffer-name-format' + controls the name of that buffer and new option + `magit-log-select-arguments' controls the arguments. + +* The default value of `magit-log-section-arguments' now contains the + `--decorate' switch. + +* `magit-log-buffer-file' respects the log arguments currently in + effect in the repositories log buffer, or if that doesn't exist the + default value of `magit-log-arguments'. Because this command is not + invoked from the log popup, it's now also possible to turn on the + `--follow' using a prefix argument. + +* Log graphs are no longer shown in color by default, because turning + the control sequences into faces is very inefficient. To allow + users to get back the colorful graphs, the `--color' switch has been + added to the log popup. + +* In the refs manager, `RET' on a local branch again "visits" that + branch by checking it out (like in v1.4). With a prefix argument it + instead "visits" the branch by showing information about other refs + relative to the visited one (like in v2.1 even without a prefix + argument). + + When the new option `magit-visit-ref-create' is non-nil, then a + remote branch is "visited" by creating a new local branch that + tracks that remote branch, and checking out that local branch. + +* To avoid losing any standard functionality, `C-w' and `M-w' now + fallback to `kill-ring-save' when the region is active. They also + work in more places and in some cases copy more useful information + than before. + +* New option `magit-push-always-verify' has been added because changes + in v2.1 caused many users to accidentally push to `master' instead + of a remote feature branch as intended. All users should set this + option to nil, but only after having read the documentation. The + commands that respect this option instruct users to consult its + documentation. + +* Moving through a log using `n' and `p' is now much faster because + the revision buffer is no longer recreated for each commit along the + way. Because Emacs does not support key-down-events this had to be + implemented using a timer, which has the unfortunate effect that it + leads to a delay even when only pressing one of these keys briefly + to move by a single line. This delay can be adjusted using the new + option `magit-diff-auto-show-delay'. + +* When creating a new branch, first reading the starting point and + only then the name of the new branch has advantages. But many users + disagree, so the option `magit-branch-read-upstream-first' has been + added. It defaults to t. + +* New commands `magit-wip-log' and `magit-wip-log-current' allow + showing log for a branch and its wip refs (which the various wip + modes commit to). + +* New command `magit-submodule-deinit'. + +* New command `magit-commit-augment' allows the user to pick a commit + to squash into and edit the squash commit message. + +* New push commands `magit-push-implicitly' and `magit-push-quickly'. + +* When reading user input, many commands now offer a better default + choice and better completion candidates. + +* All apply variants now use `--3way' when called with a prefix + argument. + +* Log commands now respect the entries in the .mailmap file. + +* The command `magit-pull-current' now also fetches tags by default. + +* When a file has conflicts then the type of conflict is shown now. + +* New option `magit-log-show-refname-after-summary'. + +* New section inserter `magit-insert-user-header'. + +* New face `magit-section-secondary-heading'. + +* New commands `magit-run-gitk-all' and `magit-run-gitk-branches'. + The existing command `magit-run-gitk' now always calls `gitk' + without any arguments. + +* New commands `magit-shell-command' and `magit-shell-command-topdir'. + +This release also contains various documentation fixes, code +clean-ups, bug fixes, and other small to medium improvements. + +Authors +------- + + 225 Jonas Bernoulli + 67 Kyle Meyer + 8 Noam Postavsky + 3 Mitchel Humpherys + 2 Greg Lucas + 2 Mark Karpov + 2 Yuichi Higashi + 1 Johann Klähn + 1 Josiah Schwab + 1 Kan-Ru Chen + 1 Nicklas Lindgren + 1 Phil Sainty + 1 Richard Kim + 1 Robin Green + 1 Rémi Vanicat + 1 Steven Vancoillie + 1 Thomas Frössman + 1 Ting-Yu Lin + 1 Vineet Naik diff --git a/docs/RelNotes/2.2.1.txt b/docs/RelNotes/2.2.1.txt new file mode 100644 index 0000000..11771bf --- /dev/null +++ b/docs/RelNotes/2.2.1.txt @@ -0,0 +1,45 @@ +Magit v2.2.1 Release Notes +========================== + +Released 24 August 2015 by Jonas Bernoulli. + +This is a bugfix release. + +* The version strings in the manual were not set to "2.2" when v2.2.0 + was released. + +* Some menu bindings were not adjusted when commands were renamed. + +* The "next" tag was never shown in the "Tag(s)" header of the status + buffer. + +* Blaming did not abort gracefully when the user killed the buffer. + +* Blaming failed on indirect buffers. + +* Blaming did not detect when a file was untracked. + +* Blaming passed the wrong line range when the file's buffer was + narrowed. + +* `magit-shell-command-topdir' used `magit-git-command' instead of + `magit-shell-command'. + +* `magit-copy-as-kill' added "nil" to the `kill-ring' when there was + nothing useful to put there. + +* `magit-find-file-hook', `magit-find-index-hook', + `magit-refresh-popup-buffer-hook' were used without being defined + using `defvar'. + +* `magit-format-ref-labels' failed to work around a Git bug, resulting + in refnames not being colorized when `--simplify-by-decoration' is + used. + +This release also contains various documentation fixes. + +Authors +------- + + 16 Jonas Bernoulli + 11 Kyle Meyer diff --git a/docs/RelNotes/2.2.2.txt b/docs/RelNotes/2.2.2.txt new file mode 100644 index 0000000..1d5ec52 --- /dev/null +++ b/docs/RelNotes/2.2.2.txt @@ -0,0 +1,45 @@ +Magit v2.2.2 Release Notes +========================== + +Released 3 September 2015 by Jonas Bernoulli. + +This is a bugfix release. + +* `magit-diff-wash-diff' choked on unmerged binary files. #2211 + +* `magit-blame-popup' did not allow empty input when reading a value + for "-C" or "-M". #2208 + +* The `emacsclient' executables belonging to non-current alternative + installations of Emacs on Debian were not considered when setting + the default value of `with-editor-emacsclient-executable'. #2217 + +* `server-edit', which switches to a buffer preferably one with + another client, was used when finishing or aborting a `with-editor' + session. When `emacsclient' was used to connect to a server and + then a commit or rebase was invoked, then there would be another + client and switching to its buffer after finishing the commit or + rebase would be undesirable. Now we use `server-done' instead. + #2197 + +* When `--stat' abbreviates the name of a file, then that name was + stored in the section object instead of the full name. #2199 + +* `magit-file-relative-name' with non-nil TRACKED failed in Tramp + repositories. #2206 + +* After failing to clone, `magit-clone' also tried to show the status + of the non-existent clone. #2203 + +* `magit-wip-log' did not display a log if the working tree or index + ref did not exist. + +This release also contains various documentation fixes and code +clean-ups. + +Authors +------- + + 29 Jonas Bernoulli + 5 Kyle Meyer + 1 Barak A. Pearlmutter diff --git a/docs/RelNotes/2.3.0.txt b/docs/RelNotes/2.3.0.txt new file mode 100644 index 0000000..fa7d822 --- /dev/null +++ b/docs/RelNotes/2.3.0.txt @@ -0,0 +1,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 diff --git a/docs/RelNotes/2.3.1.txt b/docs/RelNotes/2.3.1.txt new file mode 100644 index 0000000..b1d1291 --- /dev/null +++ b/docs/RelNotes/2.3.1.txt @@ -0,0 +1,31 @@ +Magit v2.3.1 Release Notes +========================== + +Released 11 November 2015 by Jonas Bernoulli. + +This is a bugfix release. + +* `magit-stash-drop' now shows a message with the hash of the dropped + stash to make it easier to recover from dropping the wrong stash. + +* `magit-revert-buffers' now avoids needlessly connecting to unrelated + hosts. It first checks whether a given file is on the same host as + the repository, and only if that is so it checks whether the file is + located inside the repository, using `file-in-directory-p', which, + for Tramp files, requires connecting to the remote host. + +* `magit-commit-message-buffer' no longer hangs when a symlink to the + repository is involved. + +This release also contains various documentation fixes and code +clean-ups. + +Authors +------- + + 10 Jonas Bernoulli + 3 Noam Postavsky + 2 Kyle Meyer + 1 Carl Lieberman + 1 David L. Rager + 1 Syohei Yoshida diff --git a/docs/RelNotes/2.4.0.txt b/docs/RelNotes/2.4.0.txt new file mode 100644 index 0000000..bedd075 --- /dev/null +++ b/docs/RelNotes/2.4.0.txt @@ -0,0 +1,147 @@ +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.<name>.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.<current-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 diff --git a/docs/RelNotes/2.4.1.txt b/docs/RelNotes/2.4.1.txt new file mode 100644 index 0000000..872a6df --- /dev/null +++ b/docs/RelNotes/2.4.1.txt @@ -0,0 +1,31 @@ +Magit v2.4.1 Release Notes +========================== + +Updates since v2.4.0 +-------------------- + +* Added new utility functions `magit-rev-abbrev', `magit-ref-p', and + `magit-tag-p'. + +Fixes since v2.4.0 +------------------ + +* When determining the emacsclient executable most suitable for the + current emacs instance, With-Editor ignored any executable that is + actually named "emacsclient-snapshot". + +* When determining the most suitable git executable, an error occurred + if "Git for Windows 1.x" is used and an cygpath executable is + available. + +* An error occurred when refreshing the status buffer when there is a + new, staged but not yet committed, submodule. + +This release also contains typofixes. + +Authors +------- + + 9 Jonas Bernoulli + 4 Kyle Meyer + 1 Noam Postavsky diff --git a/docs/RelNotes/2.5.0.txt b/docs/RelNotes/2.5.0.txt new file mode 100644 index 0000000..cce9fed --- /dev/null +++ b/docs/RelNotes/2.5.0.txt @@ -0,0 +1,122 @@ +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 <upstream>" to "Unmerged into <upstream>", 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 diff --git a/docs/RelNotes/2.6.0.txt b/docs/RelNotes/2.6.0.txt new file mode 100644 index 0000000..c58fdc2 --- /dev/null +++ b/docs/RelNotes/2.6.0.txt @@ -0,0 +1,134 @@ +Magit v2.6.0 Release Notes +========================== + +Released 29 March 2016 by Jonas Bernoulli. + +We are pleased to announce the release of Magit version 2.6.0, +representing 77 commits by 7 contributors over 2 months. + +Also see http://emacsair.me/2016/03/29/magit-2.6. + +Updates since v2.5.0 +-------------------- + +* Added a cache, which memorizes the values of some function calls for + the duration of a refresh. This cuts the calls to git in half. + +* Added new option `magit-diff-hide-trailing-cr-characters'. When its + value is non-nil (the default on Windows), then ^M characters at the + end of diff lines are hidden. + +* Added new command `magit-diff-buffer-file-popup' intended for use in + file-visiting buffers. It shows the same popup as `magit-diff-popup' + but starts out already limited to the visited file. + +* Added new command `magit-ediff-show-stash', which is available in + the Ediff popup and will be used when `magit-ediff-dwim' is called + with point on a stash. + +* Added new command `magit-reset-popup' featuring all the available + reset variants. + +* Added new command `magit-push-refspecs', which allows pushing using + one or more comma-separated and refspecs, which are explicitly typed + in the minibuffer. + +* Added new commands `magit-fetch-refspec' and `magit-fetch-branch'. + +* Added new section inserters + `magit-insert-modules-unpulled-from-pushremote' and + `magit-insert-modules-unpushed-to-pushremote', and renamed + `magit-insert-unpulled-module-commits' to + `magit-insert-modules-unpulled-from-upstream' and + `magit-insert-unpushed-module-commits' to + `magit-insert-modules-unpushed-to-upstream'. + +* The command `magit-submodule-add' now allows using a module name + different from the path of the module. + +* If `magit-push-current-set-remote-if-missing's value is `default', + then the command `magit-push-current-to-pushremote' now offers to + set `remote.pushDefault' unless the push-remote is already set in + some way. Previously this command offered to set the local value + `branch.NAME.pushRemote' for all non-nil values of the option. + +* When washing the diff that is to be displayed while writing a + commit message takes too long, then it is now possible to abort that + by pressing `C-g'. Previously that would have aborted the commit. + +* When `magit-process-raise-error' is non-nil, then the displayed + error message now also mentions the `default-directory', which is + useful when using Magit as a library in another packages that runs + git in many different repositories. + +* The `magit-insert-section' macro's TYPE argument can now have the + form `(eval FORM)' instead of a symbol. An atomic TYPE is never + evaluated, but FORM is evaluated at run-time. + +Fixes since v2.5.0 +------------------ + +* Staging hunks/regions belonging to files with CRLF line endings on + Windows (or, to be precise, when `default-process-coding-system' had + CRLF end-of-line conversion) ended up erroneously staging changes + with LF line endings. Magit now ensures line endings are preserved + by enforcing a `process-coding-system' with LF end-of-line + conversion. The new behavior may be disabled by setting the option + `magit-process-ensure-unix-line-ending' to `nil'. + +* If the user sets the variable `magit-auto-revert-mode' or the + obsolete alias `magit-revert-buffers' to nil anytime during startup + (before or after `magit-autorevert' is loaded) then the mode is now + no longer turned on (actually it is explicitly turned off). + +* When a revision buffer was limited to a set of files, its header + line did not say so. + +* The function `magit-run-git-with-input' had stopped calling + `magit-pre-call-git-hook' and logging its git command to the + magit-process buffer. + +* The function `magit-diff-wash-submodule did not handle some less + common cases. + +* The command `magit-section-cycle-diffs' hung when hiding sections. + +* Invoking `magit-commit-popup's default action by invoking the popup + command with a prefix argument failed due to a typo. + +* The command `magit-toggle-buffer-lock' failed if another buffer is + already locked to the same value. + +* The command `magit-clone' did not switch to the cloned repository + before trying to delete the symbolic-ref "origin/HEAD". + +* The commands `magit-insert-unpulled-from-pushremote' and + `magit-insert-unpushed-to-pushremote' missed an edge case when + checking whether their section should be inserted into the status + buffer. + +* The command `magit-merge-preview' did not recognize sections for + added or deleted files. + +* The command `magit-show-stash' did not properly handle untracked + files that were within subdirectories. + +* On `windows-nt' systems, having `mount' in `exec-path' caused Magit + to assume that git is from Cygwin. + +* Added a kludge to work around a bug in Apple's OS X which causes + `file-accessible-directory-p' to return incorrect results. + +This release also contains typofixes, documentation updates, and code +clean-ups. + +Authors +------- + + 53 Jonas Bernoulli + 13 Kyle Meyer + 4 Luís Oliveira + 4 Noam Postavsky + 1 Dan Erikson + 1 Dato Simó + 1 Russell Black diff --git a/docs/RelNotes/2.6.1.txt b/docs/RelNotes/2.6.1.txt new file mode 100644 index 0000000..075f1c0 --- /dev/null +++ b/docs/RelNotes/2.6.1.txt @@ -0,0 +1,40 @@ +Magit v2.6.1 Release Notes +========================== + +Fixes since v2.6.0 +------------------ + +* When a submodule is manually removed without staging the removal, + then the status buffer could no longer be updated. + +* In some cases not all modified submodules were shown in the status + buffer. + +* Visiting a blob did turn on `diff-hl-mode' if the global mode is on. + +* Stash and wipref were needlessly signed if signing is enabled. + +* The command `git-commit-save-message' did not strip diffs produced + by `git commit --verbose'. + +* Diffs produced by `git commit --verbose' were not completely + highlighted in the commit message buffer. + +* When the commit message buffer contains nothing but a single line + that does not end with a newline, then a warning was shown about + there being a non-empty second line. + +* When installing from Melpa, `async-bytecomp-package-mode' was no + longer activated early enough. + +This release also contains documentation updates, typofixes, fixes for +minor bugs, and other small improvements. + +Authors +------- + + 14 Jonas Bernoulli + 5 Kyle Meyer + 1 Fritz Grabo + 1 Ingo Lohmar + 1 Noam Postavsky diff --git a/docs/RelNotes/2.6.2.txt b/docs/RelNotes/2.6.2.txt new file mode 100644 index 0000000..9433128 --- /dev/null +++ b/docs/RelNotes/2.6.2.txt @@ -0,0 +1,52 @@ +Magit v2.6.2 Release Notes +========================== + +Changes since v2.6.1 +-------------------- + +* Added new section inserter `magit-insert-submodules'. For each + submodule it inserts the module path and a description of its tip. + +* When re-adding an already configured but for some reason unstaged + submodule, then `magit-submodule-add' now offers the configured + submodule name as default choice. + +Fixes since v2.6.1 +------------------ + +* When possible `git merge (--no-commit|--edit)' perform fast-forward + merges, which isn't what one would expect. `magit-merge-nocommit' + and `magit-merge-editmsg' now work around that by always using + `--no-ff'. + +* The command `magit-log', when called with `--patch' but without + `--graph', deleted the first two characters of file names in the + diff. + +* When performing an instant fixup/squash, the rebase often failed + because the commit process still held the lock on `index.lock'. + +* The command `magit-submodule-add' offered an invalid default choice + for the module path and allowed selecting a file that isn't a + repository. + +* `git-rebase-mode' failed to prevent `save-place-mode' from having an + effect. + +* The section inserter `magit-insert-unpulled-from-upstream-or-recent' + failed to insert the recent commits instead when no upstream is + configured. + +* Two key bindings in `magit-pull-and-fetch-popup' conflicted. + +* The default value for `magit-cygwin-mount-points' checked if + "git.exe" was a cygwin flavor of git, instead of the (possibly user + customized) value of `magit-git-executable'. + +Authors +------- + + 21 Jonas Bernoulli + 1 John Mastro + 1 Kyle Meyer + 1 Noam Postavsky diff --git a/docs/RelNotes/2.7.0.txt b/docs/RelNotes/2.7.0.txt new file mode 100644 index 0000000..310878a --- /dev/null +++ b/docs/RelNotes/2.7.0.txt @@ -0,0 +1,81 @@ +Magit v2.7.0 Release Notes +========================== + +Released 19 May 2016 by Jonas Bernoulli. + +We are pleased to announce the release of Magit version 2.7.0, +representing 116 commits by 7 people over 7 weeks. + +Also see http://emacsair.me/2016/05/19/magit-2.7. + +Changes since v2.6.0 +-------------------- + +* Added new popup `magit-subtree-popup' and bound "O" to it. + +* Added new popup `magit-branch-config-popup' and made it available + from the popups `magit-branch-popup', `magit-pull-and-fetch-popup', + `magit-pull-popup', `magit-fetch-popup', and `magit-push-popup'. + + With a prefix argument it reads a branch to be configured in the + minibuffer instead of using the current branch. + +* Added new option `magit-branch-popup-show-variables', defaulting to + t to avoid changing key bindings. When set to nil, no variables are + displayed directly in the `magit-branch-popup', instead the subpopup + `magit-branch-config-popup' has to be used. + +* Added new popup command `magit-log-buffer-file-popup'. + +* Added new command `magit-diff-buffer-file' and new option + `magit-diff-buffer-file-locked'. When the value of the option is + non-nil, the default, then the command uses a dedicated buffer. + +* Added new option `magit-log-buffer-file-locked'. When its value is + non-nil, the default, then `magit-log-buffer-file' uses a dedicated + buffer. + +* Added new commands `magit-worktree-checkout', + `magit-worktree-branch', `magit-worktree-delete', + and `magit-worktree-status'. + +* Added new section inserter `magit-insert-worktrees' + +* The command `magit-clone' now runs asynchronously, which avoids + blocking Emacs and allows handling password prompts. + +* The command `magit-stage' learned to stage an untracked file while + leaving its content unstaged (i.e. `git add --intent-to-add') when + called with a prefix argument. + +* The command `magit-reverse' learned to use `--reject' to ensure that + non-conflicting hunks are applied and that conflicting hunks are put + into reject files. + +* When the command `magit-discard' is used on staged changes, then + that is done by first reversing the changes in the index and then in + the working tree. The second step could fail due to conflicts. Now + the `--reject' argument is used, which ensures that non-conflicting + hunks are applied and that conflicting hunks are put into reject + files. + +* The command `magit-rebase-continue' learned to reuse the old commit + message as-is when called with a prefix argument. + +* In the refs buffer symbolic refs, such as "remotes/origin/HEAD", are + no longer omitted from the lists of local and remote branches. + +This release also contains the fixes described in the v2.6.1 and +v2.6.2 release notes, as well as various other documentation fixes, +code clean-ups, bug fixes, and other small to medium improvements. + +Authors +------- + + 95 Jonas Bernoulli + 10 Kyle Meyer + 7 Noam Postavsky + 1 Bart Bakker + 1 Fritz Grabo + 1 Ingo Lohmar + 1 John Mastro diff --git a/docs/RelNotes/2.8.0.txt b/docs/RelNotes/2.8.0.txt new file mode 100644 index 0000000..2ca6b70 --- /dev/null +++ b/docs/RelNotes/2.8.0.txt @@ -0,0 +1,128 @@ +Magit v2.8.0 Release Notes +========================== + +Released 21 August 2016 by Jonas Bernoulli. + +We are pleased to announce the release of Magit version 2.8.0, +representing 124 commits by 11 people over 3 months. + +Also see http://emacsair.me/2016/08/21/magit-2.8. + +Changes since v2.7.0 +-------------------- + +* Added several new functions that are suitable values for + `magit-display-buffer-function': + `magit-display-buffer-same-window-except-diff-v1', + `magit-display-buffer-fullframe-status-v1', + `magit-display-buffer-fullframe-status-topleft-v1', and + `magit-display-buffer-fullcolumn-most-v1'. + +* Added new commands `magit-list-repositories' and related new option + `magit-repolist-columns'. + +* Added new commands `magit-list-submodules and related new option + `magit-submodule-list-columns'. + +* Added new command `magit-branch-orphan'. + +* Added new command `magit-log-move-to-parent'. + +* Added support for globbing in file arguments of diff and log + commands. + +* Added support for showing and copying bad commit identified by git + bisect. + +* Added new option `magit-log-output-coding-system'. + +* Added new option `magit-no-message', which can be used to suppress + certain messages whose usefulness are being disputed. + +* Taught `magit-find-file-noselect' and `magit-find-index-noselect' to + use Emacs' encoding detection, and enable `revert-buffer' to work in + those buffers. This makes `magit-ediff-*' commands more useful for + files with non-standard encoding. + +* Taught `magit-insert-bisect-rest' to show the log graph by default. + The new option `magit-bisect-show-graph' controls this. + +* Taught `magit-insert-submodules' to display more information. + +* When a refresh causes the previously current hunk section to + disappear, which happens when it was applied in some way, then we + attempt to move to a sibling hunk. When that succeeds, then that is + now considered a proper move and `magit-section-movement-hook' is + called, which in turn may cause the current hunk to be recentered. + +* In addition to the directory, each member of the value of option + `magit-repository-directories' can now specify the depth to look for + repositories inside that directory, overriding the default depth + specified using the option `magit-repository-directories-depth'. + +* Blob visiting buffers can now be reverted, which is useful when they + visit a reference. + +* Command `magit-stage' can now be used outside of Magit buffers. + +* Commands that read a branch or commit from the user now also offer + tags as completion candidates. + +* Taught `magit-insert-worktrees' to use relative filenames. + +Fixes since v2.7.0 +------------------ + +* Function `magit-get-all' did split multi-line values into multiple + values. + +* Function `magit-subtree-read-prefix' which is used in order to read + the `--prefix' argument from the subtree popup was missing. + +* Command `magit-blame' failed when run in a blob buffer for a file + located in a subdirectory. + +* Command `magit-diff-visit-file' didn't visit a blob when called + inside a `magit-stash-mode' buffer. + +* Command `magit-submodule-add' did not allow picking a path that + does not exist yet and read the path before the url. + +* Command `magit-submodule-setup' did update existing modules, which + can cause them to become detached. + +* Command `magit-popup-describe-function' could create an extra window + on wide frames. + +* Commands `magit-diff-show-or-scroll-{up,down}' failed to scroll + stash buffers. + +* Mode `git-rebase-mode' did not respect the Git variable + `core.commentChar'. + +* Sections in the process buffer sometimes had invalid parent + sections, causing movement and visibility commands to fail, and + expected Git errors not to be handled gracefully in some cases. + +* Merges where not performed asynchronously, which made it impossible + to read a passphrase from the user, needed for commit signing. + +* In bare repositories tracked files were listed as deleted. + +This release also contains typofixes, documentation updates, code +clean-ups, bug fixes, and other small to medium improvements. + +Authors +------- + + 59 Jonas Bernoulli + 33 Noam Postavsky + 23 Kyle Meyer + 2 Mario Rodas + 1 Andriy Kmit' + 1 Basil L. Contovounesios + 1 Chris Shoemaker + 1 Ivan Brennan + 1 Laverne Schrock + 1 Samuel W. Flint + 1 Wilfred Hughes diff --git a/docs/RelNotes/2.9.0.txt b/docs/RelNotes/2.9.0.txt new file mode 100644 index 0000000..64353e5 --- /dev/null +++ b/docs/RelNotes/2.9.0.txt @@ -0,0 +1,453 @@ +It's Magit! A Git Porcelain inside Emacs +========================================= + +Magit is an interface to the version control system Git, implemented +as an Emacs package. Magit aspires to be a complete Git porcelain. +While we cannot (yet) claim that Magit wraps and improves upon each +and every Git command, it is complete enough to allow even experienced +Git users to perform almost all of their daily version control tasks +directly from within Emacs. While many fine Git clients exist, only +Magit and Git itself deserve to be called porcelains. + +For more information about Magit, see https://magit.vc. + +If Magit helps you be more productive, then please consider donating +at https://magit.vc/donate/. + +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 diff --git a/docs/RelNotes/2.90.0.org b/docs/RelNotes/2.90.0.org new file mode 100644 index 0000000..671e0bc --- /dev/null +++ b/docs/RelNotes/2.90.0.org @@ -0,0 +1,438 @@ +* It's Magit! A Git Porcelain inside Emacs + +Magit is a text-based Git user interface that puts an unmatched focus +on streamlining workflows. Commands are invoked using short mnemonic +key sequences that take the cursor’s position in the highly actionable +interface into account to provide context-sensitive behavior. + +With Magit you can do nearly everything that you can do when using Git +on the command-line, but at greater speed and while taking advantage +of advanced features that previously seemed too daunting to use on a +daily basis. Many users will find that by using Magit they can become +more effective Git user. + +For more information about Magit, see https://magit.vc. + +* 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 diff --git a/docs/RelNotes/2.90.1.org b/docs/RelNotes/2.90.1.org new file mode 100644 index 0000000..2c601f8 --- /dev/null +++ b/docs/RelNotes/2.90.1.org @@ -0,0 +1,39 @@ +* Magit v2.90.1 Release Notes +** Changes since v2.90.0 + +- Added ~bug-reference-mode~ to ~git-commit-setup-hook~. e19e8fb1e + +- The "Version" column in ~magit-submodule-list-mode~ and + ~magit-repolist-mode~ buffers now shows when a repository is dirty. + 0b86dbfd6 + +- Added new command ~magit-log-merged~. This command requires + ~git-when-merged~ (https://github.com/mhagger/git-when-merged). It + isn't bound in ~magit-log-popup~ by default. To add it, you can use + something like + + #+BEGIN_SRC emacs-lisp + (magit-define-popup-action 'magit-log-popup + ?m "Log commit's merge" 'magit-log-merged) + #+END_SRC + + #3657 + +** Fixes since v2.90.0 + +- Bumped the minimal required version of ~git-commit~ to the correct + version. e9bd33758 + +- Dropped the new "v" prefix that we started to add to release tags + starting with the previous release in places where that prefix is + undesirable. f441cf6d7 + +- Staging and unstaging submodules while ~diff.submodule~'s value is ~log~ + broke shortly before the v2.90.0 release. #3654 + +* Authors + + 10 Jonas Bernoulli + 1 Allen Li + 1 Kevin Brubeck Unhammer + 1 Kyle Meyer diff --git a/docs/RelNotes/3.0.0.org b/docs/RelNotes/3.0.0.org new file mode 100644 index 0000000..0e384b4 --- /dev/null +++ b/docs/RelNotes/3.0.0.org @@ -0,0 +1,701 @@ +* It's Magit! A Git Porcelain inside Emacs + +Magit is a text-based Git user interface that puts an unmatched focus +on streamlining workflows. Commands are invoked using short mnemonic +key sequences that take the cursor’s position in the highly actionable +interface into account to provide context-sensitive behavior. + +With Magit you can do nearly everything that you can do when using Git +on the command-line, but at greater speed and while taking advantage +of advanced features that previously seemed too daunting to use on a +daily basis. Many users will find that by using Magit they can become +more effective Git user. + +For more information about Magit, see https://magit.vc. + +* Magit v3.0.0 Release Notes + +Released 25th May 2021 by Jonas Bernoulli. + +I am pleased to announce the release of Magit version 3.0.0, +representing 1264 commits by 87 contributors over 2.5 years. + +Also see https://emacsair.me/2021/05/25/magit-3.0. + +** Breaking changes + +- Dropped support for Git v2.0 and v2.1. + +- After some users intervened I have decided to NOT drop support for + Emacs 25 in this release as I had intended to do. Emacs 25 should + remain supported for at least a few more releases. + +- Magit now uses Transient instead of Magit-Popup. In the transition + many popups gained new arguments and/or commands, most of which are + not mentioned explicitly in these release notes. Many of these + commands are hidden by default because they are only useful to a + subset of users. See https://emacsair.me/2019/02/14/transient-0.1 + for information about the new Transient library and how to enable + hidden commands, among other things. + +- The commands ~magit-branch-pull-request~, ~magit-checkout-pull-request~ + and ~magit-worktree-checkout-pull-request~ were removed in favor of + improved implementations provided by the new Forge package. (See + https://emacsair.me/2018/12/19/forge-0.1 for more information about + Forge.) + +- ~C-c C-e~ is no longer bound to ~magit-dispatch-popup~. It is bound to + ~magit-edit-thing~ now, so that Forge can add section-specific + bindings using this key. ~magit-dispatch-popup~ has been renamed to + ~magit-dispatch~ and continues to be available on ~h~, ~?~ and ~C-c C-c~. + #3659 + +- ~C-c C-b~ is no longer bound to ~magit-browse-thing~ to avoid a conflict + with ~magit-go-backward~ in diff and log buffers. ~C-c C-w~ (as in web) + is used instead now. #3659 + +- The option ~magit-display-file-buffer-function~ was removed. 8a214c9fb + +- The buffer-local variable ~magit-refresh-arguments~ was replaced with + several variables because ~(nth N magit-refresh-arguments)~ just isn't + very informative. Several related API functions had to be changed + in incompatible ways. This was done by adding new functions and + keeping the old variable and functions around for backward + compatibility. Packages using the obsolete variable and functions + should be adjusted soon. #3836 + +- Magit-Section is now distributed as a separate package, as announced + here: https://emacsair.me/2020/01/23/magit-section. #4003 + +- Magit now adds three global key bindings, which can be prevented + by setting the new option ~magit-define-global-key-bindings~ before + loading ~magit~. Note that if you bind these keys to other commands + anywhere in your init file (even *after* loading ~magit~), then Magit + won't override those bindings. See the options doc-string for + more information. #4237 + +- Magit no longer depends on ~async-bytecomp~ to avoid a certain class + of mystery bugs because this effort backfired. 86eec7ba3 + +- ~global-git-commit-mode~ is no longer autoloaded. Users who commit + from the command-line but still want to use ~git-commit-mode~, might + now have to load ~git-commit~ explicitly in their init file. + 13f20763a + +** Changes since v2.90.0 + +- It isn't always obvious that a section can be expanded, especially + to users who are just getting started with Magit. Mainly to make + it easier for those users, expandable and collapsible sections now + get an indicator in the fringe. + + The new option ~magit-section-visibility-indicator~ can be used to + disable this or to select the alternative style, which shows an + ellipsis at the end of the heading of each expandable section + instead. #3679 + +- The "Version" column in ~magit-submodule-list-mode~ and + ~magit-repolist-mode~ buffers now shows when a repository is dirty. + 0b86dbfd6 + +- Added new command ~magit-log-merged~. This command requires + ~git-when-merged~ (https://github.com/mhagger/git-when-merged). + It is a suffix of ~magit-log~ but is disabled by default. #3657 + +- Added new class slot ~keymap~ to allow other packages to define + section-specific keymaps without naming them ~magit-TYPE-section-map~, + which would mean using a symbol prefix (~magit-~) that does not match + the package name. + +- Added new option ~magit-diff-refine-ignore-whitespace~, overriding and + defaulting to the value of ~smerge-refine-ignore-whitespace~. #3671 + +- Added new option ~magit-diff-paint-whitespace-lines~, which controls + in what kind of lines (added/removed/context) whitespace errors are + highlighted. #3671 + +- It is now possible to show whitespace errors only in uncommitted + changes by setting ~magit-diff-paint-whitespace~ to ~uncommitted~. The + obsolete value ~status~ is treated as a synonym. The intention always + was to allow limiting to uncommitted changes and limiting to changes + shown in the status buffer was the closest approximation readily + available when this feature was first added. #3671 + +- The commands ~magit-commit-instant-fixup~, ~magit-commit-instant-squash~ + and ~magit-rebase-autosquash~ now unconditionally preserve empty + commits that were already present before the autosquash rebase + performed by these commands. This is the safe default; if you want + to drop such commits, then you have to enable ~--autosquash~ in the + popup and then invoke ~magit-rebase-interactive~. #3670 + +- ~magit-rebase-remove-commit~ now supports removing the ~HEAD~ + commit. #4195 + +- The option ~magit-repository-directories~ defaults to ~nil~ again + because the non-nil default added in v2.90.0 led to surprising + changes in behavior. The documentation of this option and the + related ~magit-status~ command were made less ambiguous. #3673 + +- Renamed the face ~git-commit-note~ to ~git-commit-keyword~ because that + is what text in brackets is called elsewhere in Magit and because + the term "note" was ambiguous in this context. The old face name + is still defined as an alias, but that will be removed eventually. + +- The command ~magit-worktree-checkout~ now also offers tags and remote + branches as completion candidates. #3692 + +- The command ~magit-commit-reword~ now always uses ~--allow-empty~ + because when you reword an empty commit, then you have already + confirmed that you are okay with that commit being empty. + +- The new buffer-local variable ~git-commit-need-summary-line~ can + be of use if you want to write Git notes without separating the + first line with an empty line from the rest of the text. #3676 + +- Made ~magit-tag-release~ more flexible and added it as a suffix of + ~magit-tag~. 2d14f84b2 + +- Bound "C-c C-o" (in addition to "C-c C-w") to ~magit-browse-thing~ for + consistency with ~org-open-at-point~'s binding. 1e1193666 + +- ~magit-copy-section-value~ now supports stripping diff markers. #3716 + +- ~magit-insert-*-branch-header~ now colorizes keywords in the message. + 98e328200 + +- ~magit-unstage~ can now unstage files that were staged using + ~--intent-to-add~. #3753 + +- ~magit-read-branch-or-commit~ now offers symbolic refnames such as + ~ORIG_HEAD~ as completion candidates. #3766 + +- ~magit-stage-modified~ and ~magit-unstage-all~ now take the log file + filter into account. #3767 + +- New command ~magit-skip-worktree~ can be used to tell Git to pretend + that the working tree version is up-to-date; ~magit-no-skip-worktree~ + does the opposite. Both commands are available from the + ~magit-gitignore~ prefix but are disabled by default. #3710 + +- ~--rebase-merges~, an option available in Git version 2.18.0 and + later, is now supported. The ~--rebase-merges~ infix of + ~magit-rebase~ is disabled by default. #3762 + +- New command ~git-rebase-break~ inserts a "break" action in the + rebase to-do sequence (available as of Git v2.20). #3762 + +- ~git-rebase-kill-line~ and the commands for changing the action of a + commit line (e.g., ~git-rebase-squash~) learned to work on all lines + selected by the region. #4172 + +- The ~--color-moved~ diff argument is supported now, but isn't + available from the diff transients by default. To enable it + use "C-x l" in those transients. #3424 + +- Added new option ~magit-revision-filter-files-on-follow~ that + controls whether a revision buffer shown from a log shares the log's + file restriction despite ~--follow~ being in the log arguments. + #3680 + +- ~magit-cherry~ is now available from the ~magit-dispatch~ prefix. + ef311f378 + +- ~magit-cherry-spinoff~ now offers the upstream as the default + starting-point. e5a2a0ac2 + +- Added new command ~magit-branch-spinout~. #3794. + +- ~magit-process-password-auth-source~ now allows the use of emails as + usernames. 05d82d501 + +- Added new option ~magit-prefer-push-default~, which controls whether + commands that configure the push-remote do so by setting the value + of ~remote.pushDefault~ or ~branch.<name>.pushRemote~. Also removed + option ~magit-remote-set-if-missing~. 07ca042b6 + +- Support for bookmarks was rewritten from scratch. #3836, cd391a035 + +- The new options ~magit-prefix-use-buffer-arguments~ and + ~magit-direct-use-buffer-arguments~ replace the old option + ~magit-use-sticky-arguments~. The default "stickiness" of arguments + has changed. #3836, 0e67ca9eb + +- Like when moving through a log, moving through a list of cherries + now automatically updates the revision or blob buffer. #3836 + +- Added new option ~magit-worktree-read-directory-name-function~. #3820 + +- Basic optional support for ~libgit2~ was added, but because so few + functions are currently implemented using that library, opting in + currently has almost no effect. #3841 + +- ~git bisect~ is now run asynchronously. #3802 + +- ~magit-bisect~ now supports specifying alternate terms. The new + infixes and suffix related to this functionality are disabled by + default. + +- ~magit-branch-or-commit-at-point~ now falls back to an abbreviated + hash instead of something like "master~2", because the latter often + leads to undesirable behavior. fd5eb5b43 + +- ~magit-toggle-buffer-lock~ is now a suffix of both ~magit-diff~ and + ~magit-log~. c09993112 + +- When invoked with a prefix argument, then ~magit-clone~ now acts as a + prefix command. If the new option ~magit-clone-always-transient~ is + non-nil, then it always acts as a prefix command. #3846 + +- Clone commands now accept repository names and similar abbreviations + in addition to complete urls. The new options ~magit-clone-name-alist~ + and ~magit-clone-url-format~ control how the translation is done. #3846 + +- When called from ~magit-dispatch~, then ~magit-diff~ and ~magit-log~ no + longer set the file limit to the file visited in the current buffer. + ccc72469e + +- ~RET~ (~magit-diff-visit-file~) on a committed change now always visits + the respective commit. Previously it did that for all commits + except the ~HEAD~ commit. This made it impossible to visit the ~HEAD~ + commit using this or a related command and also was inconsistent. + + Likewise ~RET~ on an uncommitted removal now visits ~HEAD~, the last + commit that still had those lines. Previously it visited the file + in the working tree, making it difficult to blame the previous + version of modified lines. + + Now ~C-RET~ (~magit-diff-visit-worktree~) has to be used to visit the + file in the working tree for any commit or uncommitted removals. + Setting the new option ~magit-diff-visit-avoid-head-blob~ to a non-nil + value restores the old behavior of ~magit-diff-visit-file~. #3848 + +- ~magit-diff-visit-worktree~ now does a much better job at jumping to + the correct location in the file. c9e5425cd + +- Added new command ~magit-find-file-other-frame~. 9a69c74ca + +- Renamed command ~magit-diff-visit-file-worktree~ to + ~magit-diff-visit-worktree-file~. 4f739cd35 + +- Added new commands ~magit-diff-visit-file-other-frame~, + ~magit-diff-visit-worktree-file-other-window~, and + ~magit-diff-visit-worktree-file-other-frame~. 756d61911, 6704b3248 + +- Added new option ~magit-process-prompt-functions~. #3845 + +- ~magit-find-file~ is now available from ~magit-file-dispatch~. + 9c587d458 + +- ~magit-find-file~ and related commands learned to visit a file from + the worktree or index. #3860 + +- ~magit-find-file~ and related commands learned to go to the position + in the visited file that corresponds to the position in the + previously current buffer. #3860 + +- ~magit-diff-buffer-file~ learned to visit a commit instead of a range + when appropriate. #3860 + +- ~magit-show-commit~ and ~magit-diff-buffer-file~ learned to go to the + position in the diff that corresponds to the position in the + previously current file-visiting buffer. #3860 + +- Added new command ~magit-blob-visit-file~. When visiting a blob, then + it goes to the same location in the respective file in the working + tree. #3860 + +- ~magit-add-change-log-entry{,-other-window}~ learned to extract the + file name from blob-visiting buffers. + +- ~magit-tag-release~ now runs ~git~ asynchronously. #3855 + +- When invoked with two prefix arguments, then ~magit-mode-burry-buffer~ + now also kills all other Magit buffers associated with the current + repository. #3863 + +- ~magit-branch-or-commit-at-point~ was taught about Forge pull-requests. + 9447edd12 + +- When merging a branch that corresponds to a Forge pull-request, then + the commit message is modified to contain the pull-request number. + 15331d7c0 + +- For consistency ~magit-file-rename~ now also renames buffers that + visit untracked files. #3916 + +- Additional history simplification arguments were added to the log + transients. Because only a minority of users will use those, they + were put on levels that are not shown by default. 8f8a2f1cf + +- Added new commands ~magit-assume-unchanged, ~magit-no-assume-unchanged~, + ~magit-jump-to-skip-worktree~ and ~magit-jump-to-assume-unchanged~, and + section inserter ~magit-insert-assume-unchanged-files~. 2d0de8614 ff + +- Magit buffers are now compatible with ~whitespace-mode~ (and other + modes which use font-lock). #3840 + +- Added new command ~magit-status-here~ available from file-visiting + buffers at ~C-c M-g g~. This command tries to go to the position in + the status buffer that corresponds to the position in the current + file-visiting buffer. Setting ~magit-status-goto-file-position~ to + a non-nil value causes ~magit-status~ to behave the same way. #3930 + +- Replaced ~magit-repolist-column-dirty~ with ~magit-repolist-column-flag~ + which allows specifying arbitrary flags and predicates in custom order + using ~magit-repolist-column-flag-alist~. #3936 #3937 + +- The buffer that shows a stash is now updated automatically when + moving through a list of stashes if the user added the new + ~magit-status-maybe-update-stash-buffer~ and/or + ~magit-stashes-maybe-update-stash-buffer~ to + ~magit-section-movement-hook~. #3943 + +- Added new commands ~magit-log-matching-branches~ and + ~magit-log-matching-tags~. #3958, #3983 + +- Added new option ~magit-disable-line-numbers~. #3971 + +- Added new option ~magit-log-margin-show-committer-date~. 1b9995238 + +- Added new command ~magit-worktree-move~ to allow you to move an + existing worktree to a new directory. #3978 + +- Introduced two new faces to customize the appearance of commit messages: + ~magit-diff-revision-summary~ and ~magit-diff-revision-summary-highlight~. + #3988 + +- Commands under the ~magit-gitignore~ prefix now include directories + that contain only untracked files as completion candidates. #3985 + +- Added new command ~magit-toggle-verbose-refresh~. c63ec3920 + +- Added new function ~magit-disable-section-inserter~, which can be used + to disable a section only in the current repository. This mechanism + is useful for exceptionally large repositories. #4017 + +- Added new transient prefix command ~magit-status-jump~ and turned the + existing jumper commands into suffixes. 655950f40 + +- Added new option ~magit-copy-revision-abbreviated~. #4014 + +- Added new transient prefix command ~git-commit-insert-pseudo-header~ + and turned the existing inserter commands into suffixes. e88242679 + +- Added new command ~magit-push-notes-ref~. dff0bca6f + +- The ~--irreversible-delete~ diff argument is supported now, but isn't + available from the diff transients by default. To enable it use + "C-x l" in those transients. #4056 + +- Added new command ~magit-reset-keep~. 0ea8b0ef6 + +- Added new option ~magit-reshelve-since-committer-only~. #4101 + +- Added new command ~magit-commit-absorb~ as an alternative to + ~magit-commit-autofixup~. 9423edc0b + +- Added new option ~magit-status-use-buffer-arguments~. #4046 + +- Added new command ~magit-project-status~. #4173 + +- Added new variable ~magit-process-extreme-logging~ for debugging + purposes. #4217 + +- Taught Isearch and Swiper how to expand Magit sections when the + current match is inside a hidden section and how to close sections + again. #3999 + +- Added new command ~magit-commit-absorb-modules~. 10b4bec53 + +- Added new transient command ~magit-shortlog~. #4262 + +- Added new command ~magit-generate-changelog~. c5e118111 + +- The name of the main branch is no longer hard-coded to "master". + Now we use the value of ~init.defaultBranch~ if that is set and the + named branch exists. If not, then some other names that are + commonly used for the main branch are tried as a potential fallback. + c4494ac0b + +- Added new option ~magit-diff-extra-stat-arguments~. 1bd4fe26e + +- Added support for ~git-credential-manager-core~. #4318 + +- The name of the upstream remote is no longer hard-code to "origin". + See the doc-string of function ~magit-primary-remote~ to learn how to + customize this. f883b62fe + +This release also contains numerous other improvements. + +** Fixes since v2.90.0 + +- Bumped the minimal required version of ~git-commit~ to the correct + version. e9bd33758 + +- Dropped the new "v" prefix that we started to add to release tags + starting with the previous release in places where that prefix is + undesirable. f441cf6d7 + +- Staging and unstaging submodules while ~diff.submodule~'s value is ~log~ + broke shortly before the v2.90.0 release. #3654 + +- When another window is already displaying the file buffer, then + ~magit-display-file-buffer-other-window~ did additionally display + it in the current window. #3662 + +- It was undefined whether highlighting of word-granularity + differences or of whitespace-error had higher priority. #3671 + +- The Custom type definition of ~magit-diff-adjust-tab-width~ was + broken. #3671 + +- In the log-select buffers point was no longer placed on the same + commit as was at point in the buffer from which the command was + invoked. #3674 + +- ~magit-diff-type~ falsely concluded that a diff buffer showed + unstaged changes when diffing a range where the right side resolves + to the same commit as ~HEAD~. #3666 + +- ~magit-log-trace-definition-function~ defaulted to ~which-function~, + which isn't reliable because it used Imenu, which uses a cache but + by default never invalidates. Now we use ~magit-which-function~, a + replacement that never uses an outdated cache. + +- ~magit-log-trace-definition~ didn't account for Git treating "-" + differently from e.g. "_", leading to false-positives like + "foo-suffix" being considered a match for "foo". + +- ~magit-log-trace-definition~ didn't do the escaping that Git expects + for function names with colons. #4051 + +- A regression in ~magit-log-move-to-parent~ prevented it from doing its + job. #3682 + +- Since v2.11.0 ~magit-log-revision-headers-format~ lines in the log + output (shown via ~++header~) weren't displayed properly when + ~--graph~ was enabled. #4129 + +- ~magit-clone~ didn't run ~magit-credential-hook~. #3683 + +- ~magit-list-repositories~ failed if one of the repositories that it + tries to list is empty. #3686 + +- The summary element from ~git-commit-font-lock-keyword-1~ lost against + the elements of ~git-commit-elisp-text-mode-keywords~, causing the + summary line to lose its special appearance when a "string" or + `symbol' appears in it. + +- ~magit-split-branch-name~ did not take into account that remote names + can contain slashes. #3685 + +- ~magit-which-function~ now simply resets Imenu's cache and then calls + ~which-function~. The old approach that tried to outsmart Imenu was + broken. #3691 + +- ~magit-describe-section-briefly~ did not actually display a section + ident when called interactively, as the docstring claimed. Now it + displays the section ident, which is useful in + ~magit-status-initial-section~. + +- Section movement commands got confused by type change sections being + treated as a special kind of hunk. #3698 + +- ~x-strech-cursor~ was set globally. #3707 + +- ~magit-blame-echo~ was broken. #3720 + +- ~magit-rev-name~ sometimes returned ~nil~ even when it could return a + name and it returned e.g. "origin/HEAD" instead of "origin/master". + 2042957a7, d500c442 + +- ~magit-insert-*-branch-header~ did not account for empty commit + messages. #3719 + +- ~magit--painted-branch-at-point~ failed in some cases, causing an + error. e7e612e3c + +- In newer Git versions the rebase list shown in the status buffer + could contain duplicated entries for the current commit. 1e1cd0e28 + +- When deleting a remote branch failed, the logic for deciding whether + to prune the local remote-tracking ref was too loose, leading to + false positives. #3650 + +- ~magit-ediff-stage~ offered untracked files as completion candidates + even though it cannot handle those. 8dd612dfb + +- Fix handling of passphrase prompts which are output with leading + carriage return, such as those produced by Openssh 8.0. #3843 + +- The default value for ~magit-view-git-manual-method~ was treated as + invalid. #3873 + +- Unlike other ~magit-*-files~ functions, ~magit-ignored-files~ returned + paths relative to the current directory instead of the top-level of + the repository. 6d3f12d58 + +- Staging a hunk applied the change to the wrong location in rare + cases where repetitive diff context prevented ~git apply~ from + finding the correct location. #3924 + +- Staging a hunk with no context now aborts, as staging a region + within such a hunk already did, to avoid unintended and confusing + results. #3924 + +- Adjusted many faces so that they continue to extend to the edge of + the window as intended. This was made necessary by a backward + incompatible change in Emacs 27. #3986 + +- The ability to stage regions from within intent-to-add files broke + for users running Git v2.19.0 or later due to a change in the + default display of these files in the diff output. #4026 + +- ~magit-stash-branch-here~ applied the stash without checking out the + new branch. d3cee7f8c + +- A regression in v2.90.0 led to ~magit-wip-mode~ committing to "<wip + prefix>/refs/heads/HEAD" rather than "<wip prefix>/HEAD" when on a + detached head. + +- Modifying a file, marking it with a "skip-worktree" or "assume + unchanged" bit, and then modifying it again triggered a failure in + ~magit-wip-commit-worktree~. #4037 + +- ~magit-abbrev-length~ returned an incorrect result when + ~core.abbrev~ was explicitly set to "auto". + +- Calling ~magit-status~ in a repository with a corrupt Git + configuration didn't propagate the error and instead preseted the + directory as though it was uninitialized. #4337 + +- When the status buffer is not shown in any buffer but point is on + a hunk, and editing and saving the respective file causes, that + hunk to disappear or change, then Magit ended up changing point + in the file-visiting buffer. #4196 + +- Various bug fixes to + ~magit-branch-delete~ (3e73ff19d), + ~magit--{upstream,pushbranch}-suffix-predicate~ (0ce7fbbc2), + ~magit-patch-create~ (470272a0f), + ~magit--cherry-spinoff-read-args~ (add276810), + ~magit-refs--insert-cherry-commits~ (3b37e6dc1), + ~magit--{pushbranch,upstream}-suffix-predicate~ (cef3b1217), + ~magit-diff-insert-file-section~ (01cf0c165), + ~magit-insert-unpushed-to-upstream-or-recent~ (02445d6e3), + ~magit-ref-equal~ (46862d9d2), + ~magit-ref-fullname~ (66b85daea), + ~magit-insert-unpulled-from-upstream~ (0363e9bac), + ~magit-git-version~ (0abc761f5), + ~auto-revert-buffers--buffer-list-filter~ (713bd64bf), + ~magit-insert-revision-gravatar~ (1f7e84c26), + ~magit-process-unset-mode-line~ (457a685e5), + ~magit-ido-completing-read~ (f52ab7977), + ~magit-file-untrack~ (0984d77fb), + ~magit-ref-p~ (8b33bc7c7), + ~git-commit-setup~ (675b75ded), + ~magit-{,no-}skip-worktree~ (34d6ac27d), + ~magit-fetch-all~ (904bb82ca), + ~magit-branch-configure~ (7246bf291), + ~magit--maybe-update-blob-buffer~ (1d57893a6), + ~magit-...-maybe-update-...-buffer~ (8d3459b55), + ~magit-read-gpg-secret-key~ (9d68a455d), + ~magit-gitignore-in-subdir~ (8c4e8ed74), + ~magit-save-repository-buffers~ (82136796f), + ~magit-stash-drop~ (a4972766a), + ~magit-ignore-submodules-p~ (a7699f868), + ~magit-log-propertize-keywords~ (ac1ee3df5), + and then I stopped adding to this list. + +This release also contains numerous other bug fixes, typo fixes, and +documentation fixes. + +* Authors + + 1001 Jonas Bernoulli + 120 Kyle Meyer + 10 Basil L. Contovounesios + 9 Noam Postavsky + 5 Vladimir Panteleev + 4 Damien Cassou + 4 Daniel Martín + 4 Sam Cedarbaum + 4 Štěpán Němec + 3 Adam Porter + 3 Benjamin Motz + 3 Kévin Le Gouguec + 2 Alban Gruin + 2 Allen Li + 2 Bastian Beischer + 2 Clément Pit-Claudel + 2 Daniel Fleischer + 2 Evan Torrie + 2 Ingmar Sittl + 2 Leo Vivier + 2 Martin Polden + 2 Naoya Yamashita + 2 Phil Sainty + 2 Philipp Stephani + 2 Radon Rosborough + 2 Ryan C. Thompson + 2 Szunti + 2 Tassilo Horn + 2 Thierry Volpiatto + 2 Troy Hinckley + 2 zilongshanren + 1 Adam Kruszewski + 1 Adam Spiers + 1 Alexander Miller + 1 Andrew Eggenberger + 1 Andrew Psaltis + 1 Andrew Schwartzmeyer + 1 Arnau Roig Ninerola + 1 Ashlynn Anderson + 1 Ben North + 1 Brian Leung + 1 Dan Davison + 1 Danny Zhu + 1 David Ellison + 1 Dominique Quatravaux + 1 Eric + 1 Fritz Grabo + 1 Gregory Heytings + 1 Hussein Ait-Lahcen + 1 Ian Milligan + 1 Ilya Grigoriev + 1 Johann Klähn + 1 Johannes Altmanninger + 1 Jonas Galvão Xavier + 1 Jonathan Arnett + 1 Jonathan del Strother + 1 Jordan Galby + 1 Josh Elsasser + 1 Justin Guenther + 1 Keshav Kini + 1 Kevin Brubeck Unhammer + 1 Kevin J. Foley + 1 Knut Olav Bøhmer + 1 Magnus Malm + 1 Mario Rodas + 1 Martin Joerg + 1 Matthew Kraai + 1 Maxim Cournoyer + 1 Michael Griffiths + 1 Ola x Nilsson + 1 Pancho Horrillo + 1 Philipp Fehre + 1 Pritam Baral + 1 Roey Darwish Dror + 1 Sean Whitton + 1 Simon Pintarelli + 1 Steve Purcell + 1 Thomas Fini Hansen + 1 Topi Miettinen + 1 Tsuyoshi Kitamoto + 1 Vitaly Ostashov + 1 Vladimir Sedach + 1 Wojciech Siewierski + 1 Yann Herklotz + 1 Ynilu + 1 Zhu Zihao + 1 zakora diff --git a/docs/RelNotes/3.1.0.org b/docs/RelNotes/3.1.0.org new file mode 100644 index 0000000..48b408b --- /dev/null +++ b/docs/RelNotes/3.1.0.org @@ -0,0 +1,73 @@ +* It's Magit! A Git Porcelain inside Emacs + +Magit is a text-based Git user interface that puts an unmatched focus +on streamlining workflows. Commands are invoked using short mnemonic +key sequences that take the cursor’s position in the highly actionable +interface into account to provide context-sensitive behavior. + +With Magit you can do nearly everything that you can do when using Git +on the command-line, but at greater speed and while taking advantage +of advanced features that previously seemed too daunting to use on a +daily basis. Many users will find that by using Magit they can become +more effective Git user. + +For more information about Magit, see https://magit.vc. + +* Magit v3.1.0 Release Notes + +Released 1st July 2021 by Jonas Bernoulli. + +I am pleased to announce the release of Magit version 3.1.0, +representing 31 commits by 4 contributors over one month. + +Also see https://emacsair.me/2021/07/01/magit-3.1. + +** Breaking changes + +- The function signature of ~magit-completing-read-multiple~ was not + compatible with that of ~completing-read-multiple~, so we deprecate + it. Use the improved ~magit-completing-read-multiple*~ instead. + #4420 + +- The description of ~magit-merge-into~ in the merge menu was changed + to "dissolve" (from "merge into"). In the future we are going to + change the key binding from "i" to "d" as well, to keep it mnemonic. + We don't make both changes at once in the hope that this makes the + transition easier for existing users. 4c096921f + +** Changes since v3.0.0 + +- Adjusted to changes to Eieio in Emacs 28. a3626277c, 54a0019f3 + +- Added new command ~magit-log-move-to-revision~. #4418 + +- ~A m~ is now also bound to ~magit-merge-squash~. Despite the name it + fits better there. 51152fdec + +** Fixes since v3.0.0 + +- Fixed ~magit-emacs-Q-command~ and ~make build~ for ELPA users. + f50c3aa56 + +- Fixed reading choice in ~magit-process-git-credential-manager-core~. + #4396 + +- ~magit-blame~ didn't account for quoted file names when parsing + output from ~git blame~. #4400 + +- A regression in v3.0.0 prevented ~magit-bisect-run~ from executing + ~git bisect run~ unless ~magit-bisect-start~ was called beforehand. + f592e367d + +- ~magit-log-select-quit~ failed to call ~magit-log-select-quit-function~. + #4423 + +- The entry for pull-requests in ~magit-list-refs-namespaces~ did not + match the ref names used by Forge for that purpose. 4c3373f9a + +* Authors + + 24 Jonas Bernoulli + 3 Kyle Meyer + 1 Siavash Askari Nasr + 1 TEC diff --git a/docs/RelNotes/3.2.0.org b/docs/RelNotes/3.2.0.org new file mode 100644 index 0000000..198c4b7 --- /dev/null +++ b/docs/RelNotes/3.2.0.org @@ -0,0 +1,100 @@ +* It's Magit! A Git Porcelain inside Emacs + +Magit is a text-based Git user interface that puts an unmatched focus +on streamlining workflows. Commands are invoked using short mnemonic +key sequences that take the cursor’s position in the highly actionable +interface into account to provide context-sensitive behavior. + +With Magit you can do nearly everything that you can do when using Git +on the command-line, but at greater speed and while taking advantage +of advanced features that previously seemed too daunting to use on a +daily basis. Many users will find that by using Magit they can become +more effective Git user. + +For more information about Magit, see https://magit.vc. + +* Magit v3.2.0 Release Notes + +Released 1st August 2021 by Jonas Bernoulli. + +I am pleased to announce the release of Magit version 3.2.0, +representing 84 commits by 5 contributors over one month. + +Also see https://emacsair.me/2021/08/01/magit-3.2. + +** Changes since v3.1.0 + +- The default of ~magit-bury-buffer-function~ was changed to + ~magit-mode-quit-window~. #4412 + +- Added new option ~magit-remote-git-executable~ alongside the existing + ~magit-git-executable~. Previously the latter was used for local and + remote ~git~ processes alike, now the former specifies the executable + that is used when Tramp is involved. Using a single variable was + problematic because we had to use an absolute path on Windows for + performance reasons but that path was almost certainly wrong when + using Tramp. #4447 + +- We now use an absolute path for ~magit-git-executable~ on macOS as + well because at least for some macOS users using just the name of + the executable performs horribly. #4447 + +- The section showing openpgp output in the revision buffer is now + collapsible and starts out collapsed for good signatures or when the + certificate is missing. This hopefully makes it more appealing to + enable ~--show-signature~ (and maybe even encourages some authors to + start signing commits). 1e08ac6fd + +- A mode change or rename can now be applied (un-/staged etc.) without + also applying edits to the same file and vice-versa. #4439 + +- Many commands that act on (or default to) the commit at point now + pick that up in a few more places; when the string at point is a + known hash, on a blame chunk, and on a hunk or file inside a log. + d8d3e4813, 40ad7a25c, 402112c6e + +- The default ~magit-pop-revision-stack-format~ now include the + committer date. 1f85297a3 + +- The default ~magit-log-revision-headers-format~ now includes notes. + 33bd79fd45 + +- Added new options ~magit-repolist-sort-key~ + and ~magit-submodule-list-sort-key~. #4409 + +- Added new function ~magit-repolist-column-flags~. 35067f512 + +- Added new option ~magit-ediff-use-indirect-buffers~. #4395 + +- Added new function ~magit-process-git~. fd5cf6173 + +- Added new function ~magit-git-config-p~. 60f82a323 + +** Fixes since v3.1.0 + +- In the normal case ~magit-name-tag~ failed to return the tag. + 14170b4ea + +- ~magit-completing-read-multiple*~ tried to use a variable that is + unbound if ~helm~ isn't loaded. 29b0cb489 + +- Some push commands couldn't deal with remote and branch names that + contain the percent character. #4428 + +- ~magit-git-shortlog~ got stuck in the repository in which it was first + invoked. 384610edb + +- ~magit-commit-augment~ did not support ~--allow-empty~. bbdfd4287 + +- Squash commands didn't fully take ~--author~ into account. 02d2917c6 + +- ~magit-completing-read-multiple*~ conflicted with the ~consult~ package. + #4437 + +* Authors + + 73 Jonas Bernoulli + 6 Kyle Meyer + 2 Boruch Baum + 1 Philippe Cavalaria + 1 Toon Claes diff --git a/docs/RelNotes/3.2.1.org b/docs/RelNotes/3.2.1.org new file mode 100644 index 0000000..3e853ea --- /dev/null +++ b/docs/RelNotes/3.2.1.org @@ -0,0 +1,27 @@ +* It's Magit! A Git Porcelain inside Emacs + +Magit is a text-based Git user interface that puts an unmatched focus +on streamlining workflows. Commands are invoked using short mnemonic +key sequences that take the cursor’s position in the highly actionable +interface into account to provide context-sensitive behavior. + +With Magit you can do nearly everything that you can do when using Git +on the command-line, but at greater speed and while taking advantage +of advanced features that previously seemed too daunting to use on a +daily basis. Many users will find that by using Magit they can become +more effective Git user. + +For more information about Magit, see https://magit.vc. + +* Magit v3.2.1 Release Notes + +Released 6st August 2021 by Jonas Bernoulli. + +I am pleased to announce the release of Magit version 3.2.1. + +This is the first release that is available from NonGNU Elpa. It is +identical to version 3.2.0 except for dependency metadata, which had +to be changed so that this package could be released on NonGNU Elpa. + +Also see https://emacsair.me/2021/08/06/nongnu-elpa +and https://elpa.nongnu.org/nongnu/magit.html. diff --git a/docs/RelNotes/3.3.0.org b/docs/RelNotes/3.3.0.org new file mode 100644 index 0000000..be74f19 --- /dev/null +++ b/docs/RelNotes/3.3.0.org @@ -0,0 +1,152 @@ +* It's Magit! A Git Porcelain inside Emacs + +Magit is a text-based Git user interface that puts an unmatched focus +on streamlining workflows. Commands are invoked using short mnemonic +key sequences that take the cursor’s position in the highly actionable +interface into account to provide context-sensitive behavior. + +With Magit you can do nearly everything that you can do when using Git +on the command-line, but at greater speed and while taking advantage +of advanced features that previously seemed too daunting to use on a +daily basis. Many users will find that by using Magit they can become +more effective Git user. + +For more information about Magit, see https://magit.vc. + +* Magit v3.3.0 Release Notes + +Released 4th October 2021 by Jonas Bernoulli. + +I am pleased to announce the release of Magit version 3.3.0, +representing 88 commits by 6 contributors over two month. + +Also see https://emacsair.me/2021/10/04/magit-3.3. + +** Breaking changes + +- The last remaining alphabetic keys (both lower- and uppercase) are + now bound in ~magit-mode-map~. ~H~ to ~magit-describe-section~, ~j~ to the + new ~magit-status-quick~ (or ~magit-status-jump~ in status buffers), ~J~ + to the new ~magit-display-repository-buffer~, ~Q~ to ~magit-git-command~ + and ~Z~ to ~magit-worktree~, and once Forge is loaded, then ~N~ to + ~forge-dispatch~. (~Z~ used to be bound to ~magit-stash~, which now is + only available on ~z~.) #4259, 9bec1c54a, e401bd4d3 + +- ~I~ is now bound to ~magit-init~ instead of ~magit-gitignore~, which + continues to be available on ~i~. Users of the ~magit-imerge~ package + (which previously bound ~i~) should consult its library header for a + suggestion on how to resolve the resulting conflict. b54b537db + +** Changes since v3.2.0 + +- No longer automatically add ~--full-history~ when showing a log for a + single file that isn't being tracked anymore. #4381 + +- ~magit-stash-both~ now asks before discarding merge state. #4345 + +- Several infix arguments, which previously could only be disabled + or have a numeric value, can now also be enabled without having + an explicit numeric value. #4379 + +- Added ~-Xignore-space-change~ and ~-Xignore-all-space~ to ~magit-merge~. + Like most newly added expert arguments they have to be explicitly + [[https://magit.vc/manual/transient/Enabling-and-Disabling-Suffixes.html][revealed]]. #4387 + +- Added new command ~magit-status-quick~, which shows the status buffer + but avoids refreshing it for performance reasons. #4259 + +- Added new commands ~magit-display-repository-buffer~ (bound to ~j~ in + Magit buffers) and ~magit-switch-to-repository-buffer~ (bound to ~J~) + and variants for switching to any existing Magit buffer belonging + to the current repository. #4259 + +- Added new command ~magit-dired-am-apply-patches~ for use in Dired. + #4094. + +- Rearranged ~magit-patch~ and added a binding for ~magit-am~. 8ec3a1a21, + 8cadf302b + +- Added new command ~magit-help~ (bound to ~h~ in ~magit-dispatch~), which + simply shows Magit's Info manual. 5bba62629 + +- When listing entries for Imenu, then remove entry counts from group + titles for the benefit of third-party packages that need stable + titles. #4477 + +- Include Forge's ~pullreq~ and ~issue~ sections when listing entries for + Imenu. f4016f734 + +- Bound ~imenu~ in the ~magit-status-jump~ prefix. 678df30c3 + +- Added new transient prefix command ~magit-bundle~, which provides + support for ~git bundle~. #4392 + +- When minibuffer completion allows for a branch or a commit to be + selected and the former is preferred and thus offered as default + then, if possible, offer the commit at point as the first choice + initially accessible with ~next-history-element~. #4291 + +- Bound ~magit-refs-set-show-commit-count~ in the ~magit-show-refs~ + prefix. 2fe42f63d + +- Added new option ~magit-commit-diff-inhibit-same-window~. #4132 + +- Added support for invoking Smerge's "keep" commands when point is on + a hunk in a Magit buffer. They can be invoked using the same key + bindings as in file-visiting buffers or ~RET~, ~u~, ~b~ and ~l~. #4458 + +- Added new command ~magit-remote-unshallow~. #4480 + +- Added new option ~git-commit-use-local-message-ring~. #4503 + +** Fixes since v3.2.0 + +- Make ~magit-branch-remote-head~ and ~magit-branch-current~ fall back + to ~:inverse-video~ when the ~:box~ attribute isn't support, i.e. in + a terminal. If this change does not have any effect for you then + your theme probably changes these faces and should stop doing so. + #4206 + +- In some cases refreshing a buffer caused the cursor to jump to a + different position. #4148 + +- ~magit-convert-filename-for-git~ did not expand absolute filenames, + which is necessary because Git does not understand ~~/~. de1dc8e74 + +- ~magit-rebase~ did not enable ~--autostash~ by default but the + documentation says it does. 421be65a3 + +- ~magit-clone-read-repository~ did not convert filenames before passing + them to Git. 4aa7d2928 + +- Due to a regression in v2.90.0, ~magit-wip-log~ and + ~magit-wip-log-current~ failed to extract the previous tips of the + wip refs from the reflog (which is relevant when + ~~magit-wip-merge-branch~ is nil). c327824b0 + +- An old attempt to avoid needlessly updating section highlighting + did not actually succeed. #3976 + +- An error occurred when first showing a status buffer and + ~which-function-mode~ is enabled because that caused Imenu to collect + items at a time when that is not possible yet. #4481 + +- A change in Git v2.32.0 made it necessary to explicitly filter out + directories when committing to wip worktree refs. #4499 + +- Fixed appearance of Gravatar images by forcing their size instead + relying the service to return the promised size as advertised. + 8771401d4 + +- ~git-commit-setup~ enabled the major-mode after setting local + variables, which caused non-permanent variables to be reset. + ece2cb84d + +* Authors + + 76 Jonas Bernoulli + 8 Kyle Meyer + 1 Daniel Nagy + 1 Franklin Delehelle + 1 Jonathon McKitrick + 1 Lin Sun diff --git a/docs/RelNotes/3.4.0.org b/docs/RelNotes/3.4.0.org new file mode 100644 index 0000000..ad3d6c4 --- /dev/null +++ b/docs/RelNotes/3.4.0.org @@ -0,0 +1,33 @@ +* Magit v3.4.0 Release Notes (unreleased) +** Breaking changes +** Changes since v3.3.0 + +- Added new function ~git-commit-turn-on-orglink~ intended for use in + ~git-commit-setup-hook~. + +- Some repository and submodule list columns got a bit fancier. + +- Refreshing a repository or submodule list buffer now restores the + previous position. + +- Added new face ~git-rebase-action~ to allow customization of the face + used for the action words in git-rebase-todo files. + +** Fixes since v3.3.0 + +- Automatic saving of file-visiting buffers was broken inside remote + repositories that are accessed using Tramp. #4292 + +- Worktree commands and listing worktrees in the status buffer were + broken inside remote repositories that are accessed using Tramp. + #4326 + +- Due to a regression in v3.3.0 setting the mark did not highlight the + current and only selected section until a second section is selected. + +- Fixed calculation of gravatar image size. + +- The helper function ~magit-current-blame-chunk~ passed the directory + visited by a Dired buffer to ~git blame~, leading to some commands + (e.g., ~magit-checkout~) erroring when called from a Dired buffer. + #4560 |
