           (message "Copied %S" func-name))
       (message "No current defun detected."))))
 
+(defun svn-status-diff-pop-to-commit-buffer ()
+  "Temporary switch to the `svn-status-buffer-name' buffer and start a commit from there."
+  (interactive)
+  (let ((window-conf (current-window-configuration)))
+    (svn-status-switch-to-status-buffer)
+    (svn-status-commit)
+    (set-window-configuration window-conf)
+    (setq svn-status-pre-commit-window-configuration window-conf)
+    (pop-to-buffer svn-log-edit-buffer-name)))
 
 (defun svn-status-activate-diff-mode ()
   "Show the `svn-process-buffer-name' buffer, using the diff-mode."


(defvar svn-status-buffer-name "*svn-status*" "Name for the svn status buffer")
(defvar svn-process-buffer-name "*svn-process*" "Name for the svn process buffer")

(defcustom svn-status-use-header-line
  (if (boundp 'header-line-format) t 'inline)

         (when svn-status-initial-window-configuration
           (set-window-configuration svn-status-initial-window-configuration)))
        (t
         (let ((bl `(,svn-log-edit-buffer-name "*svn-property-edit*" "*svn-log*" ,svn-process-buffer-name)))
           (while bl
             (when (get-buffer (car bl))
               (bury-buffer (car bl)))
