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