{"thread":{"id":"9484","subject":"[PATCH] git.el: Add support for interactive diffs.","startedAt":"2007-08-11T10:22:47Z","lastAt":"2007-08-11T10:22:47Z","messageCount":1,"participants":["Alexandre Julliard"],"isPatch":true,"patchVersion":1,"patchTotal":null},"messages":[{"id":"50473","messageId":"87k5s2wetk.fsf@wine.dyndns.org","threadId":"9484","inReplyTo":null,"subject":"[PATCH] git.el: Add support for interactive diffs.","fromName":"Alexandre Julliard","fromEmail":"julliard@winehq.org","sentAt":"2007-08-11T10:22:47Z","receivedAt":"2007-08-11T10:22:47Z","isPatch":true,"sender":{"key":"julliard@winehq.org","avatar":null},"body":"Signed-off-by: Alexandre Julliard <julliard@winehq.org>\n---\n contrib/emacs/git.el |    8 +++++++-\n 1 files changed, 7 insertions(+), 1 deletions(-)\n\ndiff --git a/contrib/emacs/git.el b/contrib/emacs/git.el\nindex f6102fc..214b75c 100644\n--- a/contrib/emacs/git.el\n+++ b/contrib/emacs/git.el\n@@ -965,7 +965,13 @@ Return the list of files that haven't been handled.\"\n (defun git-diff-file-idiff ()\n   \"Perform an interactive diff on the current file.\"\n   (interactive)\n-  (error \"Interactive diffs not implemented yet.\"))\n+  (let ((files (git-marked-files-state 'added 'deleted 'modified)))\n+    (unless (eq 1 (length files))\n+      (error \"Cannot perform an interactive diff on multiple files.\"))\n+    (let* ((filename (car (git-get-filenames files)))\n+           (buff1 (find-file-noselect filename))\n+           (buff2 (git-run-command-buffer (concat filename \".~HEAD~\") \"cat-file\" \"blob\" (concat \"HEAD:\" filename))))\n+      (ediff-buffers buff1 buff2))))\n \n (defun git-log-file ()\n   \"Display a log of changes to the marked file(s).\"\n-- \n1.5.3.rc4.70.gf909\n\n-- \nAlexandre Julliard\njulliard@winehq.org\n"}]}