]> git.eshelyaron.com Git - emacs.git/commitdiff
vc-hg-create-tag: Possibility to create a branch
authorAndrii Kolomoiets <andreyk.mad@gmail.com>
Sun, 9 Aug 2020 12:30:55 +0000 (14:30 +0200)
committerLars Ingebrigtsen <larsi@gnus.org>
Sun, 9 Aug 2020 12:30:55 +0000 (14:30 +0200)
* lisp/vc/vc-hg.el (vc-hg-create-bookmark): New user option.
(vc-hg-create-tag): Use it (bug#38425).

etc/NEWS
lisp/vc/vc-hg.el

index 1e4fe47c59d6da968faf24e3b1aa2a4f5573e06f..25ee6e11236c92af53279cc93424f4eaebab58eb 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -232,6 +232,10 @@ their 'default-directory' under VC.
 *** Support for bookmark.el.
 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
 
 ---
index 95ced7b8d092bba86d03c02094f6aa35df20f7a4..09f804357e0beceb088c21b80e642ec0aad1aa6d 100644 (file)
@@ -186,6 +186,16 @@ highlighting the Log View buffer."
   :group 'vc-hg
   :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")
+
 \f
 ;; Clear up the cache to force vc-call to check again and discover
 ;; new functions when we reload this file.
@@ -625,10 +635,18 @@ Optional arg REVISION is a revision to annotate from."
 ;;; Tag system
 
 (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))
-    (and (vc-hg-command nil 0 nil "status")
-         (vc-hg-command nil 0 nil (if branchp "bookmark" "tag") name))))
+    (vc-hg-command nil 0 nil
+                   (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)
   "Retrieve the version tagged by NAME of all registered files at or below DIR."