Shortcuts - libvcs._internal.shortcuts¶

Shortcuts for creating repos.

Note

This is an internal API not covered by versioning policy.

exception libvcs._internal.shortcuts.VCSNoMatchFoundForUrl
¶
exception[source]
exception libvcs._internal.shortcuts.VCSMultipleMatchFoundForUrl
¶
exception[source]
exception libvcs._internal.shortcuts.VCSNotSupported
¶
exception[source]
libvcs._internal.shortcuts.create_project(*, url: str, path: str | PathLike[str], vcs: Literal['git'], progress_callback: ProgressCallbackProtocol | None = None, **kwargs: dict[Any, Any]) GitSync
¶
function[source]
libvcs._internal.shortcuts.create_project(*, url: str, path: str | PathLike[str], vcs: Literal['svn'], progress_callback: ProgressCallbackProtocol | None = None, **kwargs: dict[Any, Any]) SvnSync
function
libvcs._internal.shortcuts.create_project(*, url: str, path: str | PathLike[str], vcs: Literal['hg'], progress_callback: ProgressCallbackProtocol | None = None, **kwargs: dict[Any, Any]) HgSync
function
libvcs._internal.shortcuts.create_project(*, url: str, path: str | PathLike[str], vcs: None = None, progress_callback: ProgressCallbackProtocol | None = None, **kwargs: dict[Any, Any]) GitSync | HgSync | SvnSync
function

Return an object representation of a VCS repository.

Examples

>>> from libvcs._internal.shortcuts import create_project
>>> r = create_project(
...     url=f'file://{create_git_remote_repo()}',
...     vcs='git',
...     path=tmp_path
... )
>>> isinstance(r, GitSync)
True

create_project can also guess VCS for certain URLs:

>>> r = create_project(
...     # Note the git+ before the URL
...     url=f'git+file://{create_git_remote_repo()}',
...     path=tmp_path
... )
>>> isinstance(r, GitSync)
True

It also supports unprefixed SSH-style Git URLs:

>>> r = create_project(
...     url='[email protected]:tmux-python/tmuxp.git',
...     path=tmp_path
... )
>>> isinstance(r, GitSync)
True