aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrii Kolomoiets2019-11-14 06:55:28 +0100
committerLars Ingebrigtsen2019-11-14 06:55:28 +0100
commit7afde23248e17c155dc6a632d9a3eca44ab5c1b4 (patch)
treee777dfee6b65aa48d07a4bb9455d1cd626c03d74
parentc9ede465de7e1aaa692f12538adf2e35b9ed2748 (diff)
downloademacs-7afde23248e17c155dc6a632d9a3eca44ab5c1b4.tar.gz
emacs-7afde23248e17c155dc6a632d9a3eca44ab5c1b4.zip
VC: ability to skip update buffers prompt
* lisp/vc/vc.el (vc-default-update-on-retrieve-tag): New function. (vc-retrieve-tag): Call `update-on-retrieve-tag' backend function to determine if prompt for update buffers is needed; Include tag name into the "Retrieving tag" message. * lisp/vc/vc-git.el (vc-git-update-on-retrieve-tag): * lisp/vc/vc-hg.el (vc-hg-update-on-retrieve-tag): * lisp/vc/vc-svn.el (vc-svn-udate-on-retrieve-tag): New functions. Buffers update prompt on `vc-retrieve-tag' is omitted (bug#38156).
-rw-r--r--lisp/vc/vc-git.el2
-rw-r--r--lisp/vc/vc-hg.el2
-rw-r--r--lisp/vc/vc-svn.el1
-rw-r--r--lisp/vc/vc.el25
4 files changed, 23 insertions, 7 deletions
diff --git a/lisp/vc/vc-git.el b/lisp/vc/vc-git.el
index 2046a9dceca..5ab8e7ec53e 100644
--- a/lisp/vc/vc-git.el
+++ b/lisp/vc/vc-git.el
@@ -47,6 +47,7 @@
47;; FUNCTION NAME STATUS 47;; FUNCTION NAME STATUS
48;; BACKEND PROPERTIES 48;; BACKEND PROPERTIES
49;; * revision-granularity OK 49;; * revision-granularity OK
50;; - update-on-retrieve-tag OK
50;; STATE-QUERYING FUNCTIONS 51;; STATE-QUERYING FUNCTIONS
51;; * registered (file) OK 52;; * registered (file) OK
52;; * state (file) OK 53;; * state (file) OK
@@ -218,6 +219,7 @@ toggle display of the entire list."
218 219
219(defun vc-git-revision-granularity () 'repository) 220(defun vc-git-revision-granularity () 'repository)
220(defun vc-git-checkout-model (_files) 'implicit) 221(defun vc-git-checkout-model (_files) 'implicit)
222(defun vc-git-update-on-retrieve-tag () nil)
221 223
222;;; STATE-QUERYING FUNCTIONS 224;;; STATE-QUERYING FUNCTIONS
223 225
diff --git a/lisp/vc/vc-hg.el b/lisp/vc/vc-hg.el
index cc737b30b15..16e5dd6db00 100644
--- a/lisp/vc/vc-hg.el
+++ b/lisp/vc/vc-hg.el
@@ -40,6 +40,7 @@
40;; FUNCTION NAME STATUS 40;; FUNCTION NAME STATUS
41;; BACKEND PROPERTIES 41;; BACKEND PROPERTIES
42;; * revision-granularity OK 42;; * revision-granularity OK
43;; - update-on-retrieve-tag OK
43;; STATE-QUERYING FUNCTIONS 44;; STATE-QUERYING FUNCTIONS
44;; * registered (file) OK 45;; * registered (file) OK
45;; * state (file) OK 46;; * state (file) OK
@@ -194,6 +195,7 @@ highlighting the Log View buffer."
194 195
195(defun vc-hg-revision-granularity () 'repository) 196(defun vc-hg-revision-granularity () 'repository)
196(defun vc-hg-checkout-model (_files) 'implicit) 197(defun vc-hg-checkout-model (_files) 'implicit)
198(defun vc-hg-update-on-retrieve-tag () nil)
197 199
198;;; State querying functions 200;;; State querying functions
199 201
diff --git a/lisp/vc/vc-svn.el b/lisp/vc/vc-svn.el
index 942dbd5fa5a..ed34b357f9b 100644
--- a/lisp/vc/vc-svn.el
+++ b/lisp/vc/vc-svn.el
@@ -127,6 +127,7 @@ switches."
127 127
128(defun vc-svn-revision-granularity () 'repository) 128(defun vc-svn-revision-granularity () 'repository)
129(defun vc-svn-checkout-model (_files) 'implicit) 129(defun vc-svn-checkout-model (_files) 'implicit)
130(defun vc-svn-update-on-retrieve-tag () nil)
130 131
131;;; 132;;;
132;;; State-querying functions 133;;; State-querying functions
diff --git a/lisp/vc/vc.el b/lisp/vc/vc.el
index 20056dec7f9..401b39145c8 100644
--- a/lisp/vc/vc.el
+++ b/lisp/vc/vc.el
@@ -110,6 +110,12 @@
110;; that return 'file have per-file revision numbering; backends 110;; that return 'file have per-file revision numbering; backends
111;; that return 'repository have per-repository revision numbering, 111;; that return 'repository have per-repository revision numbering,
112;; so a revision level implicitly identifies a changeset 112;; so a revision level implicitly identifies a changeset
113;;
114;; - update-on-retrieve-tag
115;;
116;; Takes no arguments. Backends that return non-nil can update
117;; buffers on `vc-retrieve-tag' based on user input. In this case
118;; user will be prompted to update buffers on `vc-retrieve-tag'.
113 119
114;; STATE-QUERYING FUNCTIONS 120;; STATE-QUERYING FUNCTIONS
115;; 121;;
@@ -2302,14 +2308,15 @@ This function runs the hook `vc-retrieve-tag-hook' when finished."
2302 (vc-read-revision "Tag name to retrieve (default latest revisions): " 2308 (vc-read-revision "Tag name to retrieve (default latest revisions): "
2303 (list dir) 2309 (list dir)
2304 (vc-responsible-backend dir))))) 2310 (vc-responsible-backend dir)))))
2305 (let ((update (yes-or-no-p "Update any affected buffers? ")) 2311 (let* ((backend (vc-responsible-backend dir))
2306 (msg (if (or (not name) (string= name "")) 2312 (update (when (vc-call-backend backend 'update-on-retrieve-tag)
2307 (format "Updating %s... " (abbreviate-file-name dir)) 2313 (yes-or-no-p "Update any affected buffers? ")))
2308 (format "Retrieving tag into %s... " 2314 (msg (if (or (not name) (string= name ""))
2309 (abbreviate-file-name dir))))) 2315 (format "Updating %s... " (abbreviate-file-name dir))
2316 (format "Retrieving tag %s into %s... "
2317 name (abbreviate-file-name dir)))))
2310 (message "%s" msg) 2318 (message "%s" msg)
2311 (vc-call-backend (vc-responsible-backend dir) 2319 (vc-call-backend backend 'retrieve-tag dir name update)
2312 'retrieve-tag dir name update)
2313 (vc-resynch-buffer dir t t t) 2320 (vc-resynch-buffer dir t t t)
2314 (run-hooks 'vc-retrieve-tag-hook) 2321 (run-hooks 'vc-retrieve-tag-hook)
2315 (message "%s" (concat msg "done")))) 2322 (message "%s" (concat msg "done"))))
@@ -3025,6 +3032,10 @@ to provide the `find-revision' operation instead."
3025 "Let BACKEND receive FILE from another version control system." 3032 "Let BACKEND receive FILE from another version control system."
3026 (vc-call-backend backend 'register (list file) rev "")) 3033 (vc-call-backend backend 'register (list file) rev ""))
3027 3034
3035(defun vc-default-update-on-retrieve-tag ()
3036 "Prompt for update buffers on `vc-retrieve-tag'."
3037 t)
3038
3028(defun vc-default-retrieve-tag (backend dir name update) 3039(defun vc-default-retrieve-tag (backend dir name update)
3029 (if (string= name "") 3040 (if (string= name "")
3030 (progn 3041 (progn