vcspull¶
Manage your commonly used repos from YAML / JSON manifest(s). Compare to myrepos.
Great if you use the same repos at the same locations across multiple
machines or want to clone / update a pattern of repos without having
to cd
into each one.
- clone /update to the latest repos with
$ vcspull
- use filters to specify a location, repo url or pattern in the manifest to clone / update
- supports svn, git, hg version control systems
- automatically checkout fresh repositories
- Documentation and Examples.
- supports pip-style URL’s (RFC3986-based url scheme)
how to¶
install¶
$ pip install --user vcspull
configure¶
add repos you want vcspull to manage to ~/.vcspull.yaml
.
vcspull does not currently scan for repos on your system, but it may in the future
~/code/:
flask: "git+https://github.com/mitsuhiko/flask.git"
~/study/c:
awesome: 'git+git://git.naquadah.org/awesome.git'
~/study/data-structures-algorithms/c:
libds: 'git+https://github.com/zhemao/libds.git'
algoxy:
repo: 'git+https://github.com/liuxinyu95/AlgoXY.git'
remotes:
tony: 'git+ssh://[email protected]/tony/AlgoXY.git'
(see the author’s .vcspull.yaml, more examples.)
next, on other machines, copy your $HOME/.vcspull.yaml
file
or $HOME/.vcspull/
directory them and you can clone your repos
consistently. vcspull automatically handles building nested
directories. Updating already cloned/checked out repos is done
automatically if they already exist.
clone / update your repos¶
$ vcspull
keep nested VCS repositories updated too, lets say you have a mercurial or svn project with a git dependency:
external_deps.yaml
in your project root, (can be anything):
./vendor/:
sdl2pp: 'git+https://github.com/libSDL2pp/libSDL2pp.git'
clone / update repos:
$ vcspull -c external_deps.yaml
See the Quickstart for more.
pulling specific repos¶
have a lot of repos?
you can choose to update only select repos through fnmatch patterns.
remember to add the repos to your ~/.vcspull.{json,yaml}
first.
The patterns can be filtered by by directory, repo name or vcs url.
# any repo starting with "fla"
$ vcspull "fla*"
# any repo with django in the name
$ vcspull "*django*"
# search by vcs + url
# since urls are in this format <vcs>+<protocol>://<url>
$ vcspull "git+*"
# any git repo with python in the vcspull
$ vcspull "git+*python*
# any git repo with django in the vcs url
$ vcspull "git+*django*"
# all repositories in your ~/code directory
$ vcspull "$HOME/code/*"

More information¶
Python support | Python 2.7, >= 3.4 |
VCS supported | git(1), svn(1), hg(1) |
Config formats | YAML, JSON, python dict |
Source | https://github.com/vcs-python/vcspull |
Docs | https://vcspull.git-pull.com |
Changelog | https://vcspull.git-pull.com/en/latest/history.html |
Issues | https://github.com/vcs-python/vcspull/issues |
Travis | https://travis-ci.org/vcs-python/vcspull |
Test Coverage | https://codecov.io/gh/vcs-python/vcspull |
pypi | https://pypi.python.org/pypi/vcspull |
Open Hub | https://www.openhub.net/p/vcspull |
License | MIT. |
git repo | $ git clone https://github.com/vcs-python/vcspull.git
|
install dev | $ git clone https://github.com/vcs-python/vcspull.git vcspull
$ cd ./vcspull
$ virtualenv .venv
$ source .venv/bin/activate
$ pip install -e .
|
tests | $ py.test
|
run | $ vcspull
|
- Quickstart
- Examples
- Command Line Interface
- Development
- History
- 1.2.0 <2018-07-08>
- 1.1.0 <2018-03-11>
- 1.0.3 <2016-12-19>
- 1.0.2 <2016-12-19>
- 1.0.1 <2016-11-24>
- 1.0.0 <2016-09-13>
- 0.9.0 <2016-05-26>
- 0.2.2 <2015-07-10>
- 0.2.1 <2015-06-12>
- 0.2.0 <2015-05-19>
- 0.1.1 <2015-05-09>
- 0.1.0 <2015-04-30>
- 0.0.10 <2015-04-08>
- 0.0.9-1 <2015-03-27>
- 0.0.9 <2015-03-25>
- 0.0.8-4 <2014-02-06>
- 0.0.8-3 <2014-02-06>
- 0.0.8-2 <2014-02-05>
- 0.0.8-1 <2014-02-05>
- 0.0.8 <2014-02-05>
- 0.0.6 <2013-12-03>
- 0.0.5 <2013-11-28>
- 0.0.4 <2013-11-25>
- 0.0.3 <2013-11-23>
- 0.0.2 <2013-11-23>
- 0.0.2 <2013-11-16>
- 0.0.1 <2013-11-15>
- 0.0.1 <2013-11-09>
- 0.0.1 <2013-10-23>
- 0.0.1 <2013-10-17>
- 0.0.1 <2013-10-08>
- 0.0.1 <2013-10-06>