diff options
| author | Andrii Kolomoiets | 2019-11-14 06:55:28 +0100 |
|---|---|---|
| committer | Lars Ingebrigtsen | 2019-11-14 06:55:28 +0100 |
| commit | 7afde23248e17c155dc6a632d9a3eca44ab5c1b4 (patch) | |
| tree | e777dfee6b65aa48d07a4bb9455d1cd626c03d74 | |
| parent | c9ede465de7e1aaa692f12538adf2e35b9ed2748 (diff) | |
| download | emacs-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.el | 2 | ||||
| -rw-r--r-- | lisp/vc/vc-hg.el | 2 | ||||
| -rw-r--r-- | lisp/vc/vc-svn.el | 1 | ||||
| -rw-r--r-- | lisp/vc/vc.el | 25 |
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 |