mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-11-27 07:37:33 +00:00
Add more branch support to vc-dir
Bug#25859: * lisp/vc/vc-dir.el (vc-dir-mode-map) Add "B" bindings. * lisp/vc/vc.el (vc-revision-history): New defvar. (vc-read-revision): Use vc-revision-history. (vc-print-branch-log): New function. * doc/emacs/maintaining.texi (VC Directory Commands): Document new bindings. * etc/NEWS: Mention new vc-dir bindings.
This commit is contained in:
parent
54319e7a24
commit
9e9d381ff0
@ -1301,7 +1301,7 @@ up a multi-file VC fileset to be acted on by VC commands like
|
||||
|
||||
The VC Directory buffer also defines some single-key shortcuts for
|
||||
VC commands with the @kbd{C-x v} prefix: @kbd{=}, @kbd{+}, @kbd{l},
|
||||
@kbd{i}, @kbd{D}, @kbd{L}, @kbd{G}, @kbd{I} and @kbd{v}.
|
||||
@kbd{i}, @kbd{D}, @kbd{L}, @kbd{G}, @kbd{I}, @kbd{O}, and @kbd{v}.
|
||||
|
||||
For example, you can commit a set of edited files by opening a VC
|
||||
Directory buffer, where the files are listed with the @samp{edited}
|
||||
@ -1332,6 +1332,21 @@ Do an incremental regular expression search on the fileset
|
||||
Apart from acting on multiple files, these commands behave much like
|
||||
their single-buffer counterparts (@pxref{Search}).
|
||||
|
||||
The VC Directory buffer additionally defines some branch-related
|
||||
commands starting with the prefix @kbd{B}:
|
||||
|
||||
@table @kbd
|
||||
@item B c
|
||||
Create a new branch (@code{vc-create-tag}).
|
||||
|
||||
@item B l
|
||||
Prompt for the name of a branch and display the change history of that
|
||||
branch (@code{vc-print-branch-log}).
|
||||
|
||||
@item B s
|
||||
Switch to a branch (@code{vc-retrieve-tag}). @xref{Switching Branches}.
|
||||
@end table
|
||||
|
||||
@cindex stashes in version control
|
||||
@cindex shelves in version control
|
||||
The above commands are also available via the menu bar, and via a
|
||||
|
4
etc/NEWS
4
etc/NEWS
@ -708,6 +708,10 @@ string is computed dynamically based on 'url-privacy-level'.
|
||||
colorful faces to make it more obvious to the user what the state is.
|
||||
See the 'vc-faces' customization group.
|
||||
|
||||
+++
|
||||
*** 'vc-dir-mode' now binds 'vc-log-outgoing' to 'O'; and has various
|
||||
branch-related commands on a keymap bound to 'B'.
|
||||
|
||||
** CC mode
|
||||
|
||||
*** Opening a .h file will turn C or C++ mode depending on language used.
|
||||
|
@ -297,6 +297,12 @@ See `run-hooks'."
|
||||
(define-key map (kbd "M-s a M-C-s") 'vc-dir-isearch-regexp)
|
||||
(define-key map "G" 'vc-dir-ignore)
|
||||
|
||||
(let ((branch-map (make-sparse-keymap)))
|
||||
(define-key map "B" branch-map)
|
||||
(define-key branch-map "c" 'vc-create-tag)
|
||||
(define-key branch-map "l" 'vc-print-branch-log)
|
||||
(define-key branch-map "s" 'vc-retrieve-tag))
|
||||
|
||||
;; Hook up the menu.
|
||||
(define-key map [menu-bar vc-dir-mode]
|
||||
`(menu-item
|
||||
|
@ -1757,6 +1757,9 @@ Return t if the buffer had changes, nil otherwise."
|
||||
;; because we don't know that yet.
|
||||
t)))
|
||||
|
||||
(defvar vc-revision-history nil
|
||||
"History for `vc-read-revision'.")
|
||||
|
||||
(defun vc-read-revision (prompt &optional files backend default initial-input)
|
||||
(cond
|
||||
((null files)
|
||||
@ -1768,7 +1771,7 @@ Return t if the buffer had changes, nil otherwise."
|
||||
(vc-call-backend backend 'revision-completion-table files)))
|
||||
(if completion-table
|
||||
(completing-read prompt completion-table
|
||||
nil nil initial-input nil default)
|
||||
nil nil initial-input 'vc-revision-history default)
|
||||
(read-string prompt initial-input nil default))))
|
||||
|
||||
(defun vc-diff-build-argument-list-internal ()
|
||||
@ -2372,6 +2375,17 @@ When called interactively with a prefix argument, prompt for LIMIT."
|
||||
(setq default-directory rootdir)
|
||||
(vc-print-log-internal backend (list rootdir) nil nil limit)))
|
||||
|
||||
;;;###autoload
|
||||
(defun vc-print-branch-log (branch)
|
||||
(interactive
|
||||
(list
|
||||
(vc-read-revision "Branch to log: ")))
|
||||
(when (equal branch "")
|
||||
(error "No branch specified"))
|
||||
(vc-print-log-internal (vc-responsible-backend default-directory)
|
||||
(list default-directory) branch t
|
||||
(when (> vc-log-show-limit 0) vc-log-show-limit)))
|
||||
|
||||
;;;###autoload
|
||||
(defun vc-log-incoming (&optional remote-location)
|
||||
"Show a log of changes that will be received with a pull operation from REMOTE-LOCATION.
|
||||
|
Loading…
Reference in New Issue
Block a user