   (interactive)
   ;(message "show log info for: %S" (svn-status-marked-files))
   (svn-status-create-arg-file svn-status-temp-arg-file "" (svn-status-marked-files) "")
-  (svn-run-svn t t 'log "log" "--targets" svn-status-temp-arg-file))
+  (svn-run-svn t t 'log "log" "--targets" svn-status-temp-arg-file)
+  (save-excursion
+    (set-buffer "*svn-process*")
+    (log-view-mode)))
 
 (defun svn-status-info ()
   (interactive)
   (svn-status-create-arg-file svn-status-temp-arg-file "" (svn-status-marked-files) "")
   (svn-run-svn t t 'info "info" "--targets" svn-status-temp-arg-file))
 
-(defun svn-status-show-svn-diff ()
-  (interactive)
+(defun svn-status-show-svn-diff (arg)
+  (interactive "P")
   (let ((fl (svn-status-marked-files))
-        (clear-buf t))
+        (clear-buf t)
+        (revision (if arg (svn-status-read-revision-string "Diff with files for version: " "PREV") "BASE")))
     (while fl
-      (svn-run-svn nil clear-buf 'diff "diff" (svn-status-line-info->filename (car fl)))
+      (svn-run-svn nil clear-buf 'diff "diff" "-r" revision (svn-status-line-info->filename (car fl)))
       (setq clear-buf nil)
       (setq fl (cdr fl))))
   (svn-status-show-process-buffer-internal t)

             svn-status-get-specific-revision-file-info)))


(defun svn-status-ediff-with-revision ()
  "Run ediff on the actual file with a previous revision."
  (interactive)
  (svn-status-get-specific-revision t)
  (ediff-files
   (cdr (car svn-status-get-specific-revision-file-info))
   (car (car svn-status-get-specific-revision-file-info))))

                 "-F" (concat svn-status-temp-dir "svn-log-edit.txt")))
  (set-window-configuration svn-status-pre-commit-window-configuration))

(defun svn-log-edit-svn-diff (arg)
  (interactive "P")
  (set-buffer "*svn-status*")
  (svn-status-show-svn-diff arg))

(defun svn-log-edit-svn-log ()
  (interactive)
