Commit Diff


commit - 26362bf08ddddf6e93d703ea4e7ef8cbd7174fe2
commit + 241a3b1222c05b9c84b192f6afa4ee6eb71f4a7f
blob - 6a75d699fb09972eebfac46bcce155085982502f
blob + 2f897c15f74a636ac046cad5214bdc8344b8d0fe
--- vc-got.el
+++ vc-got.el
@@ -48,7 +48,7 @@
 ;; * register                           DONE
 ;; - responsible-p                      DONE
 ;; - receive-file                       NOT NEEDED, default `register' works fine
-;; - unregister                         NOT IMPLEMENTED, no use case
+;; - unregister                         DONE
 ;; * checkin                            DONE
 ;; * find-revision                      DONE
 ;; * checkout                           NOT IMPLEMENTED
@@ -566,6 +566,12 @@ FILES is nil, consider all the files in DIR."
   (vc-got--add files))
 
 (defalias 'vc-got-responsible-p #'vc-got-root)
+
+(defun vc-got-unregister (file)
+  "Unregister FILE."
+  (with-temp-buffer
+    (unless (zerop (vc-got--call "remove" "-fk" "--" file))
+      (error "[vc-got] can't unregister %s: %s" file (buffer-string)))))
 
 ;; XXX: generally speaking, files cannot be nil.  But we have to
 ;; handle that case too, because vc-got-stage-commit will call