diff options
author | Alexandre Julliard <julliard@winehq.org> | 2006-03-19 10:06:10 +0100 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2006-03-19 12:30:14 -0800 |
commit | 2b1c0ef2e5d103efacb535f32fb142114490dc33 (patch) | |
tree | f65feef3d90bcbe4b8530810fdc58f72bfb751a1 /contrib/emacs | |
parent | 75a8180d4b6939aca03b2c6320f128469abd5879 (diff) | |
download | git-2b1c0ef2e5d103efacb535f32fb142114490dc33.tar.gz git-2b1c0ef2e5d103efacb535f32fb142114490dc33.tar.xz |
git.el: Added a function to diff against the other heads in a merge.
git-diff-file-merge-head generates a diff against the first merge
head, or with a prefix argument against the nth head. Bound to `d h'
by default.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to 'contrib/emacs')
-rw-r--r-- | contrib/emacs/git.el | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/contrib/emacs/git.el b/contrib/emacs/git.el index 5496a1bb5..ebd00ef9c 100644 --- a/contrib/emacs/git.el +++ b/contrib/emacs/git.el @@ -767,6 +767,16 @@ The default is to fall back to the git repository config, then to `add-log-maili (git-setup-diff-buffer (apply #'git-run-command-buffer "*git-diff*" "diff-index" "-p" "-M" "HEAD" "--" (git-get-filenames files))))) +(defun git-diff-file-merge-head (arg) + "Diff the marked file(s) against the first merge head (or the nth one with a numeric prefix)." + (interactive "p") + (let ((files (git-marked-files)) + (merge-heads (git-get-merge-heads))) + (unless merge-heads (error "No merge in progress")) + (git-setup-diff-buffer + (apply #'git-run-command-buffer "*git-diff*" "diff-index" "-p" "-M" + (or (nth (1- arg) merge-heads) "HEAD") "--" (git-get-filenames files))))) + (defun git-diff-unmerged-file (stage) "Diff the marked unmerged file(s) against the specified stage." (let ((files (git-marked-files))) @@ -959,6 +969,7 @@ The default is to fall back to the git repository config, then to `add-log-maili (define-key diff-map "=" 'git-diff-file) (define-key diff-map "e" 'git-diff-file-idiff) (define-key diff-map "E" 'git-find-file-imerge) + (define-key diff-map "h" 'git-diff-file-merge-head) (define-key diff-map "m" 'git-diff-file-mine) (define-key diff-map "o" 'git-diff-file-other) (setq git-status-mode-map map))) |