git.el: Added a function to open the current file in another window.
authorAlexandre Julliard <julliard@winehq.org>
Fri, 3 Nov 2006 16:41:46 +0000 (17:41 +0100)
committerJunio C Hamano <junkio@cox.net>
Sat, 4 Nov 2006 09:50:22 +0000 (01:50 -0800)
Bound to 'o' by default, compatible with pcl-cvs and
buffer-mode. Suggested by Han-Wen Nienhuys.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
contrib/emacs/git.el
index e283df2fdbc2e2104448721285824eeb87543116..08d6404bcbafced3c1a3ade06355865ae75a0f33 100644 (file)
@@ -910,6 +910,15 @@ and returns the process output as a string."
     (when (eq 'unmerged (git-fileinfo->state info))
       (smerge-mode))))
 
     (when (eq 'unmerged (git-fileinfo->state info))
       (smerge-mode))))
 
+(defun git-find-file-other-window ()
+  "Visit the current file in its own buffer in another window."
+  (interactive)
+  (unless git-status (error "Not in git-status buffer."))
+  (let ((info (ewoc-data (ewoc-locate git-status))))
+    (find-file-other-window (git-fileinfo->name info))
+    (when (eq 'unmerged (git-fileinfo->state info))
+      (smerge-mode))))
+
 (defun git-find-file-imerge ()
   "Visit the current file in interactive merge mode."
   (interactive)
 (defun git-find-file-imerge ()
   "Visit the current file in interactive merge mode."
   (interactive)
@@ -994,6 +1003,7 @@ and returns the process output as a string."
     (define-key map "M"   'git-mark-all)
     (define-key map "n"   'git-next-file)
     (define-key map "N"   'git-next-unmerged-file)
     (define-key map "M"   'git-mark-all)
     (define-key map "n"   'git-next-file)
     (define-key map "N"   'git-next-unmerged-file)
+    (define-key map "o"   'git-find-file-other-window)
     (define-key map "p"   'git-prev-file)
     (define-key map "P"   'git-prev-unmerged-file)
     (define-key map "q"   'git-status-quit)
     (define-key map "p"   'git-prev-file)
     (define-key map "P"   'git-prev-unmerged-file)
     (define-key map "q"   'git-status-quit)