mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-01-30 20:32:00 -08:00
Abbreviate the VC revision in vc-annotate's buffer name
* lisp/vc/vc-hooks.el (vc-use-short-revision): New variable. (vc-short-revision): New function. * lisp/vc/vc-annotate.el (vc-annotate-use-short-revision): New option... (vc-annotate): ... use it. * lisp/vc/vc-git.el (vc-git--rev-parse): Consult 'vc-use-short-revision'. * etc/NEWS: Announce this change (bug#67062).
This commit is contained in:
parent
9e0eeb2d49
commit
ea4cbb3aae
4 changed files with 32 additions and 3 deletions
6
etc/NEWS
6
etc/NEWS
|
|
@ -497,6 +497,12 @@ switch is used, commands to see the diff of the old revision ('d'),
|
|||
check out an old file version ('f') or annotate it right away ('a'),
|
||||
also work on revisions which precede renames.
|
||||
|
||||
---
|
||||
*** 'vc-annotate' now abbreviates the Git revision in the buffer name.
|
||||
When using the Git backend, 'vc-annotate' will use an abbreviated
|
||||
revision identifier in its buffer name. To restore the previous
|
||||
behavior, set 'vc-annotate-use-short-revision' to nil.
|
||||
|
||||
*** New option 'vc-git-file-name-changes-switches'.
|
||||
It allows tweaking the thresholds for rename and copy detection.
|
||||
|
||||
|
|
|
|||
|
|
@ -162,6 +162,11 @@ List of factors, used to expand/compress the time scale. See `vc-annotate'."
|
|||
:type '(repeat number)
|
||||
:group 'vc)
|
||||
|
||||
(defcustom vc-annotate-use-short-revision t
|
||||
"If non-nil, \\[vc-annotate] will use short revisions in its buffer name."
|
||||
:type 'boolean
|
||||
:group 'vc)
|
||||
|
||||
(defvar-keymap vc-annotate-mode-map
|
||||
:doc "Local keymap used for VC-Annotate mode."
|
||||
"a" #'vc-annotate-revision-previous-to-line
|
||||
|
|
@ -397,7 +402,10 @@ should be applied to the background or to the foreground."
|
|||
(save-current-buffer
|
||||
(vc-ensure-vc-buffer)
|
||||
(list buffer-file-name
|
||||
(let ((def (vc-working-revision buffer-file-name)))
|
||||
(let ((def (funcall (if vc-annotate-use-short-revision
|
||||
#'vc-short-revision
|
||||
#'vc-working-revision)
|
||||
buffer-file-name)))
|
||||
(if (null current-prefix-arg) def
|
||||
(vc-read-revision
|
||||
(format-prompt "Annotate from revision" def)
|
||||
|
|
|
|||
|
|
@ -1857,8 +1857,11 @@ This requires git 1.8.4 or later, for the \"-L\" option of \"git log\"."
|
|||
(defun vc-git--rev-parse (rev)
|
||||
(with-temp-buffer
|
||||
(and
|
||||
(vc-git--out-ok "rev-parse" rev)
|
||||
(buffer-substring-no-properties (point-min) (+ (point-min) 40)))))
|
||||
(apply #'vc-git--out-ok "rev-parse"
|
||||
(append (when vc-use-short-revision '("--short"))
|
||||
(list rev)))
|
||||
(goto-char (point-min))
|
||||
(buffer-substring-no-properties (point) (pos-eol)))))
|
||||
|
||||
(defun vc-git-next-revision (file rev)
|
||||
"Git-specific version of `vc-next-revision'."
|
||||
|
|
|
|||
|
|
@ -506,6 +506,18 @@ If FILE is not registered, this function always returns nil."
|
|||
(vc-call-backend
|
||||
backend 'working-revision file))))))
|
||||
|
||||
(defvar vc-use-short-revision nil
|
||||
"If non-nil, VC backend functions should return short revisions if possible.
|
||||
This is set to t when calling `vc-short-revision', which will
|
||||
then call the \\=`working-revision' backend function.")
|
||||
|
||||
(defun vc-short-revision (file &optional backend)
|
||||
"Return the repository version for FILE in a shortened form.
|
||||
If FILE is not registered, this function always returns nil."
|
||||
(let ((vc-use-short-revision t))
|
||||
(vc-call-backend (or backend (vc-backend file))
|
||||
'working-revision file)))
|
||||
|
||||
(defun vc-default-registered (backend file)
|
||||
"Check if FILE is registered in BACKEND using vc-BACKEND-master-templates."
|
||||
(let ((sym (vc-make-backend-sym backend 'master-templates)))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue