Marius Vollmer
64b8265ad3
Removed unused threshold machinery.
...
* magit.el (magit-current-section): Removed threshold argument.
Updated all callers.
(magit-collapse-threshold): Removed.
2009-01-19 00:55:26 +02:00
Marius Vollmer
b430adda17
Make sure that point never ends up in an invisible region.
...
* 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.
2009-01-19 00:24:11 +02:00
René Stadler
45fb865e1b
Fix incorrect diff hightlighting of lines beginning with "+" or "-".
2009-01-09 23:21:02 +02:00
René Stadler
b7fe74520d
Disable undo in all magit-mode buffers.
...
Saves lots of memory and prevents triggering a scary warning when Emacs detects
the massive amount of undo usage.
2009-01-09 23:20:58 +02:00
Daniel Farina
68344a20a0
Add signoff customization option
...
Signed-off-by: Daniel Farina <drfarina@acm.org>
2008-12-17 02:23:20 -08:00
Marius Vollmer
b30faeb310
Merge commit 'voins/voins'
2008-11-30 22:37:42 +02:00
Marius Vollmer
f055b18754
Typo.
...
* magit.el (magit-marked-commit): Fix typo in error message.
2008-11-30 22:31:22 +02:00
Alexey Voinov
7386af19b5
Use "medium" git log format when visiting commit
...
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.
2008-11-28 23:56:50 +03:00
Marius Vollmer
54ad9f00c8
Added Alex and Marcin to copyright header.
2008-11-13 20:48:55 +02:00
Marcin Bachry
2c45b73d01
Added `magit-copy-item-as-kill' command.
...
* magit.el (magit-copy-item-as-kill): new command to copy sha1 of
commit at point into kill ring.
2008-11-13 00:19:04 +02:00
Marcin Bachry
0bbb824fcd
Fixed `magit-goto-previous-section' not showing proper commit in
...
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
2008-11-13 00:08:16 +02:00
Marius Vollmer
e2fa665ba1
Different tag and head label colors for different backgrounds
2008-11-13 00:07:34 +02:00
Marcin Bachry
f6956593bc
Show gitk-style coloured tag and head labels in log buffer.
2008-11-12 23:46:41 +02:00
Marcin Bachry
ef3e0d0c5a
Washing functions in `magit-insert-section' couldn't set face text
...
property.
* magit.el (magit-refresh-marked-commits-in-buffer): don't overwrite
face property if not needed
2008-11-12 23:46:18 +02:00
Marcin Bachry
4e274b5941
Faster way to diff working tree with HEAD.
...
* magit.el (magit-diff-working-tree): assumes "HEAD" if not revision
was given in minibuffer.
2008-11-12 23:45:44 +02:00
Alex Ott
fe7ffeb943
Add keybindings for git-svn commands.
...
* magit.el (magit-mode-map): Bind magit-svn-rebase and
magit-svn-dcommit.
* magit.texi (Top): Document it.
2008-11-11 22:50:44 +02:00
Alex Ott
2007a3714e
Initial support for git svn.
2008-11-11 20:00:24 +02:00
Marius Vollmer
7ac76de47c
Stashing.
...
* magit.el (magit-wash-stash, magit-wash-stashes): New.
(magit-insert-stashes): New.
(magit-refresh-status): Call it.
(magit-stash): New.
(magit-mode-map, magit-mode-menu): Bind it.
(magit-apply-item, magit-cherry-pick-item, magit-discard-item): Deal
with stashes.
* magit.texi: Document stashing.
2008-11-10 00:07:08 +02:00
Marius Vollmer
cafd4b93de
(Updated TODO)
2008-11-09 23:21:43 +02:00
Marius Vollmer
88baa2e066
Make the magic fields in the commit message more explicit.
...
* magit.el (magit-log-header-end): New.
(magit-log-edit-get-fields, magit-log-edit-set-fields): Look for and
insert it.
2008-11-09 23:13:17 +02:00
Marius Vollmer
157bee4bf5
Even more control for pushing.
...
* 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.
2008-11-07 00:20:13 +02:00
Marius Vollmer
a96b8763b5
More control over pushing.
...
* magit.el (magit-read-remote): New.
(magit-push): Read remote when given a prefiy argument.
2008-11-07 00:00:37 +02:00
Marius Vollmer
201822e96f
Basic support for tagging.
...
* 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.
2008-11-06 23:46:29 +02:00
Marius Vollmer
ee7070af15
Bring back the stars.
...
* magit.el (magit-insert-unpulled-commits,
magit-insert-unpushed-commits): Explicitly include a asterisk in
output.
2008-11-06 22:53:49 +02:00
Marius Vollmer
121ded3274
Offer tags as well when asking for a revision.
...
* magit.el (magit-list-interesting-revisions): Append output of "git tags".
2008-11-06 19:12:58 +02:00
Marius Vollmer
b1f4a36f58
Survive old Gits that do not understand git name-rev --always.
...
* magit.el (magit-name-rev): Don't use --always.
2008-10-29 20:22:13 +02:00
Marius Vollmer
29593edf42
Survive old Gits that don't understand --graph.
...
* 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.
2008-10-29 19:02:20 +02:00
Marius Vollmer
ffac0a3b19
Declare macros before use.
...
* magit.el (magit-with-refresh): Move before first use.
2008-10-26 23:58:08 +02:00
Marius Vollmer
7f38df860d
Fix copyright notice and description.
2008-10-16 22:24:35 +03:00
Marius Vollmer
adc3638400
Updated TODO.
2008-10-16 01:02:35 +03:00
Marius Vollmer
15572962a0
Make sure that magit-run-with-input runs in the right directory.
...
* magit.el (magit-run*): Set default-directory of the input buffer.
2008-10-16 01:01:32 +03:00
Marius Vollmer
ed55932caf
Released 0.6-1.
2008-10-13 00:34:43 +03:00
Marius Vollmer
1059876c19
Directly use buffer for the commit message.
...
* magit.el (magit-log-edit-commit).
2008-10-12 03:33:34 +03:00
Marius Vollmer
5e231defde
Fixes.
...
* magit.el (magit-discard-diff): It's "diff" not "item", stupid.
Fixes.
(magit-use-region-p): New, for compatibility.
2008-10-12 03:07:05 +03:00
Marius Vollmer
14004f41c6
Stage/unstage, etc individual lines.
...
* 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.
2008-10-12 02:51:45 +03:00
Marius Vollmer
8a96fa09d1
Different hide/show behavior.
...
* 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.
2008-10-12 02:51:45 +03:00
Marius Vollmer
138ac10b34
The "Untracked files" section is back, with better ignoring.
...
* 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.
2008-10-12 02:51:39 +03:00
Marius Vollmer
871bf2f2d6
Re-added magit-write-diff-item-patch.
...
* magit.el (magit-write-diff-item-patch): New, it got lost somewhere...
2008-10-10 15:57:37 +03:00
Marius Vollmer
0264295302
Make discarding work again.
...
* magit.el (magit-discard-item): Don't escape twice.
2008-10-10 15:50:32 +03:00
Marius Vollmer
f2e8155904
Updated TODO.
2008-10-02 23:23:36 +03:00
Marius Vollmer
c236092857
Update commit display when moving with 'n' and 'p'.
...
* 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.
2008-10-02 23:22:53 +03:00
Marius Vollmer
8f8426b770
Speed up buffer reverting.
...
* magit.el (magit-revert-buffers): Do not use "git ls-files", just
consider all buffers.
2008-10-02 23:11:44 +03:00
Marius Vollmer
70a072a487
Updated TODO.
2008-10-02 23:01:22 +03:00
Marius Vollmer
ce3b83fabd
Updated TODO.
2008-10-02 01:24:44 +03:00
Marius Vollmer
a378cdacb6
Bugfix.
2008-10-02 01:19:23 +03:00
Marius Vollmer
fcfc70c136
Avoid some unnecessary refreshes.
...
* magit.el (magit-refresh-wrapper): Only revert files and refresh
status buffer when there is at least one buffer in need of refresh.
2008-10-02 01:18:25 +03:00
Marius Vollmer
1f74c1b0c1
Improve log editing.
...
* 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.
2008-10-02 01:12:32 +03:00
Marius Vollmer
e20322754c
Speed up construction of buffers with a lot of sections.
...
* 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.
2008-09-30 23:47:16 +03:00
Marius Vollmer
fcd6bfcaf7
Always refresh the status buffer.
...
* magit.el (magit-refresh-wrapper): Initialize
magit-refresh-needing-buffers with the status buffer.
(magit-need-refresh): Don't add a buffer twice.
2008-09-29 23:35:39 +03:00
Marius Vollmer
e6e3aa1b3a
Added menu.
...
* magit.el (magit-mode-menu): New.
2008-09-28 02:18:01 +03:00
Marius Vollmer
59aac28585
Updated manual and TODO.
2008-09-27 15:26:09 +03:00
Marius Vollmer
d48fd13d27
Handle revs that don't have a name.
...
* magit.el (magit-name-rev): Return original rev if name-rev returns
"undefined". Shouldn't happen, but does. Bug in git?
2008-09-26 16:10:17 +03:00
Marius Vollmer
e5b55cbce0
Merge branch 'master' of zagadka.vm.bytemark.co.uk:git/magit
2008-09-26 15:49:08 +03:00
Marius Vollmer
3b6c739514
Updated TODO.
2008-09-26 15:48:49 +03:00
Marius Vollmer
0e1d9ddbbb
Let magit-status always ask for the directory.
...
* magit.el (magit-read-top-dir): Removed 'prefix' argument. Always ask.
2008-09-25 23:21:59 +03:00
Marius Vollmer
efc8ae2a6c
Rewritten refresh mechanics.
...
* 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.
2008-09-21 16:09:11 +03:00
Marius Vollmer
87a437fab9
Prefer symbolic names for default revisions.
...
* magit.el (magit-name-rev): Do nothing when given nil.
(magit-default-rev): Pass commit thru magit-name-rev.
2008-09-15 02:43:36 +03:00
Marius Vollmer
7853395831
Clean up shell escaping.
...
* 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.
2008-09-15 02:37:38 +03:00
Marius Vollmer
e0e9544c09
Updated TODO.
2008-09-15 02:01:58 +03:00
Marius Vollmer
35002f3d31
Refresh buffer when rewrite-finish fails.
...
* magit.el (magit-rewrite-finish): Refresh after finishing, even when
an error has been thrown.
(magit-rewrite-finish-step): Don't refresh at all.
2008-09-15 01:58:08 +03:00
Marius Vollmer
b68b2171cf
Refuse to apply, cherry-pick, or revert a merge commit.
...
* magit.el (magit-commit-parents): New.
(magit-apply-commit, magit-revert-commit): Fail with merge commits.
(magit-cherry-pick-commit): New. Fail with merge commits. Use it everywhere
instead of running git cherry-pick directly.
(magit-cherry-pick, magit-cherry-pick-item): Renamed.
2008-09-15 01:58:01 +03:00
Marius Vollmer
f34fee9759
Keep point where it was across a refresh.
...
* 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.
2008-09-15 00:46:40 +03:00
Marius Vollmer
9214dccd6f
Clean up applying/reverting pending commits a bit.
...
* 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.
2008-09-15 00:46:40 +03:00
Marius Vollmer
4b3f8fb86a
Keep log-edit message around in case commit fails.
...
* magit.el (magit-log-edit-commit): Erase buffer committing.
2008-09-15 00:46:40 +03:00
Marius Vollmer
d25fb236fe
Merged synchronous and asynchronous command running.
...
* magit.el (magit-execute*, magit-run*): Renamed former to latter.
Added nowait parameter.
(magit-run, magit-run-async): Renamed. Implemented in terms of new
magit-run*.
(magit-execute, magit-run): Renamed.
(magit-execute-shell, magit-run-shell): Renamed.
(magit-revert-files, magit-revert-buffers): Renamed.
(magit-run-command): Removed.
2008-09-15 00:46:40 +03:00
Marius Vollmer
bbcb7747ef
Rebase synchronously.
2008-09-14 02:49:17 +03:00
Marius Vollmer
c835d6d7b1
Doc updates.
2008-09-14 02:42:01 +03:00
Marius Vollmer
bc13e8a06f
Mark pending commits as used/unused only when the apply/revert succeeded.
2008-09-14 02:21:48 +03:00
Marius Vollmer
973f8436c6
Synchronous execution of most commands.
...
* magit.el (magit-execute*, magit-execute-shell, magit-execute): New.
Use them in a ton of places instead of magit-run, etc.
2008-09-14 02:17:47 +03:00
Marius Vollmer
c40915abab
Updated TODO.
2008-09-14 01:18:40 +03:00
Marius Vollmer
dc283dec8f
Revert files when stopping the rewrite at the end of a magit-rewrite-finish.
2008-09-14 01:14:47 +03:00
Marius Vollmer
c66e0c5466
Don't refresh when a run-command continuation is given.
2008-09-14 01:14:46 +03:00
Marius Vollmer
6c6ebd0183
Always refresh the status buffer when a command finishes.
2008-09-14 01:14:46 +03:00
Marius Vollmer
1e68bdaa90
Make status buffer current while committing.
2008-09-14 01:14:46 +03:00
Marius Vollmer
dc12f07f65
Don"t ask whether to stop at the end of magit-rewrite-finish.
...
* magit.el (magit-rewrite-stop): Added optional noconfirm parameter.
(magit-rewrite-finish-step): Use it.
2008-09-14 01:14:46 +03:00
Marius Vollmer
3d80d64b3c
Set pending commit to used only when cherry-pick was successful.
2008-09-14 01:14:46 +03:00
Marius Vollmer
57bc4a786d
Call the run-command continuation with the original buffer current.
2008-09-14 01:14:46 +03:00
Marius Vollmer
42e6d0b07a
Allow arguments to the continuation of magit-run-command.
...
* 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.
2008-09-14 01:14:46 +03:00
Marius Vollmer
99dae2441e
Applying and reverting hunks and diffs.
2008-09-14 01:14:46 +03:00
Marius Vollmer
c93e41b5bb
Functions for applying diffs.
...
* magit.el (magit-diff-item-write, magit-apply-diff-item): New.
2008-09-14 01:14:46 +03:00
Marius Vollmer
a2b7afc6b5
Bugfix.
...
* magit.el (magit-toggle-section): Call magit-section-set-hidden with
two args, stupid.
2008-09-14 01:14:46 +03:00
Marius Vollmer
559398acf9
More general refresh machinery.
...
* 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.
2008-09-14 01:14:46 +03:00
Marius Vollmer
2fdf8c02ef
Updated TODO.
2008-09-14 01:14:46 +03:00
Marius Vollmer
9785c5a1c9
Updated TODO.
2008-09-11 01:25:30 +03:00
Marius Vollmer
2ff4d8918b
Bugfix magit-apply-commit and magit-revert-commit.
...
* magit.el (magit-apply-commit, magit-revert-commit): The parameter is
called "commit", not "info", stupid.
2008-09-11 01:08:23 +03:00
Marius Vollmer
d7f0a8dc5a
Support for marking pending commits used and unused.
...
* magit.el (magit-rewrite-set-used, magit-rewrite-set-unused): New.
(magit-mode-map): Bind them.
2008-09-11 00:09:05 +03:00
Marius Vollmer
bfd8f4baa0
Rewrite finishing.
...
* magit.el (magit-rewrite-finish, magit-rewrite-finish-step,
magit-rewrite-finish-continuation): New.
2008-09-11 00:08:34 +03:00
Marius Vollmer
a91d10c74b
More features for magit-run-command.
...
* magit.el (magit-run-command): Added erase and cont parameters.
Construct logline from cmd and args when nil.
(magit-process-sentinel): Call magit-process-continuation when set.
2008-09-11 00:06:08 +03:00
Marius Vollmer
6089e3b9db
Updated TODO.
2008-09-11 00:03:05 +03:00
Marius Vollmer
bc1836a7b1
Speed up log washing.
...
* magit.el (magit-wash-log): Bind magit-old-top-section to nil while
washing log entries so that no time is wasted looking up the old
visbility state.
2008-09-11 00:03:04 +03:00
Marius Vollmer
666459c85d
Don't propertize used pending commits.
...
The face gets overwritten by the marked commits machinery. (And there
was a typo.)
2008-09-09 01:16:24 +03:00
Marius Vollmer
d4c263386f
Make diff washing work again in commit buffers.
...
* magit.el (magit-wash-diffs, magit-wash-log, magit-wash-commit):
Don't go to point-min, it's redundant for magit-insert-section now
and harmful when used in other contexts.
2008-09-09 01:05:41 +03:00
Marius Vollmer
e4031528aa
Use pending commit properties when applying, cherrypicking, and reverting.
2008-09-09 00:55:53 +03:00
Marius Vollmer
ff65089041
Pending commit properties.
2008-09-09 00:55:33 +03:00
Marius Vollmer
95185b0ada
Add rewrite key bindings.
2008-09-09 00:55:09 +03:00
Marius Vollmer
998638ff1a
Renamed "Unrewritten changes" to "Pending changes".
2008-09-08 23:39:55 +03:00
Marius Vollmer
c9a4735c11
Deal with more than one modified file when showing a commit.
...
* magit.el (magit-wash-commit): Call magit-wash-diffs instead of
magit-wash-diff to handle more than one diff.
2008-09-08 23:32:02 +03:00
Marius Vollmer
0efe4c71b5
Don't hide all diffs by default.
...
* magit.el (magit-hide-diffs): New variable.
(magit-wash-diff): Use it for the default hiddenness of diffs.
(magit-insert-unstaged-changes, magit-insert-staged-changes,
(magit-insert-unrewritten-changes): Bind it to t.
2008-09-08 23:31:12 +03:00
Marius Vollmer
4f8dd6f841
Hide diffs by default.
...
* magit.el (magit-new-section): Type rest arg for initializing the new
section structure.
(magit-with-section): Generalize type argument to allow a list of
keyword value pair and pass them to magit-new-section.
(magit-wash-diff): Make diffs hidden by default.
2008-09-08 23:21:01 +03:00
Marius Vollmer
2bf9c19866
Better handling of hidden sections with 'n' and 'p'.
...
* magit.el (magit-goto-next-section, magit-prev-section): Don't
descend into hidden sections.
2008-09-08 23:19:12 +03:00
Marius Vollmer
246eb467b7
Updated TODO.
2008-09-08 12:19:53 +03:00
Marius Vollmer
c9164c5d0b
Deal with empty diffs.
...
* magit.el (magit-create-buffer-sections): Create top section if body
hasn't created any.
2008-09-07 23:42:11 +03:00
Marius Vollmer
993354b867
Unrewritten changes. (R)
2008-09-07 23:35:16 +03:00
Marius Vollmer
1b6133b622
Stopping. (R)
2008-09-07 23:19:10 +03:00
Marius Vollmer
25b0d795af
Rewrite starting. (R)
2008-09-07 23:16:56 +03:00
Marius Vollmer
8460d4db78
Rewrite aborting. (R)
2008-09-07 23:12:55 +03:00
Marius Vollmer
8897b0552c
Some fundamentals for interactive rewrite. (R)
2008-09-07 23:12:32 +03:00
Marius Vollmer
1f252fb554
Updated TODO.
2008-09-07 20:27:16 +03:00
Marius Vollmer
c0938fa2a2
Include untracked files in the unstaged changes section.
2008-09-07 20:24:41 +03:00
Marius Vollmer
d5769cd617
Bugfix.
...
* magit.el (magit-prefix-p): Terminate when reaching the end of the list.
2008-09-07 20:23:52 +03:00
Marius Vollmer
fdee20de6f
Properly discard file deletions.
...
* magit.el (magit-discard-item): Reset a deleted file before checking
it out. Otherwise a staged deletion can not be undone.
2008-09-07 19:47:41 +03:00
Marius Vollmer
d80109e4ef
Properly discard new files.
...
* magit.el (magit-discard-item): Use git rm to discard new files.
2008-09-07 17:37:57 +03:00
Marius Vollmer
e4ccc99536
Move unpulled commits before local changes.
2008-09-07 17:24:32 +03:00
Marius Vollmer
72fa30a698
Renamed "unmerged" to "unpulled".
2008-09-07 16:50:30 +03:00
Marius Vollmer
8c09f66694
Experimental showing of unmerged commits.
...
* magit.el (magit-insert-unmerged-commits): New.
(magit-update-status): Use it.
2008-09-07 16:48:44 +03:00
Marius Vollmer
6b839c8df0
Cleanly unstage file deletions.
...
* magit.el (magit-unstage-item): Use "-q" to shut up git reset when
unstaging a deletion. Otherwise it would complain about local
changes.
2008-09-07 16:45:46 +03:00
Marius Vollmer
0721a4c951
Bug fix.
...
* magit.el (magit-visit-item): It's magit-diff-item-file, stupid.
2008-09-07 16:44:18 +03:00
Marius Vollmer
79c901b71a
Don't detect renames yet. Record more information for diffs.
2008-09-07 16:32:11 +03:00
Marius Vollmer
6b464fd509
Use "Unmerged" instead of "Unresolved".
2008-09-07 15:38:24 +03:00
Marius Vollmer
ce964ab2e1
Have a stab at detecting unresolved files.
2008-09-07 14:41:14 +03:00
Marius Vollmer
6935045e82
Updated TODO.
2008-09-07 05:27:57 +03:00
Marius Vollmer
e5ec239c31
Indicate deleted and renamed files.
2008-09-07 05:25:35 +03:00
Marius Vollmer
a379bb1e0f
Better file status indication.
...
* magit.el (magit-wash-diff): Grep diff header for status of file.
2008-09-07 05:19:11 +03:00
Marius Vollmer
8ca446c4bd
Detect renamed files.
...
* magit.el (magit-insert-staged-changes): Pass "-M" to git diff.
2008-09-07 05:12:32 +03:00
Marius Vollmer
5f34a05b3a
Refactored magit-update-status.
2008-09-07 03:53:25 +03:00
Marius Vollmer
d045293801
Make sure that there is always a current section.
...
* magit.el (magit-current-section): Return magit-top-section when
there is no magit-section property. This happens at eob.
2008-09-07 03:24:14 +03:00
Marius Vollmer
4623a798b3
More functions for visibility control.
2008-09-07 03:19:52 +03:00
Marius Vollmer
d6e4c40364
Fix visibility memory. How did this ever work?
...
* magit.el (magit-top-section): Make the right variable permanent.
(magit-new-section): Don't fail when there are no old sections.
2008-09-07 03:15:37 +03:00
Marius Vollmer
0ea2d919c8
Put point at start of log.
...
* magit.el (magit-log): Goto point-min.
(magit-reflog): Likewise.
2008-09-07 02:23:22 +03:00
Marius Vollmer
d100f40298
Remember section visibility across buffer reconstructions.
...
* magit.el (magit-new-section): Find old section and inherit hidden
attribute.
(magit-create-buffer-sections): Make old top section available to
magit-new-section.
2008-09-07 02:15:45 +03:00
Marius Vollmer
c315191639
Big rewrite of the 'section' and 'item' machinery.
2008-09-07 02:00:26 +03:00
Marius Vollmer
6d4414d826
Properfy TODO.
2008-09-04 20:50:17 +03:00
Marius Vollmer
49c2e544cc
Make author email and date work as well.
...
* magit.el (magit-log-edit-setup-author-env): Cope with setenv
destroying the match data.
2008-09-03 23:40:42 +03:00
Marius Vollmer
a64949523c
Fix process filter.
...
* magit.el (magit-process-filter): Use 'position' instead of a regexp
search to find last ^M. Regexps have trouble with newlines.
2008-09-02 23:36:33 +03:00
Marius Vollmer
d1f0df38f9
Better handling of running counters in Git output.
...
* magit.el (magit-process-filter): New, for dealing with ^M in output.
(magit-run-command): Install it.
2008-09-02 23:18:23 +03:00
Marius Vollmer
2f4c2eed23
List modified files in a nicer way.
...
* magit.el (magit-wash-diff): Insert header line for diffs. Updated
all functions that know where a diff begins.
2008-09-02 01:36:06 +03:00
Marius Vollmer
55a7c63c51
TODO
2008-09-01 01:44:11 +03:00
Marius Vollmer
9f6f5b3c19
Enable standard M-n and M-p in log-edit buffer.
...
* magit.el (magit-log-edit-push-to-comment-ring): New.
(magit-log-edit-commit): Use it.
(magit-log-edit-map): Bind M-n and M-p to log-edit functions.
2008-09-01 01:10:07 +03:00
Marius Vollmer
a040eb8038
Bugfix.
...
* magit.el (magit-revert-item): Use magit-log-edit-append instead of
the removed magit-append-to-log-edit.
2008-08-31 21:49:14 +03:00
Marius Vollmer
db06a91204
Automatically collapse big "Changes" sections.
...
* magit.el (magit-collapse-threshold): New.
(magit-insert-section): Take threshold argument. Updated all callers.
2008-08-31 20:04:02 +03:00
Marius Vollmer
05174053c5
Handle "Author:" field in log edit buffer.
...
* magit.el (magit-log-edit-setup-author-env): New.
(magit-log-edit-commit): Use it.
2008-08-31 19:34:42 +03:00
Marius Vollmer
ef8cfa1b28
Oops.
2008-08-31 19:16:58 +03:00
Marius Vollmer
b84719b56b
Cosmetics.
2008-08-31 19:11:32 +03:00
Marius Vollmer
4ec82c45de
Reflog browsing.
...
* magit.el (magit-reflog, magit-reflog-head): New.
(magit-mode-map): Bind them to 'h' and 'H' respectively.
2008-08-31 18:47:26 +03:00
Marius Vollmer
c0d6281dd8
Support for committing without staging.
...
* magit.el (magit-anything-staged-p): New.
(magit-update-status): Use it to determine name of the 'unstaged' section.
(magit-log-edit-commit): Pass "--all" to git commit when nothing is staged.
2008-08-31 18:30:37 +03:00
Marius Vollmer
d49639463a
Updated TODO.
2008-08-31 18:20:10 +03:00
Marius Vollmer
2a5da19c7f
Commit amending.
...
* magit.el (magit-log-edit-commit): Look at 'amend' field and pass
"--amend" to git commit when true.
2008-08-31 18:18:46 +03:00
Marius Vollmer
1e7a9e3d66
Support for fields in the log-edit buffer.
...
* magit.el (magit-log-edit-map): Define as recommended by the Elisp manual.
(magit-log-edit-append): Renamed from magit-append-to-log-edit.
(magit-log-edit-get-fields, magit-log-edit-set-fields,
magit-log-edit-set-field, magit-log-edit-toggle-amending): New.
(magit-apply-item): Set author.
2008-08-31 18:11:38 +03:00
Marius Vollmer
4f3d2ee26f
Updated TODO.
2008-08-31 02:52:17 +03:00
Marius Vollmer
69288bf030
More interesting hide/show behavior.
...
* magit.el: (magit-section-set-visibility,
magit-section-set-children-visibility,
magit-section-toggle-visibility): New.
(magit-mode-map): Bind the last one to 'TAB'.
2008-08-31 02:50:04 +03:00
Marius Vollmer
f042b74925
Fix magit-section-beginning-position.
...
* magit.el (magit-section-beginning-position): Just search backwards
for the first property change, don't try to skip over children.
2008-08-31 02:48:05 +03:00
Marius Vollmer
ae5b5d4fe0
Better indication of "git remote update" in mode line.
...
* magit.el (magit-process-indicator-from-command): New.
(magit-run-command): Use it.
2008-08-31 00:41:22 +03:00
Marius Vollmer
7ad6d4dd55
Don't fail in magit-describe-item when item is nil.
2008-08-31 00:34:03 +03:00
Marius Vollmer
864248a582
Better discarding of staged changes.
...
* magit.el (magit-shell-exit-code, magit-file-uptodate-p): New.
(magit-run-shell): Use shell-file-name and shell-command-switch
instead of hardcoding "sh" and "-c".
(magit-discard-item): Use "--index" to discard staged changes, but
only allow it when the file is uptodate.
2008-08-31 00:28:58 +03:00
Marius Vollmer
a284ac86ff
Don't allow staging/unstaging in the wrong context.
...
* magit.el (*magit-item-context*): New.
(magit-item): Add context field from *magit-item-context* special
variable.
(magit-insert-section): Set *magit-item-context* to section id while
calling the washer.
(magit-must-be-unstaged, magit-must-be-staged): New:
(magit-stage-item, magit-unstage-item): Use them to fail early.
2008-08-30 23:18:27 +03:00
Marius Vollmer
12ae7132c4
Make reverting work with unclean working trees.
...
* magit.el (magit-revert-item): Like with magit-apply-item, use diff
plus apply instead of revert so that we can work with a unclean working tree.
2008-08-30 22:47:43 +03:00
Marius Vollmer
c1cce797d0
Updated TODO.
2008-08-30 22:44:06 +03:00
Marius Vollmer
8912ac22fc
New magit-run-shell utility.
...
* magit.el (magit-run-command): Renamed from magit-run, explicitly
take line to log in the buffer.
(magit-run): Use it.
(magit-run-shell): New, use it as well.
2008-08-30 22:34:40 +03:00
Marius Vollmer
1658e50c0d
Only show the first line of a section when hiding it, not the whole header.
2008-08-30 22:32:30 +03:00
Marius Vollmer
45055cdf3e
Real cherry picking.
...
* magit.el (magit-mode-map): Bind it to 'A'.
(magit-cherry-pick): New.
(magit-apply-item): Use diff and apply instead of cherry-pick so that
we can change a unclean work tree.
2008-08-30 21:37:01 +03:00
Marius Vollmer
45bff9c642
Pre-fill the log-edit buffer for reverts and cherry-picks.
...
* magit.el (magit-append-to-log-edit, magit-escape-for-shell,
magit-format-commit): New.
(magit-apply-item, magit-revert-item): Use them.
2008-08-30 21:15:02 +03:00
Marius Vollmer
226ad5a956
More discarding.
...
* magit.el (magit-apply-hunk-item): New.
(magit-stage-item, magit-unstage-item): Use it instead of explicit code.
(magit-discard-item): Handle hunks and diffs.
2008-08-30 20:54:51 +03:00
Marius Vollmer
1161d292f6
Goto "Unstaged changed" when creating status buffer.
...
* magit.el (magit-update-status): Goto first unstaged change when
point is still at beginning of buffer.
2008-08-30 20:37:44 +03:00
Marius Vollmer
4916b98e4a
Use *magit-log-edit* as buffer name.
2008-08-29 01:39:01 +03:00
Marius Vollmer
670cbf80e5
Use dim gray for dark background color classes.
...
Thanks to Phil Hagelberg!
2008-08-24 05:37:13 +03:00
Marius Vollmer
20c9eccccf
Rewrite apply and revert using magit-item-case.
2008-08-24 05:28:38 +03:00
Marius Vollmer
7bbde7724d
Oops.
2008-08-24 05:26:21 +03:00
Marius Vollmer
1d5385b782
Rewritten sections. Initial hide/show of sections.
2008-08-24 05:21:36 +03:00
Marius Vollmer
f6b57a77dc
Bugfix.
...
* magit.el (magit-visit-item): Pass commit to magit-show-commit, as required.
2008-08-24 03:33:24 +03:00
Marius Vollmer
8b4b909821
Improve visiting and scroll the other window.
...
* magit.el (magit-show-commit): Made non-interactive. Scroll window
when requested and appropriate.
(magit-visit-item): Select *magit-commit* buffer when visiting a commit.
(magit-show-item-or-scroll-up, magit-show-item-or-scroll-down): New.
(magit-mode-map): Bind them to SPC and DEL.
2008-08-24 03:01:29 +03:00
Marius Vollmer
322208708e
Nicer dispatching on item types.
...
* magit.el (magit-item-case): New.
(magit-stage-item, magit-unstage-item, magit-ignore-item,
magit-discard-item, magit-visit-item): Use it.
2008-08-24 02:31:49 +03:00
Marius Vollmer
358ed0abd0
Garbage collection.
2008-08-24 02:30:26 +03:00
Marius Vollmer
dc371ff868
Make status buffer names special. Thanks to John Wiegley!
...
* magit.el (magit-status): Use a name of the form "*magit: foo*
instead of just "foo".
2008-08-24 00:59:10 +03:00
Marius Vollmer
ea626dbb0e
Fix two bugs from introducing the item abstraction.
...
* magit.el (magit-unstage-item): It's magit-diff-or-hunk-item-file,
not magit-diffor-hunk-item-file, stupid.
(magit-visit-item): magit-diff-item-position does not exist, use nil
instead.
2008-08-21 22:58:33 +03:00
Marius Vollmer
52abed7629
Discarding items.
...
* magit.el (magit-discard-item): New.
(magit-mode-map): Bind it to 'k'.
2008-08-21 02:41:43 +03:00
Marius Vollmer
909c793cf2
Add finished indication to process buffer.
...
* magit.el (magit-process-sentinel): Simplified. Add event to process buffer.
2008-08-21 02:34:05 +03:00
Marius Vollmer
d4aacdbd73
* magit.el (magit-write-hunk-item-patch): Corrected 'info' argument to 'item'.
...
Damn dynamic scope covered this up for us.
2008-08-21 02:25:57 +03:00
Marius Vollmer
23bdc84c46
Removed magit-diff-or-hunk-item-position.
2008-08-21 02:23:08 +03:00
Marius Vollmer
51c54a329e
Replaced horrible magit-info with nice Item abstraction.
2008-08-21 02:19:58 +03:00
Marius Vollmer
e54ab875e3
Use quit-window instead of magit-quit.
...
Thanks to Phil Hagelberg!
2008-08-21 00:29:50 +03:00
Marius Vollmer
022463442b
Bind magit-unstage-all to 'U'.
...
* magit.el (magit-unstage-all): New.
2008-08-21 00:19:15 +03:00
Marius Vollmer
151ae0a8a3
Redone key bindings for pulling, leaving 'U' free for unstage-all.
2008-08-21 00:18:04 +03:00
Marius Vollmer
52f61d6107
Better defaults for 'x'.
...
* magit.el (magit-reset-head): Default to "HEAD^" when there is no
commit at point.
2008-08-20 23:57:51 +03:00
Marius Vollmer
822adda331
Omit empty sections.
...
* magit.el (magit-insert-section): Insert final newline only when
inserted output is not empty. Delete title when it is.
2008-08-20 23:57:07 +03:00
Marius Vollmer
cb3b44282d
Bind 'q' to magit-quit.
2008-08-20 01:21:50 +03:00
Marius Vollmer
5421e52262
Fix untracked files.
...
* magit.el (magit-wash-other-files): Skip empty lines.
2008-08-20 01:05:21 +03:00
Marius Vollmer
4c9659405b
Hightlight current item.
...
* magit.el (magit-put-line-property): Don't use line-end-position, use
line-beginning-position of next line instead.
2008-08-20 00:58:34 +03:00
Marius Vollmer
b1a3cf9a07
Remove outdated comment.
2008-08-20 00:56:11 +03:00
Marius Vollmer
9189074037
Removed "-face" suffix from face names.
...
As recommended by the Elisp Manual.
2008-08-20 00:55:42 +03:00
Marius Vollmer
e227560477
Faces.
...
From Linh Dang.
2008-08-19 23:43:34 +03:00
Marius Vollmer
79239e3ae2
Updated TODO.
2008-08-19 02:06:17 +03:00
Marius Vollmer
5e6ac7730e
Move with n and p, like God intended.
...
* magit.el (magit-mode-map): Put magit-next-section and
magit-previous-section on 'n' and 'p', respectively. Put
magit-display-process on '$'.
2008-08-19 02:06:08 +03:00
Marius Vollmer
a72d0ceec1
Added lost key bindings.
...
* magit.el (magit-mode-map): Added bindings for 'a' magit-apply-commit
and 'v' magit-revert-commit.
2008-08-19 01:34:38 +03:00
Marius Vollmer
601d26bf5a
Use named functions for the section jumpers so that the online help
...
has something to show.
2008-08-19 00:42:44 +03:00
Marius Vollmer
4b3fcac93f
Better movement.
...
* magit.el (magit-next-section, magit-previous-section,
magit-section-jumper): New.
(magit-put-line-property): Include newline.
(magit-mode-map): Don't bind digits by default. Bind M-n and M-p to
move by sections, and 0, 1, 2, 4 to jump directly to a section
2008-08-18 23:51:26 +03:00
Marius Vollmer
5a19dcbd8d
Removed docstring of magit-mode, it's quite wrong now.
2008-08-18 23:13:16 +03:00
Marius Vollmer
b7c1292701
Always use "git cmd" instead of "git-cmd".
...
The latter was deprecated and doesn't work anymore in git 1.6.
2008-08-18 22:07:00 +03:00
Marius Vollmer
edc4aa78d9
Provide promised default for magit-reset-head.
2008-08-17 02:59:50 +03:00
Marius Vollmer
d530079be5
Remove magit-log-commit.
2008-08-17 02:55:41 +03:00
Marius Vollmer
a88933a1d2
Typo (aka incomplete refactoring).
...
* magit.el (magit-automatic-merge): Use rev instead of branch, stupid.
2008-08-17 02:54:44 +03:00