Have 'vc-clone' return a directory

* lisp/vc/vc-bzr.el (vc-bzr-clone): Return directory.
* lisp/vc/vc-git.el (vc-git-clone): Return directory.
* lisp/vc/vc-hg.el (vc-hg-clone): Return directory.
* lisp/vc/vc-svn.el (vc-svn-clone): Return directory.
* lisp/vc/vc.el (vc-clone): Ensure the backend returns directory.
This commit is contained in:
Philip Kaludercic 2022-10-18 21:21:49 +02:00
parent c25e78d802
commit 5ceb88e6eb
No known key found for this signature in database
GPG key ID: F2C3CC513DB89F66
5 changed files with 18 additions and 14 deletions

View file

@ -533,7 +533,8 @@ in the branch repository (or whose status not be determined)."
(vc-message-unresolved-conflicts buffer-file-name)))
(defun vc-bzr-clone (remote directory)
(vc-bzr-command nil 0 '() "branch" remote directory))
(vc-bzr-command nil 0 '() "branch" remote directory)
directory)
(defun vc-bzr-version-dirstate (dir)
"Try to return as a string the bzr revision ID of directory DIR.

View file

@ -1269,7 +1269,8 @@ This prompts for a branch to merge from."
(vc-message-unresolved-conflicts buffer-file-name)))
(defun vc-git-clone (remote directory)
(vc-git--out-ok "clone" remote directory))
(vc-git--out-ok "clone" remote directory)
directory)
;;; HISTORY FUNCTIONS

View file

@ -1251,7 +1251,8 @@ REV is the revision to check out into WORKFILE."
(vc-message-unresolved-conflicts buffer-file-name)))
(defun vc-hg-clone (remote directory)
(vc-hg-command nil 0 '() "clone" remote directory))
(vc-hg-command nil 0 '() "clone" remote directory)
directory)
;; Modeled after the similar function in vc-bzr.el
(defun vc-hg-revert (file &optional contents-done)

View file

@ -818,7 +818,8 @@ Set file properties accordingly. If FILENAME is non-nil, return its status."
(buffer-substring-no-properties (point-min) (1- (point-max))))))
(defun vc-svn-clone (remote directory)
(vc-svn-command nil 0 '() "checkout" remote directory))
(vc-svn-command nil 0 '() "checkout" remote directory)
(file-name-concat directory "trunk"))
(provide 'vc-svn)

View file

@ -588,7 +588,8 @@
;; - clone (remote directory)
;;
;; Attempt to clone a REMOTE repository, into a local DIRECTORY.
;; Returns the symbol of the backend used if successful.
;; Returns a string with the directory with the contents of the
;; repository if successful, otherwise nil.
;;; Changes from the pre-25.1 API:
;;
@ -3517,24 +3518,23 @@ to provide the `find-revision' operation instead."
(defun vc-clone (backend remote &optional directory)
"Use BACKEND to clone REMOTE into DIRECTORY.
If successful, returns the symbol of the backed used to clone.
If BACKEND is nil, iterate through every known backend in
`vc-handled-backends' until one succeeds."
If successful, returns the a string with the directory of the
checkout. If BACKEND is nil, iterate through every known backend
in `vc-handled-backends' until one succeeds."
(unless directory
(setq directory default-directory))
(if backend
(progn
(unless (memq backend vc-handled-backends)
(error "Unknown VC backend %s" backend))
(vc-call-backend backend 'clone remote directory)
backend)
(vc-call-backend backend 'clone remote directory))
(catch 'ok
(dolist (backend vc-handled-backends)
(ignore-error vc-not-supported
(when-let (res (vc-call-backend
backend 'clone
remote directory))
(throw 'ok backend)))))))
(when-let ((res (vc-call-backend
backend 'clone
remote directory)))
(throw 'ok res)))))))