     (when (looking-at "   M /\\(.+\\)$")
       (svn-match-string-no-properties 1))))
 
+(defun svn-log-find-file-at-point ()
+  (interactive)
+  (let ((file-name (svn-log-file-name-at-point)))
+    (when file-name
+      (let ((default-directory (svn-status-base-dir)))
+        (find-file file-name)))))
+
 (defun svn-log-view-diff (arg)
   "Show the changeset for a given log entry.
 When called with a prefix argument, ask the user for the revision."

  (define-key svn-log-view-mode-map (kbd "p") 'svn-log-view-prev)
  (define-key svn-log-view-mode-map (kbd "n") 'svn-log-view-next)
  (define-key svn-log-view-mode-map (kbd "~") 'svn-log-get-specific-revision)
  (define-key svn-log-view-mode-map (kbd "=") 'svn-log-view-diff)
  (define-key svn-log-view-mode-map (kbd "e") 'svn-log-edit-log-entry)
  (define-key svn-log-view-mode-map (kbd "q") 'bury-buffer))


    (svn-status-get-specific-revision-internal
     (list (svn-status-make-line-info (svn-log-file-name-at-point)))
     (svn-log-revision-at-point))))

(defun svn-log-ediff-specific-revision ()
  "Call ediff for the file at point to view a changeset"
  (interactive)
  (let* ((cur-buf (current-buffer))
         (upper-rev (svn-log-revision-at-point))
         (lower-rev (number-to-string (- (string-to-number upper-rev) 1)))
         (file-name (svn-log-file-name-at-point))
         (default-directory (svn-status-base-dir))
         (upper-rev-file-name (when file-name
                                (cdar (svn-status-get-specific-revision-internal
                                       (list (svn-status-make-line-info file-name)) upper-rev))))
         (lower-rev-file-name (when file-name
                                (cdar (svn-status-get-specific-revision-internal
                                       (list (svn-status-make-line-info file-name)) lower-rev)))))
    ;;(message "%S %S" upper-rev-file-name lower-rev-file-name)
    (if file-name
        (let* ((ediff-after-quit-destination-buffer cur-buf)
               (newer-buffer (find-file-noselect upper-rev-file-name))
               (base-buff (find-file-noselect lower-rev-file-name))
               (svn-transient-buffers (list newer-buffer))
               (startup-hook '(svn-ediff-startup-hook)))
          (ediff-buffers base-buff newer-buffer startup-hook))
      (message "No file at point"))))

(defun svn-log-edit-log-entry ()
  "Edit the given log entry."
