   (message (concat "The *svn-status* buffer will be"
                    (if svn-status-sort-status-buffer "" " not")
                    " sorted.")))
+
+(defun svn-status-set-trac-project-root ()
+  (interactive)
+  (setq svn-trac-project-root
+        (read-string "Trac project root (e.g.: http://projects.edgewall.com/trac/): "
+                     svn-trac-project-root))
+  (when (yes-or-no-p "Save the new setting for svn-trac-project-root to disk? ")
+    (svn-status-save-state)))
+
+;; --------------------------------------------------------------------------------
+;; svn status trac integration
+;; --------------------------------------------------------------------------------
+(defun svn-trac-browse-timeline ()
+  "Open the trac timeline view for the current svn repository."
+  (interactive)
+  (unless svn-trac-project-root
+    (svn-status-set-trac-project-root))
+  (browse-url (concat svn-trac-project-root "timeline")))
+
 
 ;;;------------------------------------------------------------
 ;;; resolve conflicts using ediff

    (delete-region (point-min) (point-max))
    (setq svn-status-options
          (list
           (list "sort-status-buffer" svn-status-sort-status-buffer)
           (list "elide-list" svn-status-elided-list)))
    (insert (pp-to-string svn-status-options))


;;; Code:

(require 'easymenu)

;;; user setable variables
(defvar svn-status-verbose t "*Add '-v' to svn status call.")
(defvar svn-log-edit-file-name "++svn-log++" "*Name of a saved log file.")
