Python library for interacting with various VCS systems
Clone or download



The vcstools module provides a Python API for interacting with different version control systems (VCS/SCMs) It is used in tools like wstool and rosinstall, which are frequently used in ROS.

This should not be confused with vcstool (no trailing s), which provides the vcs command line tool and is otherwise unrelated to this repository, see:



See documentation

Developer Environment

When testing or doing development on vcstools, use a virtualenv:

$ virtualenv ~/vcstools_venv
$ source ~/vcstools_venv/bin/activate
$ pip install --editable /path/to/vcstools_source

At this point in any shell where you run source ~/vcstools_venv/bin/activate, you can use vcstools and evny edits to files in the vcstools source will take effect immediately. This is the effect of pip install --editable, see pip install --help.

To setup a virtualenv for Python3 simply do this (from a clean terminal):

$ virtualenv --python=python3 ~/vcstools_venv_py3
$ source ~/vcstools_venv_py3

When you're done developing, you can exit any shells where you did source .../bin/activate and delete the virtualenv folder, e.g. ~/vcstools_venv.


Use the python library nose to test:

$ python test

To test with coverage, make sure to have python-coverage installed and run:

$ python test -n  # this installs test dependencies only
$ nosetests --with-coverage --cover-package vcstools

To run python3 compatibility tests, run:

$ python3 test

Test Status