Commit Diff


commit - 6ab1c7b4401cfbb856b00bb6e6690620a20a52f7
commit + 09d593791051febee8552638ed57d57fe026bdb0
blob - fadebe6ce424e646701af757de63eb0bbcb60031
blob + 718b233d29e3f9e0212631668ebf78db5bf313c6
--- vc-got.el
+++ vc-got.el
@@ -90,7 +90,7 @@
 ;;
 ;; TAG SYSTEM
 ;; - create-tag                         DONE
-;; - retrieve-tag                       NOT IMPLEMENTED
+;; - retrieve-tag                       DONE
 ;;
 ;; MISCELLANEOUS                        NOT IMPLEMENTED
 ;; - make-version-backups-p             NOT NEEDED, `got' works fine locally
@@ -826,6 +826,15 @@ true, NAME should create a new branch otherwise it wil
                         (vc-got--tag-callback name)
                       (kill-buffer buf))))))))
 
+(defun vc-got-retrieve-tag (dir name _update)
+  "Switch to the tag NAME for files at or below DIR."
+  (let ((default-directory dir))
+    (with-temp-buffer
+      (unless (zerop (vc-got--call "update" "-b" name dir))
+        (error "[vc-got] can't switch to tag %s: %s"
+               name
+               (buffer-string))))))
+
 
 ;; Miscellaneous