| Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
* 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 "=".
|
|
|
|
|
|
|
|
|
|
'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.
|
|
|
|
|
|
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.
|
|
* 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.
|
|
|
|
|
|
Re #3134.
|
|
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.
|
|
|
|
* 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.
|
|
Closes #2850 tighter.
|
|
Closes #2850.
|
|
|
|
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.
|
|
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.
|
|
|
|
|
|
Closes #2833.
|
|
|
|
New face `magit-mode-line-process' increases the visibility of the
running process when Git is run for side-effects.
|
|
|
|
|
|
|
|
|
|
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.
|
|
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.
|
|
Closes #2857.
|
|
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
`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.
|
|
`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
|
|
|
|
Closes #2949.
|
|
Closes #2949.
|
|
Closes #2906.
|
|
Closes #3248.
|
|
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.
|
|
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.
|