| Age | Commit message (Collapse) | Author |
|
Fixes #2612.
|
|
|
|
|
|
|
|
See https://debbugs.gnu.org/cgi/bugreport.cgi?bug=21573#17
and https://github.com/magit/magit/issues/2295.
|
|
|
|
Until now TYPE argument had to be a symbol and was not evaluated.
In rare cases it would be useful to be able to evaluate TYPE to
dynamically set the section type, which can now be done by using
`(eval FORM)' as TYPE.
|
|
Windows users are more likely to interact with CRLF files, in which case
their diffs will have trailing CR characters. We keep them around, as
they are useful for staging (or otherwise applying) hunks without
mangling line endings but users are usually not interested in seeing a
diff full of trailing ^Ms, so we make them invisible.
This behavior can be disabled using the `magit-diff-hide-cr-characters'
variable.
|
|
This ensures that diffs coming from files with DOS (CRLF) line endings
don't lose CR bytes. This would case line endings to be mangled when
staging (or otherwise applying) hunks from such files.
Fixes issues #2401, #2403 and #2583.
|
|
Without the -r flag, ls-tree will return the top-level directory name
rather than the file name for an untracked file that is not in the
top-level directory. As a result, the diff of stash@{N}^3 is limited to
the directory rather than the untracked file. This leads to all other
files in directory being shown as deleted.
|
|
Add command that runs a three-buffer Ediff on a file's state in
stash@{N}, stash@{N}^1, and stash@{N}^2, ignoring any untracked changes
in stash@{N}^3.
For choosing a file, this only focuses on files in stash@{N}^..stash@{N}
based on the reasoning that if a file was renamed in the stash, it will
be present in the merge commit stash@{N}. Even if the file is renamed,
staged, and then deleted in the working tree before creating the stash,
it will be present in stash@{N}. Likewise, for a file to be considered
renamed in stash@{N}, it must have been staged and will be in
stash@{N}^.
Re: #2575
|
|
Replace cl-mapcan, which uses nconc, with -mapcat, which uses append, to
avoid modifying section children.
Fixes #2579.
|
|
Add 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 old implementation was a hack, which got extended when I got myself
into a situation where the current version failed. This time around it
was "(not checked out)" which was not handled properly. Upon inspecting
`show_submodule_summary' in `submodules.c' it turned out that "(revision
walker failed)" also wasn't handled, and why there sometimes is a
trailing colon and sometimes not (there's a colon when commits follow,
so the colon cases should be handled separately even though that leads
to a bit of duplication).
At present, when `diff.submodule' is `log', then these are the lines we
have to look for.
Submodule <module> contains untracked content
Submodule <module> contains modified content
Submodule <module> <from>...<to>:
Submodule <module> <from>..<to>:
Submodule <module> <from>..<to> (rewind):
Submodule <module> <from>..<to> (submodule deleted)
Submodule <module> <from>..<to> (not checked out)
Submodule <module> <from>..<to> (new submodule)
Submodule <module> <from>..<to> (commits not present)
Submodule <module> <from>..<to> (revision walker failed)
This commit also changes how some of these variants are represented in
Magit. Previously some information was lost in some cases.
When `diff.submodule' is `short', then there are no lines matching
"^Submodule" and `magit-diff-wash-diff' takes care of washing it.
|
|
|
|
If `magit-push-current-set-remote-if-missing's value
is `default', then offer to set `remote.pushDefault'
instead of `branch.NAME.pushRemote'.
|
|
Also add the functions `magit-read-remote-or-url', `magit-read-refspec',
and `magit-remote-list-refs', which are required by these new commands.
|
|
|
|
|
|
|
|
|
|
Memorize the values returned by `magit-git-string', `magit-git-str',
`magit-toplevel', and `magit-git-dir' for the duration of a refresh.
This cuts the calls to git in half.
|
|
The global minor-mode `magit-auto-revert-mode' is turned on by default,
which is something one usually shouldn't do for global minor-modes.
There already where some necessary kludges in place to make this work.
Now, 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 not
turned on (actually it is explicitly turned off). Previously there was
a similar kludge in use, which did this only for `magit-revert-buffers'.
Re #2559.
|
|
|
|
|
|
without also aborting the commit. This is useful when committing
unusually large changes. Quitting causes the diff buffer to be
partially unwashed.
Do not use `with-local-quit' because that would be propagated to
the `with-local-quit' in `server-execute', which would cause the
commit to be aborted instead of just the diffing.
|
|
Specifically, added notes pertaining to fixes from:
* cb386246fd51b48ca4e668e69c281540697a0b0a
"magit-cygwin-mount-points: check git --exec-path"
* 83a87a4d22bb5b099f481531b0cd44053b348477
"magit-run-git-with-input: restore logging and hook"
|
|
|
|
|
|
|
|
|
|
Because file notifications may arrive with a delay, this option now
defaults to `t' even when notifications can be used,
|
|
|
|
|
|
|
|
|
|
Before `git log' is called, `++order=TYPE' is converted to
`--TYPE-order', one of `--topo-order', `--date-order', and
`--author-date-order'. We do that instead of adding the
individual arguments to the popup because they are mutually
exclusive.
|
|
|
|
Fixes #2528.
|
|
|
|
|
|
Add new command `magit-reverse-in-index' but do not bind any key to it.
Instead make `magit-unstage' call it when the user attempts to unstage
a committed change. Setting the new option `magit-unstage-committed'
to `nil' disables this behavior.
|
|
Add new option `auto-revert-buffer-list-filter' and adjust
`auto-revert-buffers' to use it. Add 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'.
|
|
|
|
|
|
Actually, since `git clone' always creates that symbolic-ref,
automatically *remove* that symbolic-ref right after cloning.
The default is to remove that symbolic-ref because it isn't actually
very useful. Right after running `git clone' one knows which of the
remote branches is the "remote HEAD" without having to rely on that
symbolic-ref, because the local branch is automatically setup to use
that as upstream. At all other times that symbolic-ref is unreliable
because it is not automatically updated then the "remote HEAD" changes.
But some users might want it anyway, so add a new option
`magit-clone-set-remote-head', which can be set to `t' to preserve the
symbolic-ref.
|
|
|
|
Resetting a branch to another branch, causes 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.
Re #2517.
|
|
Fixes #2517.
|