From: Alexandre Julliard Date: Sat, 11 Aug 2007 10:22:47 +0000 (+0200) Subject: git.el: Add support for interactive diffs. X-Git-Tag: v1.5.3-rc5~23 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=09afcd6933e8497c997205dda71d718e62b4de62;p=git.git git.el: Add support for interactive diffs. Signed-off-by: Alexandre Julliard Signed-off-by: Junio C Hamano --- diff --git a/contrib/emacs/git.el b/contrib/emacs/git.el index f6102fc34..214b75cf9 100644 --- a/contrib/emacs/git.el +++ b/contrib/emacs/git.el @@ -965,7 +965,13 @@ Return the list of files that haven't been handled." (defun git-diff-file-idiff () "Perform an interactive diff on the current file." (interactive) - (error "Interactive diffs not implemented yet.")) + (let ((files (git-marked-files-state 'added 'deleted 'modified))) + (unless (eq 1 (length files)) + (error "Cannot perform an interactive diff on multiple files.")) + (let* ((filename (car (git-get-filenames files))) + (buff1 (find-file-noselect filename)) + (buff2 (git-run-command-buffer (concat filename ".~HEAD~") "cat-file" "blob" (concat "HEAD:" filename)))) + (ediff-buffers buff1 buff2)))) (defun git-log-file () "Display a log of changes to the marked file(s)."