Commit graph

723 commits

Author SHA1 Message Date
Moritz Bunkus
d4aa3ff85a Only call server-running-p on Emacs 23 or newer 2010-05-06 00:31:24 +01:00
Phil Jackson
8bf8a36db6 Use `magit-section-case' to get branch from wazzup. 2010-05-06 00:27:20 +01:00
Rémi Vanicat
179f1b9809 Use guess-branch and default-rev wherever we ask for a branch or a rev.
Signed-off-by: Rémi Vanicat <vanicat@debian.org>
2010-05-06 00:07:42 +01:00
Rémi Vanicat
b6d7f36a7d When there is a guessed branch, it make a good default rev.
Signed-off-by: Rémi Vanicat <vanicat@debian.org>
2010-05-06 00:06:11 +01:00
Óscar Fuentes
51a1b6d84c Revert buffers after committing
I find the VC status on the modeline useful (the one that shows
Git[:-]branchname) This indicates when the buffer's associated file was
changed on disk (`:' for edited, `-' for unedited.) This indicator is
not affected by a commit with magit, so it keeps signaling a file as
edited when in fact it is not. This patch reverts all buffers that are
visiting a file in the current working tree after a commit.
2010-05-05 16:36:36 +01:00
Óscar Fuentes
5f371df069 Correct informative text for showing more log entries
At the end of the log, the text ``type "l" to show more logs'' is
shown. The actual keybinding is `e', not `l'.
2010-05-05 16:31:56 +01:00
Rémi Vanicat
2acc8be623 Make the process-connection-type customizable.
We need process-connection-type to be nil on cygwin
We need process-connection-type to be t for magit to ask for password
So we now use the new variable magit-process-connection-type for this,
defaulting to nil on cygwin, and to t on others platform.
2010-05-05 15:19:49 +01:00
Rémi Vanicat
c256a726d4 Make magit ask for password also when git is asking for an host password
Previously we were asking only when there was a passphrase for ssh key.
2010-05-05 15:04:25 +01:00
Phil Jackson
3d1faa122e Added some missing contributor names. 2010-05-05 13:48:56 +01:00
Rémi Vanicat
ed904c7a00 use "e" for more log
Then we can use "l" to show short-log from long log an reflog.
At the same time we add the different keybinding to see the different
kind of logs from the others logs.
2010-05-05 10:17:49 +01:00
Leo
975536e966 Fix open parentheses in doc strings
The latest doc change seems to bring in a lot of opening parentheses in
the doc strings. This patch fixes them.
2010-05-02 10:29:07 +01:00
Roger Crew
26712041ec remove runtime dependence on cl.el
This patch removes the runtime dependences on the cl package.
Luckily, there weren't too many of these.

From the GNU emacs lisp manual (Appendix D.1 coding conventions)

   * Please don't require the `cl' package of Common Lisp extensions
     at run time.  Use of this package is optional, and it is not part
     of the standard Emacs namespace.  If your package loads `cl' at
     run time, that could cause name clashes for users who don't use
     that package.

     However, there is no problem with using the `cl' package at
     compile time, with `(eval-when-compile (require 'cl))'.  That's
     sufficient for using the macros in the `cl' package, because the
     compiler expands them before generating the byte-code.

There's also the small matter that many of the function implementations
in cl, striving for the full generality of Common Lisp (much of which
is completely useless in Emacs), turn out to be horrible.

E.g., for a fun time, dig down through

      (find-if pred list :from-end t),

and look at what it ACTUALLY does when you finish macroexpanding
everything.  It tests *every* element of the list against the
predicate, not just the rightmost ones stopping when it finds the
first match.  Once it determines the rightmost match, it then retains
NOT the element itself, but its *ordinal* position N, which then gets
used in (elt list N), meaning ANOTHER listwalk, just to get the
element back in order to return it.  Nor is the byte-compiler anywhere
near smart enough to optimize this away (I'm not sure *any* compiler
would be...)

I'll grant cl has some useful macros in it, but it comes bundled with a
lot of crap and you need to be really careful about what you use.  For
many things, you're better off rolling your own functionality using
the standard routines available (e.g., while, mapcar, and reverse are
all written directly in C).

And you most definitely do NOT want to be foisting the crap on
everybody else, hence the need to keep it out of the runtime.

Meanwhile, here's The Patch:

	Modified magit.el
2010-04-28 12:21:49 +01:00
Roger Crew
cf60063e3b *magit-FOO-log* / introduce buffer name variables
Introduces

  magit-log-buffer-name 	*magit-log*
  magit-log-edit-buffer-name	*magit-edit-log*  (was *magit-log-edit*)
  magit-log-grep-buffer-name	*magit-grep-log*  (was *magit-log-grep*)
  magit-process-buffer-name 	*magit-process*
  magit-commit-buffer-name 	*magit-commit*
  magit-stash-buffer-name	*magit-stash*

Also adds C-c C-] as a binding for magit-log-edit-cancel-log-message
since C-c C-] as the aborting counterpart to C-c C-c is at least a
vague convention for other modes (cf. rmail, vm, query-replace...)

Motives:

It annoys me that, when wanting to switch to the *magit-log* buffer
from some random place, I can't type *ma<space>-l<space> and have it
complete properly, at least not if I've previously ever done a commit
(because there's then a *magit-log-edit* out there stealing the
completion).

Also looks like if I ever use magit-log-grep, I will be likewise
screwed.

Finally, it disturbs my sense of aesthetics when I look at source code
and see the same strings occuring over and over.  Usually, that's
crying defvars/defconsts.  (And this will also makes life easier
in the event you don't like my buffer name changes for -log-edit
and -log-grep).

 - -

