* magit.el (magit-section-hidden-default): New.
(magit-new-section): Only expect type as argument, not a general list
of slots. Take 'hidden' value from magit-section-hidden-default.
(magit-with-section): Likewise.
(magit-wash-diff): Adapted.
* magit.el (magit-refresh-commit-buffer): Use nil as type for outer
section so that the highlight is not used for it.
(magit-refresh-log-buffer): Likewise.
* magit.el (magit-with-section): Check that args is a list before
accessing its car.
(magit-insert-section): Set the title of the section from the real
title, and the txpe from the real type.
If branch or tag name is the same as some file in repository, git log
was reporting that as "ambiguous argument 'test': both revision and
filename. Use '--' to separate filenames from revisions".
* magit.el (magit-correct-point-after-command): New.
(magit-post-command-hook): New, to collect all post-command activitiy.
(magit-mode): Use it instead of magit-highlight-section.
(magit-section-set-hidden): Don't touch the rear-stickyness.
Visiting commit does not always work well when default git log format
was changed. This change makes git log explicitly use "medium" format,
which is out of the box default value.
commit buffer.
* magit.el (magit-show-commit): don't shadow "commit" parameter in let
form
* magit.el (magit-show-commit): accept both string and section struct
as "commit" parameter
* magit.el (magit-push): Always push the current branch and nothing
else. Ask for a remote when none is configured yet and set it. Also
ask when given a prefix argument, but don't set it as default in that
case.
* magit.texi (Pushing and Pulling): Document this.
* magit.el (magit-tag, magit-annotated-tag): New.
(magit-log-edit-commit): Run "git tag" when tag field is set.
(magit-mode-map): Add them to 't' and 'T', respectively.
(magit-mode-menu): Add them as well.
(magit-pop-to-log-edit): New.
(magit-log-edit): Use it after removing the tag field.
* magit.el (magit-insert-unpulled-commits,
magit-insert-unpushed-commits): Don't pass "--graph" to git log.
(magit-have-graph, magit-configure-have-graph): New.
(magit-refresh-log-buffer): Use them to only pass --graph to git log
when it will work.
* magit.el (magit-insert-region, magit-insert-current-line): New.
(magit-insert-hunk-item-region-patch): New.
(magit-run*): Added 'input' parameter.
(magit-run-with-input): New.
(magit-diff-item-insert-header, magit-insert-diff-item-patch,
magit-insert-hunk-item-patch, magit-apply-diff-item): Rewritten to
use *magit-tmp* buffer instead of a file.
(magit-apply-hunk-item): Likewise, and also restrict the patch to the
region when appropriate.
(magit-discard-item): Make sure that diff items that are not in the
staged or unstaged sections can not be discarded.
* magit.texi: Document it all.
* magit.el (magit-expand-collapse-section): New.
(magit-mode-map): Bind TAB to magit-toggle-section and S-TAB to
magit-expand-collapse-section.
* magit.texi: Document it.
* magit.el (magit-wash-untracked-file, magit-wash-untracked-files,
magit-insert-untracked-files): New.
(magit-insert-unstaged-changes): Don't include other files in output.
(magit-mode-map): '1' jumps to untracked files instead of unpulled
changes.
(magit-stage-item, magit-discard-item, magit-visit-item):
Handle untracked files.
(magit-ignore-file): New.
(magit-ignore-item): Use it.
(magit-ignore-item-locally): New.
(magit-mode-map): Bind it to "I".
* magit.texi: Document it all.
* magit.el (magit-show-commit): When showing a new section, make sure
point is at the beginning.
(magit-goto-previous-section, magit-goto-next-section): Show section
when in a log or reflog buffer.
* magit.el (magit-log-fill-paragraph, magit-log-edit-mode): New, for
better paragraph filling.
(magit-log-edit): Use it.
(magit-add-log): Add entries also for diffs. Be more careful when
inserting new function sub-entries into existing file entries.
* magit.el (magit-new-section): Collect children in reverse.
(magit-with-section): Reverse them when done.
(magit-refresh-log-buffer): Limit to 1000 commits.
(magit-refresh-reflog-buffer): Likewise.
* magit.el (magit-refresh-buffer): Renamed from magit-refresh, made
non-interactive.
(magit-need-refresh): New. Call it whenever needed and instead of
magit-refresh and magit-revert-buffers.
(magit-with-refresh): New.
(magit-refresh): Reimplemented using these two.
(magit-section-action): New. Use it instead of magit-section-case in
commands.
(magit-run*, magit-cherry-pick-commit): Removed norefresh argument.
(magit-run, magit-run-shell): Use magit-with-refresh.
* magit.el (magit-shell, magit-shell-lines, magit-shell-exit-code,
magit-run-shell) Escape all format arguments when constructing the
command. Updated all callers.
* magit.el: Don't move point in refresh functions.
(magit-refresh): Try to keep point where it was.
(magit-run*): Call magit-refresh outside of the save-excursion so that
it can move point.
* magit.el (magit-apply-item, magit-cherry-pick, magit-revert-item):
Don't bother to check return value of magit-apply-commit, it either
succeeds or throws an error.
* magit.el (magit-run-command): Changed parameters to allow for
arguments to the continuation. Changed all callers.
(magit-process-sentinel): Allow quitting when calling the
continuation.
(magit-refresh): Added optional buffer parameter.
* magit.el (magit-refresh, magit-refresh-all): New. Bind to "g" and
"G". Replaced all calls to magit-update-status with magit-refresh.
(magit-mode-init): Added refresh-func and refresh-args,
remember them for magit-refresh and call magit-refresh at the end.
Updated all users.
(magit-set-mode-line-process): Put process indicator into the mode
line of all magit-mode buffers.