Add support for git-grep command.

Signed-off-by: Sébastien Gross <seb•ɑƬ•chezwam•ɖɵʈ•org>
grep is only required at compile time.

Signed-off-by: Sébastien Gross <seb•ɑƬ•chezwam•ɖɵʈ•org>
Change --line-number to -n to be compatible with old git versions.

Signed-off-by: Sébastien Gross <seb•ɑƬ•chezwam•ɖɵʈ•org>
Rename customize group for faces to rebase-mode-faces

This is to prepare the way for a (non-face) customize group for
rebase-mode itself.
Add option to auto-advance to the next line after selecting action

It's convenient in some situations to auto-advance point to the next
line after selecting an action for a given commit in the rebase-todo
buffer (after all, presumably you're done selecting the action for
that line). Add an option to automatically advance after selecting an
action.

This cuts out one keystroke for the common scenario of selecting an
action moving to the next line.
Merge commit '5cddbd6476e510f160e9e2b4f7e4bb3c0a0dba35' into renard/git-grep-support
remove useless (END) marker
Adds an option to determine when to set upstream while pushing.

This answers #562.

This option is useful in the case where the user uses multiple remotes
for a branch.
When pushing changes to the non upstream remote the user is not asked if
he wants to change its upstream.
However, when no upstream is set, the question is asked.
Don't call `diff-refine-hunk' when looking at git's combined diff.

fixes #539
Adds management of SVN externals through magit-svn-mode

Assuming the user has cloned all of their SVN externals into a single
directory which can be specified by magit-svn-externals-dir and then
symlinked in the appropriate places, "x" for "Fetch Externals" is added
to the menu and individually fetches and rebases each git svn repository
for the externals.
simplify code

also reformat comment
Merge branch 'danlamanna/git-svn-externals'
replace echo's by printf in the Makefile

echo is inconsistent regarding the treatment of escaped characters (like
'\n'). It replaces them in zsh, but not in bash, for instance. printf is
more portable.
Uses the same remote name on both side of the colon in git pull.
Rewrites magit-pull completely.

Adds documentation about the prefix functionality.
Makes the logic more apparent.
Fixes pull if no merge branch is specified
Uses a colon separated refspec for pull

`git pull origin master` does not store the information retrieved from
the remote in the local copy of the remote (refs/remotes/origin/master).
It uses FETCH_HEAD instead to store the information temporarily and then
does the merge. As a consequence, when comparing refs/heads/master and
refs/remotes/origin/master, it looks like the local branch is ahead and
it magit will display that there are some unpushed commits.

To alleviate the problem it is necessary to use the following command:
`git pull origin refs/heads/master:refs/remotes/origin/master`.
Merge branch 'dudebout/rewrite-magit-pull'
Merge commit '44517ab231dbc56323acd50d9cf78995107ed589' into mgalgs/auto-advance
Give a group-based name to magic-key buffers

* magit-key-mode.el: Give a specific name to magic-key buffers according to group used.
(magit-key-mode-buf-name): Now a format string.
(magit-key-mode-last-buffer): New internal var.
(magit-key-mode): Create a new buffer name specifying the group in use.
(magit-key-mode-kill-buffer): Kill magit-key-mode-last-buffer.