So far, this applies only to using 'e' from Log View mode for Git.
+---
*** 'vc-clone' is now an interactive command.
When called interactively, 'vc-clone' now prompts for the remote
-repository address, the backend for cloning, if it has not been
-determined automatically according to the URL, and the directory to
-clone the repository into.
+repository address, and the directory into which to clone the
+repository. It tries to automatically determine the VC backend for
+cloning, or prompts for that, too.
+---
*** 'vc-clone' now accepts an optional argument OPEN-DIR.
When the argument is non-nil, the function switches to a buffer visiting
-directory to which the repository was cloned.
+the directory into which the repository was cloned.
\f
* New Modes and Packages in Emacs 31.1
"Default VC backend to use for cloning package repositories.
`package-vc-install' uses this backend when you specify neither
the backend nor a repository URL that's recognized via
-`package-vc-heuristic-alist'.
+`vc-clone-heuristic-alist'.
The value must be a member of `vc-handled-backends' that supports
the `clone' VC function."
repository. In this case, optional argument BACKEND specifies
the VC backend to use for cloning the repository; if it's nil,
this function tries to infer which backend to use according to
-the value of `package-vc-heuristic-alist' and if that fails it
+the value of `vc-clone-heuristic-alist' and if that fails it
uses `package-vc-default-backend'. Optional argument NAME
specifies the package name in this case; if it's nil, this
package uses `file-name-base' on the URL to obtain the package
repository. In this case, optional argument BACKEND specifies
the VC backend to use for cloning the repository; if it's nil,
this function tries to infer which backend to use according to
-the value of `package-vc-heuristic-alist' and if that fails it
+the value of `vc-clone-heuristic-alist' and if that fails it
uses `package-vc-default-backend'. Optional argument NAME
specifies the package name in this case; if it's nil, this
package uses `file-name-base' on the URL to obtain the package
otherwise return nil.
REMOTE should be a string, the URL of the remote repository or the name
of a directory (if the repository is local).
+
+When called interactively, prompt for REMOTE, BACKEND and DIRECTORY,
+except attempt to determine BACKEND automatically based on REMOTE.
+
If DIRECTORY is nil or omitted, it defaults to `default-directory'.
If BACKEND is nil or omitted, the function iterates through every known
backend in `vc-handled-backends' until one succeeds to clone REMOTE.
If REV is non-nil, it indicates a specific revision to check out after
cloning; the syntax of REV depends on what BACKEND accepts.
-If OPEN-DIR is non-nil, switches to a buffer visiting DIRECTORY to
-which the repository was cloned. It would be useful in scripts, but not
-in regular code.
-If called interactively, prompt for REMOTE, DIRECTORY and BACKEND,
-if BACKEND has not been automatically determined according to the REMOTE
-URL, in the minibuffer."
+If OPEN-DIR is non-nil, as it is interactively, also switches to a
+buffer visiting DIRECTORY."
(interactive
(let* ((url (read-string "Remote: " nil 'vc--remotes-history))
(backend (or (vc-guess-url-backend url)