aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonas Bernoulli <jonas@bernoul.li>2015-04-01 22:08:00 +0200
committerJonas Bernoulli <jonas@bernoul.li>2015-04-01 22:08:00 +0200
commitaa72a592b27edcda326255c4310cc4b60f5bbd4e (patch)
tree53de70882e680472847126d6307e124007509b3a
parent48bf793c9fc38d4ddf77948c2f6a5e8f36631b87 (diff)
release version 1.4.01.4.0
-rw-r--r--Documentation/RelNotes/1.4.0.txt234
-rw-r--r--magit.el36
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
diff --git a/magit.el b/magit.el
index d3d09cd..9b788c0 100644
--- a/magit.el
+++ b/magit.el
@@ -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)