   (let ((diff-mode-shared-map (copy-keymap svn-status-diff-mode-map))
         major-mode mode-name)
     (diff-mode)))
+
+(defun svn-status-diff-update ()
+  "Rerun the last svn diff command and update the *svn-diff* buffer."
+  (interactive)
+  (svn-status-save-some-buffers)
+  (save-window-excursion
+    (apply 'svn-status-show-svn-diff-internal svn-status-last-diff-options)))
 
 (defun svn-status-show-process-buffer ()
   "Show the content of the *svn-process* buffer"

    (setq revision (svn-status-read-revision-string
                    "Diff with files for version: " "PREV")))

  (let ((clear-buf t)
        (beginning nil))
    (dolist (line-info line-infos)

(defvar svn-transient-buffers)
(defvar svn-ediff-windows)
(defvar svn-ediff-result)
(defvar svn-status-last-diff-options nil)
(defvar svn-admin-last-repository-dir nil "The last repository url for various operations.")

;; Emacs 21 defines these in ediff-init.el but it seems more robust
