Commit graph

316 commits

Author SHA1 Message Date
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