diff options
| author | Jonas Bernoulli <jonas@bernoul.li> | 2015-04-01 22:08:00 +0200 |
|---|---|---|
| committer | Jonas Bernoulli <jonas@bernoul.li> | 2015-04-01 22:08:00 +0200 |
| commit | aa72a592b27edcda326255c4310cc4b60f5bbd4e (patch) | |
| tree | 53de70882e680472847126d6307e124007509b3a | |
| parent | 48bf793c9fc38d4ddf77948c2f6a5e8f36631b87 (diff) | |
release version 1.4.01.4.0
| -rw-r--r-- | Documentation/RelNotes/1.4.0.txt | 234 | ||||
| -rw-r--r-- | magit.el | 36 |
2 files changed, 268 insertions, 2 deletions
diff --git a/Documentation/RelNotes/1.4.0.txt b/Documentation/RelNotes/1.4.0.txt new file mode 100644 index 0000000..f571fb2 --- /dev/null +++ b/Documentation/RelNotes/1.4.0.txt @@ -0,0 +1,234 @@ +It's Magit! A Git Porcelain inside Emacs +========================================= + +Magit is an interface to the version control system Git, implemented +as an Emacs package. For more information see http://magit.vc. + +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 4400 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 +to branches. In hindsight I should have released the master branch +as 1.3.0 at that time, despite all the known issues 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. + + * 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 @@ -7779,9 +7779,41 @@ init file: (defvar magit-last-seen-setup-instructions "0") (defun magit-maybe-show-setup-instructions () - (when (version< magit-last-seen-setup-instructions "0") + (when (version< magit-last-seen-setup-instructions "1.4.0") (require 'warnings) - (display-warning :warning "for magit-0"))) + (display-warning :warning "for magit-1.4.0 + +You have just updated to version 1.4.0 of Magit, and have to +make a choice. + +Before running Git, Magit by default reverts all unmodified +buffers which visit files tracked in the current repository. +This can potentially lead to dataloss so you might want to +disable this by adding the following line to your init file: + + (setq magit-auto-revert-mode nil) + +The risk is not as high as it might seem. If snapshots on Melpa +and Melpa-Stable had this enabled for a long time, so if you did +not experience any dataloss in the past, then you should probably +keep this enabled. + +Keeping this mode enabled is only problematic if you, for +example, use `git reset --hard REV' or `magit-reset-head-hard', +and expect Emacs to preserve the old state of some file in a +buffer. If you turn of this mode then file-visiting buffers and +Magit buffer will no longer by in sync, which can be confusing +and complicates many operations. Also note that it is possible +to undo a buffer revert using `C-x u' (`undo'). + +Then you also have to add the following line to your init file +to prevent this message from being shown again when you restart +Emacs: + + (setq magit-last-seen-setup-instructions \"1.4.0\") + +You might also want to read the release notes: +https://raw.githubusercontent.com/magit/magit/next/Documentation/RelNotes/1.4.0.txt"))) (add-hook 'after-init-hook #'magit-maybe-show-setup-instructions) |
