1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-12-14 09:39:42 +00:00

vc-hg-create-tag: Possibility to create a branch

* lisp/vc/vc-hg.el (vc-hg-create-bookmark): New user option.
(vc-hg-create-tag): Use it (bug#38425).
This commit is contained in:
Andrii Kolomoiets 2020-08-09 14:30:55 +02:00 committed by Lars Ingebrigtsen
parent 2ed502d2a7
commit c789c3aac6
2 changed files with 25 additions and 3 deletions

View File

@ -232,6 +232,10 @@ their 'default-directory' under VC.
*** Support for bookmark.el. *** Support for bookmark.el.
Bookmark locations can refer to VC directory buffers. Bookmark locations can refer to VC directory buffers.
---
*** New user option 'vc-hg-create-bookmark' controls whether a bookmark
or branch will be created when you invoke 'C-u C-x v s' ('vc-create-tag').
** Gnus ** Gnus
--- ---

View File

@ -186,6 +186,16 @@ highlighting the Log View buffer."
:group 'vc-hg :group 'vc-hg
:version "24.5") :version "24.5")
(defcustom vc-hg-create-bookmark t
"This controls whether `vc-create-tag' will create a bookmark or branch.
If nil, named branch will be created.
If t, bookmark will be created.
If `ask', you will be prompted for a branch type."
:type '(choice (const :tag "No" nil)
(const :tag "Yes" t)
(const :tag "Ask" ask))
:version "28.1")
;; Clear up the cache to force vc-call to check again and discover ;; Clear up the cache to force vc-call to check again and discover
;; new functions when we reload this file. ;; new functions when we reload this file.
@ -625,10 +635,18 @@ Optional arg REVISION is a revision to annotate from."
;;; Tag system ;;; Tag system
(defun vc-hg-create-tag (dir name branchp) (defun vc-hg-create-tag (dir name branchp)
"Attach the tag NAME to the state of the working copy." "Create tag NAME in repo in DIR. Create branch if BRANCHP.
Variable `vc-hg-create-bookmark' controls what kind of branch will be created."
(let ((default-directory dir)) (let ((default-directory dir))
(and (vc-hg-command nil 0 nil "status") (vc-hg-command nil 0 nil
(vc-hg-command nil 0 nil (if branchp "bookmark" "tag") name)))) (if branchp
(if (if (eq vc-hg-create-bookmark 'ask)
(yes-or-no-p "Create bookmark instead of branch? ")
vc-hg-create-bookmark)
"bookmark"
"branch")
"tag")
name)))
(defun vc-hg-retrieve-tag (dir name _update) (defun vc-hg-retrieve-tag (dir name _update)
"Retrieve the version tagged by NAME of all registered files at or below DIR." "Retrieve the version tagged by NAME of all registered files at or below DIR."