libvcs is a lite, typed, pythonic wrapper for
git
, hg
, and svn
. Powers vcspull.
$ pip install --user libvcs
Open up python:
$ python
Or for nice autocompletion and highlighting:
$ pip install --user ptpython
$ ptpython
Simple subprocess
wrappers around git(1)
,
hg(1)
, svn(1)
. Here is Git
w/
Git.clone
:
import pathlib
from libvcs.cmd.git import Git
git = Git(dir=pathlib.Path.cwd() / 'my_git_repo')
git.clone(url='https://github.com/vcs-python/libvcs.git')
Create a
GitProject
object
of the project to inspect / checkout / update:
import pathlib
from libvcs.projects.git import GitProject
repo = GitProject(
url="https://github.com/vcs-python/libvcs",
dir=pathlib.Path().cwd() / "my_repo",
remotes={
'gitlab': 'https://gitlab.com/vcs-python/libvcs'
}
)
Update / clone repo:
>>> r.update_repo()
Get revision:
>>> r.get_revision()
u'5c227e6ab4aab44bf097da2e088b0ff947370ab8'
Your donations fund development of new features, testing and support. Your money will go directly to maintenance and development of the project. If you are an individual, feel free to give whatever feels right for the value you get out of the project.
See donation options at https://www.git-pull.com/support.html.
- Python support: 3.9+, pypy
- VCS supported: git(1), svn(1), hg(1)
- Source: https://github.com/vcs-python/libvcs
- Docs: https://libvcs.git-pull.com
- Changelog: https://libvcs.git-pull.com/history.html
- API:
libvcs.cmd
: Commandslibvcs.projects
: High-level synchronization commands
- Issues: https://github.com/vcs-python/libvcs/issues
- Test Coverage: https://codecov.io/gh/vcs-python/libvcs
- pypi: https://pypi.python.org/pypi/libvcs
- Open Hub: https://www.openhub.net/p/libvcs
- License: MIT.