Skip to main content

vcs project manager

Project description

``vcspull`` - vcs project manager

|pypi| |docs| |build-status| |coverage| |license|

.. image:: https://raw.github.com/tony/vcspull/master/doc/_static/vcspull-demo.gif
:scale: 100%
:width: 45%
:align: center

add projects to ``~/.vcspull.yaml``

.. code-block:: yaml

~/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://git@github.com/tony/AlgoXY.git'

see the author's `.vcspull.yaml`_, more `examples`_.

update your repos

.. code-block:: bash

$ 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):

.. code-block:: yaml

./vendor/:
sdl2pp: 'git+https://github.com/libSDL2pp/libSDL2pp.git'

update::

$ vcspull -c external_deps.yaml

filter through hundreds of repos
--------------------------------

supports `fnmatch`_ patterns

.. code-block:: bash

# 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/*"

* supports svn, git, hg version control systems
* automatically checkout fresh repositories
* update to the latest repos with ``$ vcspull``
* `Documentation`_, `API`_ and `Examples`_.
* builds upon `pip`_'s `RFC3986`_-based `url scheme`_.

See the `Quickstart`_.

python API
----------

.. code-block:: python

In [1]: from vcspull.repo import create_repo

In [2]: r = create_repo(url='git+https://www.github.com/tony/myrepo', cwd='/tmp/',
name='myrepo')

In [3]: r.update_repo()
|myrepo| (git) Repo directory for myrepo (git) does not exist @ /tmp/myrepo
|myrepo| (git) Cloning.
|myrepo| (git) git clone --progress https://www.github.com/tony/myrepo /tmp/myrepo
Cloning into '/tmp/myrepo'...
Checking connectivity... done.
|myrepo| (git) git fetch
|myrepo| (git) git pull
Already up-to-date.

.. _RFC3986: http://tools.ietf.org/html/rfc3986.html
.. _.vcspull.yaml: https://github.com/tony/.dot-config/blob/master/.vcspull.yaml
.. _examples: https://vcspull.readthedocs.io/en/latest/examples.html
.. _fnmatch: http://pubs.opengroup.org/onlinepubs/009695399/functions/fnmatch.html

More information
----------------

============== ==========================================================
Python support Python 2.7, >= 3.3
VCS supported git(1), svn(1), hg(1)
Config formats YAML, JSON, python dict
Source https://github.com/tony/vcspull
Docs http://vcspull.rtfd.org
Changelog http://vcspull.readthedocs.io/en/latest/history.html
API http://vcspull.readthedocs.io/en/latest/api.html
Issues https://github.com/tony/vcspull/issues
Travis http://travis-ci.org/tony/vcspull
Test Coverage https://coveralls.io/r/tony/vcspull
pypi https://pypi.python.org/pypi/vcspull
Open Hub https://www.openhub.net/p/vcspull
License `BSD`_.
git repo .. code-block:: bash

$ git clone https://github.com/tony/vcspull.git
install dev .. code-block:: bash

$ git clone https://github.com/tony/vcspull.git vcspull
$ cd ./vcspull
$ virtualenv .venv
$ source .venv/bin/activate
$ pip install -e .
tests .. code-block:: bash

$ python ./run-tests.py
run .. code-block:: bash

$ vcspull
============== ==========================================================

.. _BSD: http://opensource.org/licenses/BSD-3-Clause
.. _Documentation: http://vcspull.readthedocs.io/en/latest/
.. _API: http://vcspull.readthedocs.io/en/latest/api.html
.. _Quickstart: http://vcspull.readthedocs.io/en/latest/quickstart.html
.. _pip: http://www.pip-installer.org/en/latest/
.. _url scheme: http://www.pip-installer.org/en/latest/logic.html#vcs-support
.. _saltstack: http://www.saltstack.org

.. |pypi| image:: https://img.shields.io/pypi/v/vcspull.svg
:alt: Python Package
:target: http://badge.fury.io/py/vcspull

.. |build-status| image:: https://img.shields.io/travis/tony/vcspull.svg
:alt: Build Status
:target: https://travis-ci.org/tony/vcspull

.. |coverage| image:: https://img.shields.io/coveralls/tony/vcspull.svg
:alt: Code Coverage
:target: https://coveralls.io/r/tony/vcspull?branch=master

.. |license| image:: https://img.shields.io/github/license/tony/vcspull.svg
:alt: License

.. |docs| image:: https://readthedocs.org/projects/vcspull/badge/?version=latest
:alt: Documentation Status
:scale: 100%
:target: https://readthedocs.org/projects/vcspull/

Project details


Release history Release notifications | RSS feed

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page