David Kågedal <davidk@xxxxxxxxxxxxxx> writes: > Use prefix (C-u) to diff all marked files instead. > > Signed-off-by: David Kågedal <davidk@xxxxxxxxxxxxxx> > --- > contrib/emacs/git.el | 13 +++++++++---- > 1 files changed, 9 insertions(+), 4 deletions(-) > > For anyone who has used pcvs (or dsvn) this makes much more sense. The Looks sensible to me; Alexandre? > typical usage scenario is that you want to mark the files that are > relevant, and you do it incrementally by checking if file A is > relevant and has no strange changes by pressing = and then marking it, > proceeding to check file B by pressing = on it and potentially marking > it as well and so on. > > The current way that = works means that you have to check each file > first and remember which one you want to mark. Or diff everything and > then read through the whole diff and find match the output against the > files to mark. It is possible to do it like that as well, but it is > much more convenient to do it as described above, and there is a > strong precedent in emacs frontends to make the diff command only diff > the current file by default. > > The old behaviour can be restored by using C-u =. > > diff --git a/contrib/emacs/git.el b/contrib/emacs/git.el > index c30d20a..a3477a4 100644 > --- a/contrib/emacs/git.el > +++ b/contrib/emacs/git.el > @@ -772,6 +772,11 @@ Return the list of files that haven't been handled." > (setq file (pop files)) > (setq node (ewoc-next status node)))))))) > > +(defun git-current-file () > + "Return the file at point." > + (unless git-status (error "Not in git-status buffer.")) > + (ewoc-data (ewoc-locate git-status))) > + > (defun git-marked-files () > "Return a list of all marked files, or if none a list containing just the file at cursor position." > (unless git-status (error "Not in git-status buffer.")) > @@ -1138,10 +1143,10 @@ Return the list of files that haven't been handled." > (when (eq (window-buffer) (current-buffer)) > (shrink-window-if-larger-than-buffer))) > > -(defun git-diff-file () > - "Diff the marked file(s) against HEAD." > - (interactive) > - (let ((files (git-marked-files))) > +(defun git-diff-file (arg) > + "Diff the marked file(s) against HEAD, or the marked files if a prefix arg is given." > + (interactive "P") > + (let ((files (if arg (git-marked-files) (list (git-current-file))))) > (git-setup-diff-buffer > (apply #'git-run-command-buffer "*git-diff*" "diff-index" "-p" "-M" "HEAD" "--" (git-get-filenames files))))) > > -- > 1.6.0.rc2.7.gbf8a > > > -- > David Kågedal > -- > To unsubscribe from this list: send the line "unsubscribe git" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html