aboutsummaryrefslogtreecommitdiff
path: root/Documentation/RelNotes
AgeCommit message (Collapse)Author
2018-03-07Propertize [keywords] in git-rebase-mode buffersJonas Bernoulli
2018-03-07Propertize [keywords] shown in header of status bufferJonas Bernoulli
2018-03-02magit-commit-reshelve, magit-reshelve-since: New commandsJonas Bernoulli
2018-02-15refs: Change look and massive refactorJonas Bernoulli
* Drop support configuring the look using %-spec forms. I don't thing this was actually used by anyone and if it was, then likely to insert the hash, which we could implement differently. * Instead add options `magit-refs-primary-column-width' and `magit-refs-focus-column-width', which make customization easier. But overall they are less flexible. * Change how the commits are displayed that a branch is ahead and behind its upstream. But these counts in between the two branches and use ">" and "<" to indicate which branch has additional commits that the other has not (they both can have additional commits). Attach the count to the name of the branch that has the additional commits. This also saves space. * Likewise use "<N" in the first column instead of just "N" if a the branch in that row has additional commits compared to the focused commit. The "@" or "*" indicating the focused branch, making it easier to understand the comparison: "* <N BRANCH". If the branch does not have additional commits, but the focused branch does, then display "M>". If neither has additional commits then "=".
2018-02-12magit-branch-{shelve,unshelve}: new commandsJonas Bernoulli
2018-02-05relnotes: fix typosKyle Meyer
2018-02-02magit-cherry-{harvest,donate,spinout,spinoff}: New commandsJonas Bernoulli
2018-02-02magit-merge-{absorb,into}: New commandsJonas Bernoulli
2018-01-30magit-worktree-delete: check for worktree directory before deletingKyle Meyer
'git worktree list' (and thus magit-list-worktrees) may return worktrees for which a directory no longer exists (e.g., if the directory was deleted outside of magit). Avoid the delete-directory call in this case because it leads to an error and because the "git worktree prune" call that follows is sufficient cleanup.
2018-01-29magit-refs-filter-alist: New optionJonas Bernoulli
2018-01-26Add many arguments to the module popupJonas Bernoulli
2018-01-26Make module commands selection-awareJonas Bernoulli
Act on the selection or the current module, if any, and fallback to reading a single module instead of acting on all modules without the option to act only on a subset. To act on all suitable modules a prefix argument has to be used now. Also improve the documentation, add comments explaining differences to Git, and show the used git commands in the popup.
2018-01-26Rename module commands to deal with ambiguitiesJonas Bernoulli
* Rename `magit-submodule-init' to `magit-submodule-register'. Instead of "i" bind "r" in the popup. Git isn't consistent about what the term "initialize" means in the context of modules, so avoid using it. The command "git submodule init" does NOT "initialize" a module, it "registers" the module by recording its url in the super-projects $GIT_DIR/config. This allows editing that url before actually "initializing" it using "git submodule update", in which case that command does not actually "update" but "make available for the first time". * Rename `magit-submodule-setup' to `magit-submodule-populate'. Instead of "b" bind "p" in the popup. Git doesn't use the term "setup", I came up with that. It is such a generic term that it could mean basically anything. "Populate" is much more obvious. * Likewise change `magit--insert-modules-overview' to say that a module is "unpopulated" instead of saying it is "uninitialized". * Rename `magit-submodule-deinit' to `magit-submodule-depopulate'. Given a sub-command "init" and another named "deinit", one would expect the latter to undo the effect of the former. But then one would be wrong. "init" only sets variables, while "deinit" only removes the working directory by replacing it with an empty directory. "deinit" is the opposite of "update --init", or as we call these actions "unpopulate" is the opposite of "populate". * Rename `magit-submodule-sync' to `magit-submodule-synchronize'. Since none of the names of related commands contain an abbreviation it is nice if this one does not do so either. * Display the actions in a single column and change the order a bit.
2018-01-20Improve section visibility release notesJonas Bernoulli
2018-01-20Cache visibility for all sections by defaultJonas Bernoulli
2018-01-16magit-remote-prune-refspecs: new commandJonas Bernoulli
Re #3134.
2018-01-15Preserve visibility cache when killing buffersJonas Bernoulli
The section visibility cache is stored in a buffer-local value. For `magit-status-mode' and `magit-refs-mode' preserve that value using a repository-local value when killing the buffer and restore the buffer-local value when recreating the buffer. Other modes are not supported because they contain no sections that benefit from the visibility cache and/or because it is possible for multiple buffers with that mode to exist per repository.
2018-01-15magit-section-cache-visibility-types: add unstaged and stagedJonas Bernoulli
2018-01-15Generalize section visibility cacheJonas Bernoulli
* Cache whether a section is hidden or expanded. Previously it was only possible to cache that a section is hidden. The only use-case was to hide a re-appearing section even though the default for that section is to expand it initially. * Allow caching the visibility state of sections of any type. The new option `magit-section-cache-visibility-types' controls for which sections the state is remembered. As before, only the section type controls whether the cache is used, while (cons TYPE VALUE) is used as the key when doing so.
2018-01-14Cleanup push-target setup after renaming or deleting branchesJonas Bernoulli
Closes #2850 tighter.
2018-01-09magit-remote-{rename,remove}: cleanup push-remote variablesJonas Bernoulli
Closes #2850.
2018-01-08Documentation for phil-s/mode-line-process-errorPhil Sainty
2017-12-14refs: Hide the remote prefix from branches in remote-specific listsJonas Bernoulli
This is done to preserve some space. While alignment occasionally breaks for local branches, it usually broke for many remote branches. The new option `magit-refs-show-remote-prefix' can be used to revert this change.
2017-12-09In diffs, optionally use tab-width configured for resp. filesJonas Bernoulli
Teach `magit-diff-paint-tab' to use the value extracted from the file-visiting buffer, or set by `hack-local-variables' if no such buffer already exists. Add a new option `magit-diff-adjust-tab-width' to let users set how hard we should try to determine the appropriate value, because doing so can be expensive. Closes #2929.
2017-12-09Touch up release notesKyle Meyer
2017-12-09relnotes: fix pastoJonas Bernoulli
2017-12-09magit-diff-visit-file-other-window: new commandJonas Bernoulli
Closes #2833.
2017-12-08Ignore hidden whitespace changes when un-/staging at file levelJonas Bernoulli
2017-12-08Use a custom face for the process status indicator in the mode linePhil Sainty
New face `magit-mode-line-process' increases the visibility of the running process when Git is run for side-effects.
2017-12-08magit-branch-maybe-delete-pr-remote: new functionJonas Bernoulli
2017-12-08magit-{branch,checkout}-pull-request: new commandsJonas Bernoulli
2017-12-08magit-browse-pull-request: new commandJonas Bernoulli
2017-12-01magit-log-buffer-file: also from Dired buffersJonas Bernoulli
2017-11-21magit-notes-popup: display relevant variablesJonas Bernoulli
Show the global values in addition to the local values. Remove the old commands that were used to set these variables with new commands that are consistent with the respective commands used in other popup. Closes #2857.
2017-11-20Fix encoding of data and args for git subprocess on w32Noam Postavsky
On windows-nt systems, the arguments to subprocesses must be encoded in the current code-page. But Windows git requires UTF-8 encoded input. The contradictory requirements mean we can't just set default-process-coding-system to the right thing. Therefore, explicitly encode the arguments according to `w32-ansi-code-page', and likewise encode input sent to git as `utf-8-unix'. See #3250.
2017-11-17magit-show-commit: also show notes specified by notes.displayRefJonas Bernoulli
Closes #2857.
2017-11-16Touch up release notesKyle Meyer
2017-11-15Combine related refs when displaying them in logsJonas Bernoulli
For example, when the push-target of a local branch BRANCH is REMOTE/BRANCH, then display REMOTE/BRANCH [green][blue] instead of BRANCH REMOTE/BRANCH [blue] [green------] That does not only preserve space, it also informs the user that REMOTE/BRANCH is the push-target of BRANCH. If a remote branch is that remote's HEAD, then put a box around it, like it was already done for the local HEAD. Order the refs by type: bisect state, current branch, tags, local branches, remote branches, other refs Closes #2923.
2017-11-15magit-ref-namespaces: drop support for formatter functionsJonas Bernoulli
Magit didn't use this, I could not find a third-party package that uses it, and keeping it for backward compatibility would make upcoming refactoring harder. Package `magit-stgit', the only package which adds an entry, will have to be modified.
2017-11-15magit-ref-namespaces: demote to variableJonas Bernoulli
This should not have been defined as an user option because things break if it is modified to heavily. The only safe modification is to add a new namespace and that's something a package author should to using `add-to-list', not the user using the Custom interface.
2017-11-14Do not claim that it is an error when the user aborts a commitJonas Bernoulli
It is an implementation detail that Git considers this user action to be an error, which didn't keep users from getting confused by it or even reporting it as a bug. Closes #2932.
2017-11-09magit-stash-{drop,pop}: ask for confirmationJonas Bernoulli
`magit-stash-drop' did previously offer to act on another stash instead, which some users, including myself, found inconvenient. This was discussed in #2916. `magit-stash-pop' did pop the stash without requiring confirmation, which is unsafe because users might not expect "A" to do something different on a stash than elsewhere. This was discussed in #3220.
2017-11-09magit-dwim-selection: new optionJonas Bernoulli
`magit-invoke-popup-action' is adjusted to set `this-command' to the invoked command before calling instead of after doing so. Without this change `this-command's value would be wrong when consulting it in `magit-completing-read' when the command was invoked form a popup. Also deprecate the option `magit-no-confirm-default', which will be removed in v2.13.0. Re #2916. squash! magit-dwim-selection: new option
2017-11-09Extend completion, confirmation and selection documentationJonas Bernoulli
2017-11-09magit-revision-use-hash-sections: new optionJonas Bernoulli
Closes #2949.
2017-11-09Bind RET to magit-show-commit on commit messages in rev buffersJonas Bernoulli
Closes #2949.
2017-11-09magit-branch-checkout: new commandJonas Bernoulli
Closes #2906.
2017-11-09Show one-line regionsJonas Bernoulli
Closes #3248.
2017-11-02Support one-section magit-selectionsJonas Bernoulli
For a long time Magit 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, instead the underlying region was visualized as it is in non-magit buffers. The change users will notice first is that when they press C-SPC to set the beginning of the region/magit-selection on a section heading, then the magit-selection is visualized. Previously not even the region was shown after just pressing C-SPC, because the mark and the point were identical, so there was no non-empty region to visualize. For the time being most commands continue to behave exactly as before when there is a one-section selection: the act on the current section instead. While a one-section selection is a selection that contains nothing but the current section, this difference between the current section and a set consisting of only the current section is still relevant. It affects whether and how commands ask for confirmation and/or offer the user to act on something else instead. The reason I decided against supporting one-section selections in the past is that it is a bit unfortunate to visualize the selection and then the invoked command does not actually use it. But this is no different from a multi-section selection being visualized and then invoking a command that isn't magit-selection aware at all. Or from having the region visualized in any Emacs buffer and then invoking any command that doesn't behave differently when the region is active. Beginning with this commit only a handful of commands begin using a one-section selection. Most importantly, and this is what motivated this change, it is now possible to use `magit-branch-spinoff' after selecting just HEAD to create a new branch rewinding the previously current branch by a single commit. Previously it was only possible to rewind it to its upstream or to rewind it by at least two commits. The other commands that respect one-section selections are: - magit-am-apply-patches - magit-cherry-apply - magit-cherry-pick - magit-revert - magit-revert-no-commit - magit-stash-drop - magit-tag-delete The recently added commands `magit-previous-line' and `magit-next-line' now forgo moving on the first shift-selection move when point is on a section heading, not just when inside a hunk body. Closes #2920. Closes #3026.
2017-10-29magit-visit-ref: offer plain checkout in addition to resetJonas Bernoulli
When `create-branch' is a member of `magit-visit-ref-behavior' then "visiting" a remote branch causes the creation and checkout of a local branch by the same name. If the local branch already exists, then the user was offered to reset it to the current tip of the remote branch. Now the user can also choose to check it out as-is, and when both tips are the same commit, then the local branch is checked out without the user having to confirm that. Closes #3009.