(...This all leaves *magit-tmp* as the only remaining case of a buffer
    name string occurring multiple times, but that needs to be handled
    differently, so that'll be a different patch...)

(...Note that having buffer names as variables also allows the
    eventual possibility of making them local --- or at least the
    option thereof --- so that one can be visiting several
    repositories at once and not having these buffers all clobbering
    each other.  There's a tradeoff here in that some folks may find
    it confusing/annoying to have more than one set of these buffers
    to deal with,... hence option.

    *If* one is going to go that route, current gut feeling is buffer
    name variables should be local to *just* the status buffer(s),
    void elsewhere, and anything needing one of the auxiliary buffers
    should dispatch through its own status buffer to get what it
    wants.  That way, we're not having to repeat/update/copy
    per-repository definitions everywhere....)

The patch:
2010-04-28 12:17:26 +01:00
Roger Crew
666e4113e9 docstrings for various functions
Here, have some docstrings:

(...it being something of a show-stopper for newbies when they want to
find out what a given keystroke will do, they hit ^Hk [or ^Hf or ^Hv],
and nothing useful comes out...)
2010-04-27 10:59:48 +01:00
Roger Crew
4c2e7ee5e9 Magit now compiles cleanly.Fix for appending an explicit number of new log entries. 2010-04-25 19:22:33 +01:00
Phil Jackson
1701272fce Fix for appending an explicit number of new log entries. 2010-04-25 19:14:41 +01:00
Rémi Vanicat
2348c70ff1 Added a function to grow the number of log in the log view
The log view will show an help at its end when there is more log to
view, and the function is bound to "l" in log view.
2010-04-25 17:25:06 +01:00
Roger Crew
41343a06f5 magit-show-branches shows wrong repository
If you do
.  magit-status on repository .../x
.  V (magit-show-branches)
.  magit-status on repository .../y
.  V (magit-show-branches)

you get the branch listing for repository .../x

Also, as a side issue, functionality of a buffer should not be
keyed off of the buffer name (in this case, renaming the buffer
should not change what V or g does).

The following patch deals with both of these.
2010-04-25 17:11:29 +01:00
Rémi Vanicat
d976e65dbf Regrouping command that create new view of current git repositories.
Signed-off-by: Rémi Vanicat <vanicat@debian.org>
2010-04-12 14:08:11 +01:00
Rémi Vanicat
6312006a54 Moving function related to current status
magit-reset-head is also put wherever there are commits

Signed-off-by: Rémi Vanicat <vanicat@debian.org>
2010-04-12 14:08:11 +01:00
Rémi Vanicat
d5dd0578ba Moving function working specifically on status hunk, diff and files
Signed-off-by: Rémi Vanicat <vanicat@debian.org>
2010-04-12 14:08:11 +01:00
Rémi Vanicat
3eec4705bc Moving merging and branching function where there are commit and branch.
Signed-off-by: Rémi Vanicat <vanicat@debian.org>
2010-04-12 14:08:11 +01:00
Rémi Vanicat
6328782833 Moving apply, cherry-pick and revert function.
They all apply to hunk, commit and diff that are in
status, stash, log, reflog, diff and wazzup buffers.

Signed-off-by: Rémi Vanicat <vanicat@debian.org>
2010-04-12 14:08:11 +01:00
Rémi Vanicat
bca27d36bb Moving diff view function where there are commits.
Signed-off-by: Rémi Vanicat <vanicat@debian.org>
2010-04-12 14:08:11 +01:00
Rémi Vanicat
682809d82d Moving staging function to status buffer
Signed-off-by: Rémi Vanicat <vanicat@debian.org>
2010-04-12 14:08:11 +01:00
Rémi Vanicat
d2b814ad9e Moving hunk size modifier in modes where there are hunks.
Signed-off-by: Rémi Vanicat <vanicat@debian.org>
2010-04-12 14:08:11 +01:00
Rémi Vanicat
9105c3e557 Added minor mode for the different magit buffer.
Signed-off-by: Rémi Vanicat <vanicat@debian.org>
2010-04-12 14:08:11 +01:00
Moritz Bunkus
8175d6dfad Only start the server if it isn't running
magit's interactive rebase feature tries to start the server even if
it is already running. If it is already running then Emacs asks
whether or not it should destroy existing clients. This is fatal if
the frame magit is running in was created by emacsclient
itself (e.g. Emacs is running in the background with "--daemon"), so
the user has to answer "no".

This question can be avoided if the server is only startet if it isn't
already running.
2010-04-01 11:16:12 +01:00
Phil Jackson
e7a3b608e6 Fix `magit--branch-name-at-point'. 2010-04-01 01:55:56 +01:00
Phil Jackson
db44227cb0 Use fundamental-mode' rather than text-mode' 2010-04-01 01:53:35 +01:00
Phil Jackson
290d5fe70f Comments, removed old-point code which did nothing. 2010-04-01 01:51:43 +01:00
Phil Jackson
f735945848 Fix `magit--is-branch-at-point-remote' 2010-04-01 01:48:28 +01:00
Phil Jackson
bf49b72cf0 Removed "remotes" from the branch name. 2010-04-01 01:17:09 +01:00
Phil Jackson
a86fab4e97 n/p now allow the user to move about in branch-view. 2010-03-30 23:08:50 +01:00
Phil Jackson
1ae36db891 Put branch name in text properties. 2010-03-30 23:07:09 +01:00
Phil Jackson
b261669efe Have `magit--branch-name-from-line' pull out the branch name. 2010-03-30 22:45:59 +01:00
Phil Jackson
79d7f46502 Bit more output. 2010-03-30 22:45:05 +01:00
Phil Jackson
e09ef67ea6 SHA1 gets colour. 2010-03-30 22:32:43 +01:00
Moritz Bunkus
ad686c5938 Provide useful functions for the branch list
The following functions are available from the branch list (which in
turn is made read-only):

- Checking out the branch in the current line
- Deleting the branch in the current line (prefix forces deletion even
if not merged into current branch); works on both local and remote
branches
- Manual and automatic merges of the branch in the current line into
the current branch
- Quitting the branch list

Includes updated documentation.
2010-03-30 14:53:45 +01:00
Moritz Bunkus
920c3b3a3c Guess the remote branch name from the branch's "merge" config item
If you have a local tracking branch, e.g. called 'test', and the
remote branch name is different than test (e.g. 'somwhere/master')
then the commands for retrieving the unpulled and unpushed commits was
calling "git log test..somwehere/test" which may or may not exist.
2010-03-30 13:45:53 +01:00
Phil Jackson
33ea60d690 If wazzup head is detached then describe it so. 2010-03-29 21:21:09 +01:00
Rémi Vanicat
c51582ee17 Using HEAD as branch-name when this is a detached HEAD 2010-03-29 21:14:56 +01:00
Rémi Vanicat
82b8d93731 check for the current branch before switching buffer
The wazzup buffer might already exist, so if we look at the branch
name in it, it might refer to another branch, even another repository.
2010-03-29 20:57:27 +01:00
Rémi Vanicat
7c80c10199 Added docstring for section's function 2010-03-27 11:33:55 +00:00
Rémi Vanicat
07c3225ed6 Better documentation and error reporting.
Corrected style error in comment, docstring, and error message, thanks to
checkdoc-minor-mode and Aspell.

Some indent and minor code style fix too
2010-03-27 11:33:55 +00:00
Phil Jackson
27ef54451b Finished off documentation. 2010-03-26 16:36:55 +00:00
Phil Jackson
c23b334d29 Merge branch 'log-grep' 2010-03-26 16:33:50 +00:00
Phil Jackson
c7c02c2f20 Added the command `magit-log-grep' (no keybinding). 2010-03-26 16:33:32 +00:00
Phil Jackson
29395e0d46 `magit-refresh-log-buffer' can now take more than one (git commandline) argument. 2010-03-26 16:31:40 +00:00
Phil Jackson
f9283aaa0d Merge remote branch 'refs/remotes/philjackson/svn-find-rev' 2010-03-26 14:00:13 +00:00
Phil Jackson
0fc398039d Merge commit 'refs/merge-requests/11' of git://gitorious.org/magit/mainline 2010-03-20 16:24:05 +00:00
Phil Jackson
5dc924748a Merge commit 'refs/merge-requests/14' of git://gitorious.org/magit/mainline 2010-03-20 16:22:37 +00:00
Rémi Vanicat
bb74ce61af Show the graph in wazzup. 2010-03-20 13:33:31 +01:00
Rémi Vanicat
8c16b10141 Use view-mode for the *magit-process* buffer
Now, q will bury the buffer, and several other keybindig will be
available
2010-03-20 13:16:58 +01:00
Rémi Vanicat
ed0ad8eff7 use --pretty=format: * %H %s where needed
The current magit-wash-log is made for commit with graph, so we must at least use
--pretty=format: * %H %s or the --graph for it to work as expected.
2010-03-20 13:14:21 +01:00
Hannu Koivisto
ea0812f119 Add command magit-reset-head-hard.
Intended to be bound to X instead of magit-reset-working-tree for those who
feel it is a more consistent pair for x.  Suggests HEAD and therefore works
like magit-reset-working-tree by default.  Eliminates need to use C-u x.
2010-03-18 23:25:58 +02:00
Hannu Koivisto
8020b0396a Add command magit-toggle-file-section.
For those who never want to toggle at hunk granularity.
2010-03-18 23:25:58 +02:00
Hannu Koivisto
94ca78a86f Add command magit-goto-parent-section. 2010-03-18 23:25:58 +02:00
Hannu Koivisto
6a1bb4f644 Fix magit-get-top-dir from ruining paths with symlinks.
One might argue that this also makes it work better in a case when GIT_DIR
points outside of a work tree, but because in that case any directory is a
valid "top dir" from GIT's point of view, that is debatable.  But at least
one can use Magit in that case by first making sure that default-directory
is the top dir and then executing magit-status.
2010-03-18 23:25:58 +02:00
Hannu Koivisto
01d58d4385 Fix magit-log-edit-mode keymap definition and activation.
Rely on the standard define-derived-mode functionality.
2010-03-18 23:25:58 +02:00
Phil Jackson
0074a3185c Merge branch 'fancy-log-output'. 2010-03-16 13:34:44 +00:00
Phil Jackson
6f9993cbd4 Remove 'HEAD' from ref list. 2010-03-14 14:46:56 +00:00
Phil Jackson
a4cbd5ecd3 Refs matching was too greedy and causing some logs not to render. 2010-03-14 14:45:50 +00:00
Phil Jackson
d43a23b48f Merge remote branch 'refs/remotes/philjackson/fancy-log-pt1'
Conflicts:
	magit.el
2010-03-14 14:42:50 +00:00
Alexey Voinov
37731ad567 Replaced call-process-region with start-file-process and wait.
call-process-region doesn't work with remote tramp
directories. Staging of diff hunks was broken.
2010-03-12 17:43:18 +00:00
Rémi Vanicat
a291507171 In magit-ignore-file, add a new line if there wasn't one in the ignore file 2010-03-12 18:11:14 +01:00
Alexey Voinov
7ca25460fa emulate append-to-file, because it doesn't work over tramp 2010-03-12 18:11:14 +01:00
Pavel Holejsovsky
3d2321b317 Make async git invocation work on cygwin.
Forces emacs to use pipes for communication with git subprocess.
Although default PTY method should work too, there is probably
something broken in cygwin causing that resulting process never
receives any input and hangs forever.

In any case, setting communication to 'pipe' is recommended by
start-process docs anyway for background processes, as it is usually
faster and more efficient.
2010-03-11 14:12:30 +01:00
Phil Jackson
db53f15cb5 Merge remote branch 'refs/remotes/AlexeyVoinov/git-svn-fixes' 2010-03-11 11:18:30 +00:00
Alexey Voinov
4e59fade68 Fixed svn-ref-info for most non-standard layouts 2010-03-11 13:32:28 +03:00
Alexey Voinov
f65dfce86e magit-get-all is wrapper for git config --get-all 2010-03-11 13:20:41 +03:00
Phil Jackson
dddfe3035e Highlight only the diff markers (not the text after them). 2010-03-10 21:43:11 +00:00
Phil Jackson
f7f383bf1a Removed redundant call from `magit-get-svn-ref-info'. 2010-03-10 21:38:56 +00:00
Phil Jackson
9325431ad4 Added `magit-omit-untracked-dir-contents' to optionally stop magit listing everything in an untracked directory. 2010-03-10 21:38:04 +00:00
Phil Jackson
282303265f Merge remote branch 'refs/remotes/philjackson/git-svn-fixes-and-features' 2010-03-10 21:29:42 +00:00
Phil Jackson
10f88917ca Bug fix: Commit buffer will fill if the commit is current and the buffer dead. 2010-03-10 21:21:33 +00:00
Phil Jackson
f9f1c00c78 C-u will now keep the index when stashing. 2010-03-10 21:19:46 +00:00
Phil Jackson
a421f9f936 Merge remote branch 'refs/remotes/philjackson/squashable-merges' 2010-03-10 21:12:32 +00:00
Phil Jackson
131f9d1db3 Merge remote branch 'refs/remotes/philjackson/magit-completing-read' 2010-03-10 21:08:32 +00:00
Rémi Vanicat
dc48483ad6 Make magit ask for ssh passphrase
Thanks to Rüdiger Sonderfeld <ruediger@c-plusplus.de>
2010-02-23 08:00:47 +01:00
Phil Jackson
f8f6a2c103 Use `magit-present-log-line-function'. 2009-12-16 14:57:16 +00:00
Rémi Vanicat
cea34e5f8c [Tramp] Two more fix, make staging with magit on tramp dir possible 2009-11-09 11:14:44 +02:00
Rémi Vanicat
3b661f5db4 Always use magit-git-standard-options when calling git 2009-11-09 11:14:44 +02:00
Phil Jackson
dcbb449238 Box around labels. 2009-11-08 15:59:58 +00:00
Phil Jackson
5661df2222 Better label colours for lighter backgrounds. 2009-11-08 15:59:44 +00:00
Phil Jackson
02432300e1 Highlight refs according to their origin. 2009-11-08 14:54:53 +00:00
Marius Vollmer
d5b60fc53f Use --decorate=full so that it works again with Git 1.6.4.
* magit.el (magit-configure-have-decorate):
(magit-refresh-log-buffer): Here.
2009-11-08 13:45:20 +00:00
Marius Vollmer
78c098361c Use --decorate=full so that it works again with Git 1.6.4.
* magit.el (magit-configure-have-decorate):
(magit-refresh-log-buffer): Here.
2009-11-07 20:37:43 +02:00
Phil Jackson
83992a9ec2 `magit-svn-find-rev' now supports the prefix arg.
* magit.el (magit-svn-find-rev): Prefix support for branch name.
* magit.texi: Documenting magit-svn-find-rev.
2009-11-06 14:52:33 +00:00
Phil Jackson
869c6059b6 Basic functionality, only asking for revision. 2009-11-04 21:46:06 +00:00
Phil Jackson
c90f134a74 Moved graph to the second column. 2009-11-02 10:34:25 +00:00
Phil Jackson
2ec5ee71f1 Highlighting of sha and graph in log buffer. 2009-11-02 10:24:21 +00:00
Phil Jackson
e3a37dbc39 Set the remote string to the svn url and revision when in a git-svn repo. 2009-10-28 20:41:43 +00:00
Phil Jackson
8ea39540d9 A simple caching mechanism to ease the `magit-get-svn-ref-info' pain.
* magit.el: Every call to `magit-get-svn-ref-info', post the first, retrieves a cached list.
2009-10-28 20:37:35 +00:00
Phil Jackson
3bfe230051 More detailed and structured information from git-svn.
* magit.el (magit-svn-enabled): alist of git-svn information returned.
2009-10-28 20:33:35 +00:00
Phil Jackson
c368295a32 completing-read-configuration: Great with anything-completing-read' or perhaps ido-completing-read'.
* magit.el: Added `magit-completing-read' variable, replaced `completing-read' references.
2009-10-28 20:19:02 +00:00
Phil Jackson
333e7d0cb7 Squashable, manual merges.
* magit.el (magit-manual-merge): Given a prefix arg, add --squash and remove --no-ff.
* magit.texi: Docs for the above.
2009-10-28 20:13:28 +00:00
Phil Jackson
ee01adf1f3 `magit-get-svn-ref' now emulates the git-svn way of remote fetching.
* magit.el (magit-get-svn-ref): Parse log output for the remote svn url.
2009-10-28 19:54:11 +00:00
Marius Vollmer
e38987412d Produce cleaner status buffer for unmerged files.
By ignoring duplicate entries for the unmerged files.
2009-09-06 20:27:18 +03:00
Marius Vollmer
2a8bb03a6f Towards 0.8. 2009-09-06 18:06:47 +03:00
Marius Vollmer
fb7b135220 Don't use the heavy machinery to run "git update-index".
And ignore exit code.
2009-08-18 11:46:38 +03:00
Marius Vollmer
c8c6e01a15 Refresh the index before constructing the status buffer.
This should get rid of files that are spuriously listed as modified,
while they in fact aren't.
2009-08-17 20:10:08 +03:00
Marius Vollmer
60ae735a10 Speed up washing of untracked files a bit. 2009-08-17 20:07:09 +03:00
Marius Vollmer
6838ae135c Hide diffs by default again.
* magit.el (magit-wash-raw-diff): Here.
2009-07-28 21:58:12 +03:00
Marius Vollmer
843814ac25 Make sure current-prefix-arg is a cons before caring it. 2009-07-28 02:32:19 +03:00
Marius Vollmer
ea6105fbbf Support for magit-repo-dirs and nice completion based on it.
Thanks to Travis B. Hartwell for the initial implementation!
2009-07-28 02:25:44 +03:00
Marius Vollmer
31b8be948a Only revert buffers that belong to the current repo. 2009-07-28 00:21:34 +03:00
Marius Vollmer
3731a18b49 Reinitialize modes when reverting file contents.
* magit.el (magit-revert-buffers): Here, by passing nil for
preserve-modes in the call to revert-buffer.
2009-07-28 00:05:07 +03:00
Marius Vollmer
9dfd604cd8 Optionally stage also untracked files in magit-stage-all. 2009-07-27 23:47:21 +03:00
Marius Vollmer
aec91c216f Stage all untracked files when on "Untracked files" title.
* magit.el (magit-stage-item): Here.
2009-07-27 23:15:56 +03:00
Marius Vollmer
6e33fdf6c7 Use diff-index and diff-files for the status buffer.
Instead of a --numstat diff.  This gives more information.

* magit.el (magit-insert-diff-title): Factored out of
magit-wash-diff-section.  Don't handle mode changes separately from
content changes.
(magit-wash-raw-diffs, magit-wash-raw-diff): New.
(magit-wash-numstat-diffs, magit-wash-numstat-diff): Removed.
(magit-insert-unstaged-changes): Use git diff-files.
(magit-insert-staged-changes): Use git diff-index.
2009-07-27 23:02:02 +03:00
Marius Vollmer
3e77accab9 Document why empty diff sections are no problem.
Remove debug output for numstat diffs.
2009-07-27 22:03:35 +03:00
Marius Vollmer
d5caf3c15a Do not run Git via the shell, ever. 2009-07-15 02:15:54 +03:00
Marius Vollmer
06675c5b7d Fix "resolge" type in error message. 2009-07-15 00:48:26 +03:00
Marius Vollmer
bd8fca2fb7 Make 'a' and 'v' work with whole diffs.
* magit.el (magit-apply-diff-item): Actually use *magit-tmp* as input
when running the command, instead of ignoring it.  D'oh.
2009-07-15 00:42:33 +03:00
Marius Vollmer
ad04fba40a Fix -U for diffs in the status buffer. 2009-06-21 22:13:21 +03:00
Marius Vollmer
aac73da95d Fix display of unmerged paths.
* magit.el (magit-wash-diff-section): Pick out 'file' from match data.
2009-06-21 22:09:35 +03:00
Marius Vollmer
46b462bc24 Hide status diffs by default again.
* magit.el (magit-wash-diff): By binding magit-section-hidden-default
appropriately here...
(magit-wash-numstat-diff): ...and here.
2009-06-08 21:37:16 +03:00
Marius Vollmer
c1b0da8afd Don't include git-svn branches in the 'interesting branches'.
* magit.el (magit-list-interesting-refs): Here.
2009-06-08 01:09:48 +03:00
Marius Vollmer
2c9e6d7ee4 Make magit-ref-exists-p work.
* magit.el (magit-ref-exists-p): Use correct invocation and turn exit
code into a boolean.  (Saturday night hacking sessions are not my
forte.  Sundays on the other hand...)
2009-06-07 22:05:07 +03:00
Marius Vollmer
6fcff5f170 Cosmetics. 2009-06-07 22:05:07 +03:00
Marius Vollmer
c208d194b6 Directly look for git-svn ref name, don't use magit-list-interesting-refs.
* magit.el (magit-get-svn-ref): Here, by using magit-ref-exists-p.
2009-06-07 22:05:05 +03:00
Marius Vollmer
03329dbfc3 Only discard staged diffs for files that don't have unstaged changes.
The unstaged changes will be discarded, too, which might be unexpected.

* magit.el (magit-discard-item): Here.
2009-06-07 21:42:42 +03:00
Marius Vollmer
d7be60af1c Don't allow slashes in remote nicknames.
* magit.el (magit-list-interesting-refs): Here.
(magit-maybe-create-local-tracking-branch): And here.
2009-06-07 21:41:09 +03:00
Steve Purcell
29eafdc993 Fix display of unpushed/unpulled git-svn patches
git-svn remotes are listed by "git show-ref" in a pattern that magit-list-interesting-refs did
not support, e.g. "refs/remotes/git-svn".
2009-06-07 21:24:47 +03:00
Marius Vollmer
b2072a3604 It' magit-wash-diff-section, not magit-wash-section-diff...
* magit.el (magit-wash-diff): Here.
2009-06-07 21:17:07 +03:00
Marius Vollmer
56df9cac09 Don't use make-variable-buffer-local during mode setup.
* magit.el (magit-mode): Use make-local-variable instead.
2009-06-06 23:49:56 +03:00
Marius Vollmer
fb7ede719c Delay inserting and washing of big diffs.
* magit.el (magit-set-section-needs-refresh-on-show): New.
(magit-section-set-hidden): Call magit-refresh when a
'needs-refresh-on-show' section is shown.
(magit-show-level): Wrap it in magit-with-refresh.
(magit-wash-diff, magit-wash-diff-section): Factored washing and
section construction into seperate functions.
(magit-insert-diff, magit-wash-numstat-diffs,
magit-wash-numstat-diff): New.  Use magit-insert-diff for visible
sections or for small changes.
(magit-insert-unstaged-changes): Use a numstat diff instead of a full diff.
(magit-insert-staged-changes): Likewise.
2009-06-06 23:49:02 +03:00
Marius Vollmer
98e2b50a52 Be robust against the *magit-process* buffer getting killed.
* magit.el (magit-run*): Only consider Git to be running when
the *magit-process* buffer still exists.
2009-06-06 19:50:16 +03:00
Marius Vollmer
a76f44c1d8 Make discarding staged diffs work.
* magit.el (magit-discard-diff): Added stagedp parameter and checkout
from HEAD if it is true.
(magit-discard-item): Use it.
2009-06-06 19:42:02 +03:00
Marius Vollmer
01f37a8c2d Don't mess with the global value of line-move-visual.
* magit.el (magit-mode): Make line-move-visual buffer local before
setting it.  Thanks Leo!
2009-06-06 19:29:52 +03:00
Marcin Bachry
cd4f15f314 Explicitly disallow rewriting history from the first commit.
* magit.el (magit-rewrite-start): Use magit-commit-parents to find
base commit for rewrite and signal error if there isn't any.
2009-06-06 19:23:02 +03:00
Marcin Bachry
7700954ee4 Fix shell escaping.
* magit.el (magit-escape-for-shell): use literal argument to
replace-regexp-in-string function.
2009-06-06 19:16:35 +03:00
Marius Vollmer
65e5363170 Allow overriding of magit-commit-signoff per commit.
Signed-off-by: Marius Vollmer <marius.vollmer@gmail.com>
2009-06-06 15:23:08 +03:00
Marius Vollmer
1183c3af94 Don't use refs/heads/ prefix when checking out branches.
* magit.el (magit-list-interesting-refs): Here.
2009-06-06 15:02:58 +03:00
Marius Vollmer
e2fdbc2d01 Offer to create tracking branches when switching to a remote branch.
* magit.el (magit-ref-exists-p): New.
(magit-maybe-create-localtracking-branch): New.
(magit-checkout): Use it.
2009-06-06 15:02:55 +03:00
Marius Vollmer
2d5aff1b87 Use git show-ref to find interesting refs.
* magit.el (magit-list-interesting-refs): Use "git show-ref" instead
of trying to parse output of "git branch".  Return alist with name /
ref pairs.
(magit-read-rev, magit-get-svn-branch-name): Updated.
(magit-refresh-wazzup-buffer): Use magit-list-interesting-refs instead
of parsing "git branch" output.
2009-06-06 14:26:18 +03:00
Marius Vollmer
e0911af08e We are interested in refs not revs.
* magit.el (magit-list-interesting-refs): Renamed from
magit-list-interesting-revisions.  Updated all callers.
2009-06-06 13:40:29 +03:00
Marius Vollmer
824f0e0e05 Merge commit 'jwiegley/master' 2009-03-22 13:04:46 +02:00
Marius Vollmer
6f2d0955e5 Improve treatment of unmerged files in "Staged changes".
* magit.el (magit-wash-diff): Recognize "Unmerged path" lines and
create a diff section for it.
* magit.el (magit-unstage-item): Don't unstage unmerged files.
2009-03-22 01:48:43 +02:00
Marius Vollmer
9af5c9b707 When pulling, ask for branch if none is configured.
* magit.el (magit-pull): Here.
2009-03-22 01:21:02 +02:00
Marius Vollmer
27389b9e5e Make rebasing work again, and improve it a bit.
* magit.el (magit-rebase-info): Also look for .git/rebase-apply.
(magit-log-edit): Don't commit in the middle of a rebase, offer to
continue it instead.
(magit-add-log): Likewise.
2009-03-22 00:55:58 +02:00
John Wiegley
96de3a7863 A tiny bit of refactoring 2009-03-17 04:25:08 -04:00
John Wiegley
9a09235a07 When committing a merge, use .git/MERGE_MSG
If someone does a manual merge and then types 'c', Magit will now fill
the log-edit buffer with the contents of .git/MERGE_MSG as a starting
point.
2009-03-17 04:25:08 -04:00
John Wiegley
0d897e61c4 Preliminary support for "topic branches"
If you have a topic branch (any branch named t/foo), Magit will create a
section named Topics and show you all outstanding topic branches.
Hitting RET on a topic does a checkout.
2009-03-17 04:25:01 -04:00
John Wiegley
b45e638154 Added new ! command (magit-shell-command)
This gives users an easy way to interface with external tools like
"topgit".  You type !, followed by "tg create t/foo", and then
everything including magit refreshing the buffer gets handled
automatically.
2009-03-17 04:24:19 -04:00
Marius Vollmer
417dd46093 Elpanized.
From Tom Tromey.  Thanks!

* Makefile.am (elpa): New target to create elpa tarball.
* magit-pkg.el.in: New.
* configure.ac: Create magit-pkg.el from it.
* magit.el: Added autoload for magit-status.
2009-03-09 22:15:07 +02:00
Marius Vollmer
20f35de127 Released 0.7. 2009-03-08 18:51:35 +02:00
Marius Vollmer
5c7b6b2efe Make 'i' toggle the ignore flag for wazzup.
* magit.el (magit-write-file-lines): New.
(magit-wazzup-toggle-ignore): New, use it instead of magit-wazzup-ignore.
* magit.texi: Document it.
2009-03-08 14:42:55 +02:00
Marius Vollmer
d9f86642ec Merge commit 'remi/master' 2009-03-08 03:50:29 +02:00
Marius Vollmer
e57887dc2e Cache Git configuration per buffer, not globally.
Thanks to Alexey Voinov and Marcin Bachry!
2009-03-08 03:43:44 +02:00
Marius Vollmer
a868715885 Select the proper name for the svn branch.
Thanks to Travis B. Hartwell!

* magit.el (magit-get-svn-branch-name): New.
(magit-insert-unpulled-svn-commits, magit-insert-unpushed-svn-commits,
magit-svn-enabled): Use it.
2009-03-08 03:27:19 +02:00
Rémi Vanicat
6d2c6b7d98 in interactive merge, rename ours to current and their to merged.
When rebasing it's not clear which commit is ours, and which is
theirs, the new name should be clearer.
2009-03-02 10:43:56 +01:00
Marius Vollmer
07e316777f Make it work with tramp some more.
* magit.el (magit-shell-lines): Use magit-shell-command-to-string
instead of shell-command-to-string.
2009-03-01 21:45:02 +02:00
Marius Vollmer
a2d08222c6 Make standard options customizable.
* magit.el (magit-git-standard-options): Here, by using defcustom.
2009-03-01 21:35:44 +02:00
Marius Vollmer
3857ce227a Allow ignoring of branches in the Wazzup view.
* magit.el (magit-wazzup-ignore): New.
(magit-refresh-wazzup-buffer): Read wazzup-exclude and optionally omit
the branches listed in it.  Added 'all' parameter to control this.
(magit-wazzup): Show all branches with prefix.
(magit-ignore-item): Call magit-wazzup-ignore for wazzup branches.
* magit.texi: Document it.
2009-03-01 21:29:08 +02:00
Marius Vollmer
2fcdd916b9 Don't run shell for magit-file-lines.
* magit.el (magit-file-lines): Read contents into temporary buffer and
split into lines using split-string.
2009-03-01 20:59:44 +02:00
Marius Vollmer
e6a1fd4e70 Tell people that they are going to do a hard reset.
* magit.el (magit-reset-head): Reflect it in the prompt whether this
is going to be a hard reset or not.  Added optional argument instead
of using current-prefix-arg directly.
* magit.texi: Document it.
2009-03-01 15:09:39 +02:00
Rémi Vanicat
1eac6b70c6 Use ediff interactive merge to help conflict resolution.
Idea from smerge code, adapted to git, new key binding on "e"
2009-03-01 13:01:19 +01:00
Rémi Vanicat
5cd62fa9ac Removing one of the two "i" bindings 2009-03-01 13:01:19 +01:00
Jesse Alama
44763451f1 Permit cancelling log edits.
* magit.el: Permit cancelling log edits.

magit-log-edit-confirm-cancellation: New defcustom.
magit-log-edit-map: New keybinding: C-c C-k to cancel the log.
magit-log-edit-cancel-log-message: New function.
magit-pop-to-log-edit: Indicate that cancellation is possible.
2009-03-01 05:10:41 -04:00
John Wiegley
5c42f45f53 'C-u x' will do a hard reset 2009-03-01 05:10:41 -04:00
John Wiegley
8583b8c39d Made git-svn support usable for the average user
Previously it was insisting on a branch named "git-svn", but I'm not
sure if this is ever created by default.  Also, there is no need to call
"remote update", and if it is called asynchronously, it blocks the
subsequent call to svn fetch.
2009-03-01 05:10:40 -04:00
Marius Vollmer
63e78891d8 Only try to fit current section into window when it is not hidden.
* magit.el (magit-goto-next-section): Here.
2009-03-01 03:02:19 +02:00
Ian Eure
e4032c3d17 Allow magit to work with Tramp. 2009-02-28 19:29:41 +02:00
Marius Vollmer
549a2cb836 No idea how to present tags in the UI. 2009-02-28 19:25:20 +02:00
Marius Vollmer
5a1039cd6f Show correct filenames in the "Pending changes" section.
* magit.el (magit-diff-line-file): Don't insist on "a/..." being the
first file.
2009-02-28 19:22:22 +02:00
Marius Vollmer
8652dc979c Make it an option to stage everything on magit-log-edit.
* magit.el (magit-commit-all-when-nothing-staged): Added ask-stage choice.
(magit-log-edit): Implement it.
2009-02-28 19:16:31 +02:00
Marius Vollmer
144716f26e Tentative plan for 0.7. 2009-02-28 17:05:02 +02:00
Steve Purcell
99d518bba7 Show unpushed/pulled commits from a git-svn remote in magit-status 2009-02-28 17:01:16 +02:00
Marius Vollmer
24a0985910 Unbreak magit-remote-update for git-svn users.
* magit.el (magit-remote-update): Don't try to run two git commands
asynchronously at the same time, stupid.
2009-02-28 16:49:23 +02:00
Marius Vollmer
ef479d6b5a Made "git commit --all" more explicit.
* magit.el (magit-log-edit-get-field): New.
(magit-commit-all-when-nothing-staged): New.
(magit-log-edit): Set 'commit-all field accordingly.
(magit-log-edit-commit): Use that field to control "--all" option.
2009-02-20 01:17:37 +02:00
Marius Vollmer
a78f8b6019 Allow '-' and '_' in log-edit field names.
* magit.el (magit-log-header-end, magit-log-edit-get-fields): Here.
2009-02-20 01:15:26 +02:00
David Wallin
3efeed124e magit-goto-next-section: when moving down to the next section, try to fit the
whole hunk in the window
2009-02-19 23:09:26 +02:00
John Wiegley
b991100ce6 Several improvements to the whazzup command
1. Don't report a branch if it has no commit in common with HEAD.  This
   is for people who keep alternate histories in their repositories.

2. Don't report a branch if another branch with the same basename and
   commit as HEAD has already been reported.  Thus, if a branch "foo"
   with 5 unpulled commits was pushed to origin, don't display both
   "foo" and "origin/foo" in the whazzup buffer, since they reflect the
   same thing.
2009-02-19 15:01:32 -04:00
Marius Vollmer
e9bed9b1e2 Fixlet to make magit-status work again when called from a non-Git dir.
* magit.el (magit-get-top-dir): It's default-directory not
default-dir, stupid.
2009-02-19 13:44:41 +02:00
Marius Vollmer
47cffef546 Fixlet to make the log work again.
* magit.el (magit-configure-have-graph): Removed leftover %s from
format string.
2009-02-18 17:53:54 +02:00
Marius Vollmer
3300960cad Merge commit 'jwiegley/master' 2009-02-16 23:59:54 +02:00
John Wiegley
bcb59cac51 Made behavior of M-H and M-h consistent for diffs 2009-02-15 21:38:44 -04:00
John Wiegley
c87154d7f6 Use display-buffer, not pop-to-buffer, when showing magit-process after a delay 2009-02-15 21:08:57 -04:00
Marius Vollmer
cdc036915f Fix mode line process status.
* magit.el (magit-prefix-p): Compare components with equal so that it
works for strings.
(magit-process-indicator-from-command): Take
magit-git-standard-options into account when choping off the head.
2009-02-16 00:29:45 +02:00
Marius Vollmer
bded317bc8 Use Git cherry-pick also for 'a' and Git revert for 'v'.
* magit.el (magit-cherry-pick-commit): Removed, replaced with
magit-apply-item.
(magit-revert-commit): Likewise.
(magit-apply-commit): Use git cherry pick and optionally do everything
magit-cherry-pick-commit and magit-revert-commit could do.
2009-02-15 23:58:46 +02:00
Marius Vollmer
1e3f94437e Pass "--no-pager" to Git.
* magit.el (magit-git-standard-options): New.  Changed almost all uses
of magit-git-executable to also pass magit-git-standard-options.
2009-02-15 23:58:43 +02:00
Marius Vollmer
35ea9ab265 Improve message when discarding changes in a region.
* magit.el (magit-discard-item): Here.
2009-02-15 20:15:46 +02:00
Marius Vollmer
b523d9c15e Don't use dynamic scoping.
* magit.el (magit-refresh-status, magit-insert-staged-changes):
Explicitly pass no-comment parameter.
* magit.el (magit-show-stash): Use 'stash', not 'info.
2009-02-15 20:13:13 +02:00
Marius Vollmer
2913ea0220 Make 'sure' that taking a snapshot does not revert buffers wrongly.
* magit.el (magit-stash-snapshot): Wrap calls to magit-run in one
magit-with-refresh so that magit-revert-files is only called once.
Calling it twice within one second does not work.
2009-02-15 20:00:35 +02:00
John Wiegley
c97fa1a0c3 If SPC and DEL are used within a normal text region, just scroll up/down. 2009-02-14 23:58:29 -04:00
Marius Vollmer
d7ae65a579 Distinguish "new file" and "new mode".
* magit.el (magit-wash-diff): Here.
2009-02-15 03:28:31 +02:00
Marius Vollmer
24677b0c7a Put stashes into *magit-stash* so that magit-currently-shown-stash works. 2009-02-15 03:23:45 +02:00
Marius Vollmer
2958f9cfd4 Pass -U arg to diff correctly.
* magit.el (magit-refresh-diff-buffer): Don't cons U arg onto 'args'.
2009-02-15 03:23:17 +02:00
Marius Vollmer
b1eec95572 Fix applying parts of patches in reverse.
* magit.el (magit-insert-hunk-item-region-patch): Pass through "+"
lines for reverse patches.
(magit-apply-hunk-item*): New, factored out of magit-apply-hunk-item
and magit-apply-hunk-item-reverse.
(magit-apply-hunk-item-reverse): New.  Use it instead of passing
"--reverse" to magit-apply-hunk-item so that
magit-insert-hunk-item-region-patch knows whether we are applying in
reverse or not.
2009-02-15 03:11:43 +02:00
Marius Vollmer
a080ca01c1 Clean up the messages produced by magit-init a bit.
* magit.el (magit-init): Message fixes.  Use yes-or-no-p for
potentially destructive operations.
(magit-status): Message fixes.
2009-02-15 02:26:21 +02:00
Marius Vollmer
b670b16b33 Merge 'voins/init'. 2009-02-15 02:11:06 +02:00
Marius Vollmer
401c548dc5 More info for '?'.
* magit.el (magit-describe-item): Add magit-section-context-type.
2009-02-15 02:06:53 +02:00
Marius Vollmer
1b4094e3de Removed binding for 'K', run git clean when hitting 'k' on the section title.
* magit.el (magit-discard-item): Run git clean when point is on the
"Untracked files" section title.
* magit.texi: Document this.
2009-02-15 02:06:06 +02:00
Marius Vollmer
b627c9203a Merge commit 'voins/diff' 2009-02-15 01:53:00 +02:00
Marius Vollmer
9fc7465d61 Do not use '-x' with git clean.
I am afraid that would surprise to many people since "removing
untracked files" means removing the ones listed in the status buffer.
2009-02-15 01:50:11 +02:00
Marius Vollmer
62d9f73aea Merge commit 'voins/clean' 2009-02-15 01:47:44 +02:00
John Wiegley
d38c05a5ac M-h and M-H now hides the whole current file/buffer, and M-s/S shows it. 2009-02-15 01:15:55 +02:00
John Wiegley
7910b4c3dd When popping to the magit-process after a delay, goto point-max. 2009-02-15 01:14:50 +02:00
John Wiegley
efdd97b0b0 For git-svn repositories, 'f' runs git svn fetch in addition to remote update. 2009-02-15 01:09:54 +02:00
Marius Vollmer
e7ef2256e2 Optionally popup the process buffer for asynchronous commands.
From John Wiegly.

Defines a number of seconds, after which magit will automatically
popup the magit-process buffer so the user can see what git is up to.
Off by default.  I use this because sometimes when a commit or push
takes more than an expected amount of time, I start to wonder what
happened.
2009-02-15 00:58:46 +02:00
Marius Vollmer
8b4614b52a Made commits asynchronous, in case there is a long-running pre-commit hook.
* magit.el (magit-run*): Send input to asynchronous processes.
(magit-run-async-with-input): New.
(magit-log-edit-commit): Use it.
2009-02-15 00:50:54 +02:00
John Wiegley
7725bfa2b8 In magit-process-filter, use save-current-buffer instead of save-excursion.
Otherwise, the location of point gets messed up for people watching the
buffer.
2009-02-15 00:39:56 +02:00
John Wiegley
a2e14e528f New command "Z" saves an instant of your index and working in the stash.
This is different from regular stashing because there is no prompting for a
name, and the stash is immediately re-applied.  It's just a way of taking a
quick snapshot of your working tree, so you can come back to later if need
be.

For example, if you had just made a lot of changes to your project, and then
needed to make another sweeping change before you could commit again, this
would let you safely store your changes without having to resort to a branch.
2009-02-15 00:39:38 +02:00
John Wiegley
0836f17507 Always insert the "Git finished" message at the end of the process buffer. 2009-02-15 00:36:34 +02:00
Alexey Voinov
e66d174f68 Allow smaller or larger hunks when diffing
The other day I hacked some file, and all changes obviously split in
two commits logically, but I can't do that because changes from
"different commits" were to close to each other and diff shows them
ina single hunk. There's possibility in git add -i to split current
hunk into smaller ones in such situations. I wanted to do this without
leaving emacs.

Now magit have control over -U<n> option to git-diff.
2009-02-12 14:53:18 +03:00
Marius Vollmer
2e17b9e2f7 Performance hack.
* magit.el (magit-insert-section): Use char-before instead of looking-back.
2009-02-12 01:40:00 +02:00
Alexey Voinov
dad98cea88 Handle fresh empty repository.
It was imposible to see what was staged for a first commit on a fresh
git repository. The only visible lines was fatal error messages from
git. Now diff against null tree object is shown in magit status buffer
if nothing was yet commited to the repository. The cost is 15-byte
object added to the repo, but it shuld disappear on first call to git
gc.
2009-02-11 13:37:16 +03:00
Alexey Voinov
9db7719b96 Support for git init 2009-02-11 13:31:19 +03:00
Alexey Voinov
32d59881a3 Support for git clean 2009-02-11 11:09:18 +03:00
Marius Vollmer
f89a045282 Only ever commit staged changes when amending a commit.
The usual behavior of committing all unstaged changes when there are
no staged changes makes it impossible to amend a commit just to fix
the commit message, which is a quite common thing to do.

* magit.el (magit-log-edit-commit): Do not pass "--all" to git commit
when amending.
2009-02-10 23:31:16 +02:00
Marius Vollmer
8a979172c8 Offer current branch as default when merging in Wazzup buffer.
* magit.el (magit-guess-branch): New.
(magit-manual-merge, magit-automatic-merge): Use it to get the default
rev to merge.
2009-02-09 03:58:47 +02:00
Marius Vollmer
b825b8899c Fixlet.
* magit.el (magit-find-buffer): Don't try to expand the
default-directory when it is nil.
2009-02-09 02:51:57 +02:00
Marius Vollmer
4ec9df0070 Make the Git executable customizable.
* magit.el (magit-git-executable): New.  Replaced all hardcoded uses
of "git" with it.
2009-02-08 23:06:49 +02:00
Marius Vollmer
59bd8eccc7 Use the digits to hide and show sections.
* magit.el (magit-section-lineage, magit-section-show-level, magit-show-level,
magit-define-level-shower-1): New.
(magit-mode-map): Bind the digits and M-digits to magit-show-level-N
and magit-show-level-N-all.
* magit.texi: Document it in a new chapter for Sections.
2009-02-08 01:35:56 +02:00
Marius Vollmer
64d24aa143 Make *magit-process* buffer read-only.
* magit.el (magit-run*, magit-process-sentinel, magit-process-filter):
Set buffer-read-only and inhibit-read-only as appropriate.
2009-02-07 23:03:28 +02:00
Marius Vollmer
2904e79a08 Make magit-status prompt less.
* magit.el (magit-status): Only read the top directory with e prefix
argument or when we are not inside a Git repository.
* magit.texi, NEWS: Document the new behavior.
2009-02-07 22:50:51 +02:00
Marius Vollmer
5f1c91c98d Merge commit 'purcell/run-git-svn-async' 2009-02-07 21:50:09 +02:00
Marius Vollmer
160dc9e03d Git log seems to forget a final newline sometimes.
* magit.el (magit-insert-section): Make sure the inserted text ends in
a newline.
2009-02-07 21:20:41 +02:00
Marius Vollmer
2fd55bb413 Wazzup not only for master.
* magit.el (magit-wazzup): Don't hardcode "master".
2009-02-05 22:50:19 +02:00
Marius Vollmer
94b8e5acc7 Make stash showing behave like showing commits.
* magit.el (magit-show-stash): New.
(magit-visit-item): Use it and pop to the buffer for stashes.
(magit-show-item-or-scroll-up, magit-show-item-or-scroll-down): Handle
stashes.
2009-02-05 22:42:26 +02:00
Marius Vollmer
d65806bd35 Offer completion for 'l' and 'L' and allow end to be specified as well.
* magit.el (magit-read-rev-range): Don't do anything special when
current-prefix-arg is set.
(magit-log): Use magit-read-rev-range instead of read-string.
(magit-log-long): Likewise.
2009-02-05 22:23:57 +02:00
John Wiegley
26d1719fe1 Don't duplicate magit buffers for the same project. 2009-02-04 03:35:56 -04:00
John Wiegley
ce3965cd8a Made the maximum log length configurable, and defaulting to 100 commits. 2009-02-04 00:33:39 -04:00
John Wiegley
f73a222ed5 Made l/L a little bit smarter. 2009-02-04 00:33:39 -04:00
John Wiegley
8898ef7926 Allow visting of stashes. 2009-02-04 00:33:39 -04:00
Steve Purcell
2ee532a01d Run git-svn dcommit and rebase asynchronously to avoid blocking the UI 2009-02-02 15:23:31 +01:00
Alexey Voinov
0c6172f180 Handle non-existent directories.
On non-existent directiories magit-get-top-dir was failing returning
garbage string like "zsh: cd: no such file or directory: ...". Now it
returns nil in such cases.

Signed-off-by: John Wiegley <johnw@newartisans.com>
2009-02-01 02:45:51 -04:00
Marius Vollmer
09e9d0d4f4 Credit John. Thanks! 2009-01-28 22:23:46 +02:00
John Wiegley
a2dd7a38bd Add a command, V, which shows information about the current branches. 2009-01-27 17:46:35 -04:00
John Wiegley
63b7adc76b Add a command, E, which calls git-interactive-rebase to initiate an
interactive rebase session using Emacs as the editor.
2009-01-27 17:30:04 -04:00
Marius Vollmer
6c8a668d24 Wazzup section fixes.
* magit.el (magit-refresh-wazzup-buffer): Use the branch name as the
title and a type of 'wazzup'.
2009-01-25 01:04:51 +02:00
Marius Vollmer
8f9fb43590 More flexible titles and types for magit-insert-section.
* magit.el (magit-insert-section): Revert earlier change: first
argument is used as the section title and the section type is usually
nil.  When the first argument is a pair, it specvifies both the title
and the type.
2009-01-25 01:03:24 +02:00
Marius Vollmer
3baf7f4372 Indentation fixes. 2009-01-25 00:41:03 +02:00
Marius Vollmer
a6bc339e9c Cleaned up section creation a bit.
* 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.
2009-01-25 00:39:03 +02:00
Marius Vollmer
583ecc7a12 Don't highlight the whole log or commit buffer.
* 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.
2009-01-24 21:08:25 +02:00
Marius Vollmer
528e13f4a7 Wazzup. 2009-01-24 20:57:53 +02:00
Marius Vollmer
60f09e0615 Clean up types and titles of sections.
* 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.
2009-01-24 20:56:42 +02:00
Marius Vollmer
0ce0a2524f Be smarter about correcting point. 2009-01-24 20:45:34 +02:00
Marius Vollmer
ef809ab4d3 Remove debugging messages. 2009-01-24 20:42:34 +02:00
Marius Vollmer
f95f34e695 Acknowledge Alexey. 2009-01-22 00:47:55 +02:00
Alexey Voinov
c691bc7800 Allow unmarking the marked commit.
Once, I hit "." instead of "r ." by accident and have found no way to
reset this mark. This just seems not to be right.
2009-01-22 00:47:50 +02:00
Alexey Voinov
76406385a2 Fixed visualization of marked commits
Face of previously marked commit was not restored when marking
another. Also red color looks really bad on dim gray
background. Orange is much better.
2009-01-22 00:46:06 +02:00
Marius Vollmer
c3830edab8 Make it work better on Windows. Thanks to Jeff Dik.
* magit.el (magit-find-buffer): Expand the default-directory.
2009-01-19 01:33:15 +02:00
Marius Vollmer
3433556d03 Merge commit 'fdr/sign-off' 2009-01-19 01:22:01 +02:00
Marius Vollmer
3e2905924a Merge commit 'cymacs/master' 2009-01-19 01:18:35 +02:00
Alexey Voinov
10fe99adb4 Ambiguity in call to git log fixed
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".
2009-01-19 01:06:04 +02:00
Marius Vollmer
3d34a7ca21 Make buffer saving behavior customizable.
Thanks, Geralt!

* magit.el (magit-save-some-buffers): New.
(magit-status): Use it.
2009-01-19 00:56:12 +02:00
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