   (interactive)
   (svn-status-apply-usermark-checked '(lambda (info) t) nil))
 
+(defun svn-status-store-usermarks (arg)
+  "Store the current usermarks in `svn-status-usermark-storage'.
+When called with a prefix argument it is possible to store different sets of marks."
+  (interactive "P")
+  (let ((file-list (svn-status-get-file-list-names t)))
+    (svn-puthash arg file-list svn-status-usermark-storage)
+    (message "psvn stored %d user marks" (length file-list))))
+
+(defun svn-status-load-usermarks (arg)
+  "Load previously stored user marks from `svn-status-usermark-storage'.
+When called with a prefix argument it is possible to store/load different sets of marks."
+  (interactive "P")
+  (let ((file-list (gethash arg svn-status-usermark-storage)))
+    (svn-status-apply-usermark-checked
+     '(lambda (info) (member (svn-status-line-info->filename-nondirectory info) file-list)) t)))
+
 (defvar svn-status-regexp-history nil
   "History list of regular expressions used in svn status commands.")
 

     ["Mark/Unmark modified/added/deleted" svn-status-mark-changed t]
     ["Mark/Unmark filename by extension" svn-status-mark-by-file-ext t]
     ["Mark/Unmark filename by regexp" svn-status-mark-filename-regexp t]
     )
    ["Hide Unknown" svn-status-toggle-hide-unknown
     :style toggle :selected svn-status-hide-unknown]

  (define-key svn-status-mode-mark-map (kbd "*") 'svn-status-mark-changed)
  (define-key svn-status-mode-mark-map (kbd ".") 'svn-status-mark-by-file-ext)
  (define-key svn-status-mode-mark-map (kbd "%") 'svn-status-mark-filename-regexp)
  (define-key svn-status-mode-mark-map (kbd "s") 'svn-status-store-usermarks)
  (define-key svn-status-mode-mark-map (kbd "l") 'svn-status-load-usermarks)
  (define-key svn-status-mode-mark-map (kbd "u") 'svn-status-show-svn-diff-for-marked-files))

(when (not svn-status-mode-search-map)
