+(defun vc-hg-dir-status-files (dir files default-state update-function)
+ (apply 'vc-hg-command (current-buffer) 'async dir "status" "-C" files)
+ (vc-exec-after
+ `(vc-hg-after-dir-status (quote ,update-function))))
+
+(defun vc-hg-status-extra-header (name &rest commands)
+ (concat (propertize name 'face 'font-lock-type-face)
+ (propertize
+ (with-temp-buffer
+ (apply 'vc-hg-command (current-buffer) 0 nil commands)
+ (buffer-substring-no-properties (point-min) (1- (point-max))))
+ 'face 'font-lock-variable-name-face)))
+
+(defun vc-hg-status-extra-headers (dir)
+ "Generate extra status headers for a Mercurial tree."
+ (let ((default-directory dir))
+ (concat
+ (vc-hg-status-extra-header "Root : " "root") "\n"
+ (vc-hg-status-extra-header "Branch : " "id" "-b") "\n"
+ (vc-hg-status-extra-header "Tags : " "id" "-t") ; "\n"
+ ;; these change after each commit
+ ;; (vc-hg-status-extra-header "Local num : " "id" "-n") "\n"
+ ;; (vc-hg-status-extra-header "Global id : " "id" "-i")
+ )))
+
+;; FIXME: this adds another top level menu, instead figure out how to