                                             author
                                             svn-update-mark
                                             user-elide)
-                                      svn-status-info)))
+                                      svn-status-info))
+          (setq revision-width
+                (max revision-width
+                     (length (number-to-string local-rev))
+                     (length (number-to-string last-change-rev))))
+          (setq author-width (max author-width (length author))))
         (forward-line 1))
       ;; With subversion 0.29.0 and above, `svn -u st' returns files in
       ;; a random order (especially if we have a mixed revision wc)
+      (setq svn-status-default-column
+            (+ 6 revision-width revision-width author-width
+               (if svn-status-short-mod-flag-p 3 0)))
+      (setq svn-status-line-format (format " %%c%%c %%%ds %%%ds %%-%ds"
+                                           revision-width
+                                           revision-width
+                                           author-width))
       (setq svn-status-info (sort svn-status-info 'svn-status-sort-predicate)))))
 
 ;;(string-lessp "." "%") => nil

(defface svn-status-directory-face
  '((((type tty) (class color)) (:foreground "lightblue" :weight light))
    (((class color) (background light)) (:foreground "blue4"))
    (t (:weight bold)))
  "Face for directories in svn status buffers.
See `svn-status--line-info->directory-p' for what counts as a directory."

                 ((eq svn-process-cmd 'propdel)
                  (svn-status-update))))
          ((string= event "killed\n")
           (message "svn process killed"))
          (t
           (message "svn process had unknown event: %s" event))
          ;;(message (format "SVN Error: :%s:" event))
          (svn-status-show-process-buffer-internal t))))

