pip install katipo==0.0.3



katipo is a tool to facilate working together on multiple git projects that are interrelated. It is somewhat inspired by repo tool but uses merges rather than rebasing and works with github pull requests rather than the more heavyweight reviewing tools repo uses. Additionally, it is easy to create new branches across multiple repos.

The general syntax is similar to git: katipo command [options]

The initial release supports the following commands.

katipo clone giturl assemblyfile [working location]

This is the first katipo command needed to initialize a working copy of the tree. The giturl is a pointer to a git repo of assembly files (descriptions of a working tree - see below) and assembly file is the specific file inside that repo to get instructions from.

Running this command will create a .katipo folder in the working location and initialize git repos according to the instructions of the assemblyfile. All other commands will search for a .katipo folder to use as the root.

If not specified, working location defaults to cwd/basename of assembly file (similar to git clone).

katipo perrepo cmd [additional parameters to cmd]

Run cmd in each repo which katipo knows about.

katipo checkout [-t] branchname

Checkout branchname in every repo if it exists, if not then fallback to master branch. -t - make it a tracking branch.

katipo test

Run test in every repo which is a test repo. test must be executable.

Python virtual environment setup.

Katipo contains support for setting up your python environment (using virtualenv). It only works if virtualenv is installed.

 katipo virtualenv [--python pythonexe]

will construct a virtualenv in root of the working folder/.env . It will populate the virtualenv with the concatenated version of all requirements.txt files found in the base of every repo (and readline if on OS X to work around the buggy readline installed by default). Additionally, it will modify the virtualenv script to add the base of every repo the PYTHONPATH.

Once this command has run then activate the environment by running.

source .env/bin/activate

in the base of the working folder.


To install or upgrade katipo use pip.

$ (sudo) pip install -U git+http://github.com/braincorp/katipo.git  

Note that the first time you run this command it may take awhile as it will automatically install dependencies for katipo.

Assembly files

Assembly files are JSON files which describe the intended working copy layout. They are just a list of repos.

The look like:

"version" : 1
"repos": [
    {"giturl" : "git@github.com/braincorp/test.git",
# Comment Line - must be with a # in the first column
# Optional python virtualenv parameters 
# prompt - virtualenv prompt shown when environment active.
"virtualenv" : { "prompt" : "katipo" }

# Base files
"base_files" : {
	 "use_repo.sh" :
		{ "content" : "Source this script to setup the environment for this package"

version describes version of the assembly file. Right now should be always 1

path is optional and indicates the location where this repo will be located in the working copy.

test is optional and indicates if changes are tested against this repo or if it is just a dependency. It defaults to false.