1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2025-01-01 11:14:55 +00:00

(vc-hg-status-extra-header, vc-hg-status-extra-headers):

Generate extra status headers for a Mercurial tree.
This commit is contained in:
Sam Steingold 2008-06-04 14:04:28 +00:00
parent 50b3db29b3
commit fe4f86953e
2 changed files with 28 additions and 3 deletions

View File

@ -1,3 +1,8 @@
2008-06-04 Sam Steingold <sds@gnu.org>
* vc-hg.el (vc-hg-status-extra-header, vc-hg-status-extra-headers):
Generate extra status headers for a Mercurial tree.
2008-06-04 John Paul Wallington <jpw@pobox.com>
* echistory.el (electric-history-map): Define within defvar.

View File

@ -284,7 +284,7 @@
(defun vc-hg-annotate-command (file buffer &optional revision)
"Execute \"hg annotate\" on FILE, inserting the contents in BUFFER.
Optional arg REVISION is a revision to annotate from."
(vc-hg-command buffer 0 file "annotate" "-d" "-n"
(vc-hg-command buffer 0 file "annotate" "-d" "-n"
(when revision (concat "-r" revision)))
(with-current-buffer buffer
(goto-char (point-min))
@ -425,7 +425,7 @@ REV is the revision to check out into WORKFILE."
(:constructor vc-hg-create-extra-fileinfo (rename-state extra-name))
(:conc-name vc-hg-extra-fileinfo->))
rename-state ;; rename or copy state
extra-name) ;; original name for copies and rename targets, new name for
extra-name) ;; original name for copies and rename targets, new name for
(defun vc-hg-status-printer (info)
"Pretty-printer for the vc-dir-fileinfo structure."
@ -471,7 +471,7 @@ REV is the revision to check out into WORKFILE."
;; For copied files the output looks like this:
;; A COPIED_FILE_NAME
;; ORIGINAL_FILE_NAME
(setf (nth 2 last-added)
(setf (nth 2 last-added)
(vc-hg-create-extra-fileinfo 'copied file))
(setq last-line-copy t))
((and last-line-copy (eq translated 'removed))
@ -498,6 +498,26 @@ REV is the revision to check out into WORKFILE."
(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")
)))
;; XXX this adds another top level menu, instead figure out how to
;; replace the Log-View menu.
(easy-menu-define log-view-mode-menu vc-hg-outgoing-mode-map