Cache git clones and submodules
Python Shell JavaScript
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
test
.gitignore
.travis.yml
README
README.md
backwards.py
git-cclone
git-scclone
git-submodule-cclone
git-submodule-describe
setup.py

README.md

Caches git repositories locally. Every time a build happens, it uses local caches for pulling. Submodules especially, which are harder to intercept for caching.

Will also inflate submodules recursively.

With 8 submodules, a total of 150MB of data to clone:

Before caching: 13.79s user 6.36s system 18% cpu 1:49.45 total

After caching: 2.12s user 2.07s system 25% cpu 16.310 total

Cached repositories are stored in ~/.git-cow by default. You can override this by setting $GIT_COW.

Installation

Either:

  • with pypi: sudo pip install git-cachecow

Or:

  • Clone git-cachecow and add the directory to your $PATH.

Usage

How to clone a repository with submodules:

git scclone git://github.com/grahamc/git-multi.git

git-cclone

git cclone repo_uri [clone_to [hash]]

git-submodule-describe

Outputs submodule data into parsable format

git://github.com/nationalfield/symfony.git  lib/vendor/symfony  aec67b5e7ba148c79b884b86988e42f9f9483bcd
git@github.com:nationalfield/pheanstalk.git lib/vendor/pheanstalk   5b38924730b70ea720f760369899398479e2ea13
git@github.com:nationalfield/tinymce.git    web/js/tiny_mce 0c3da0cc9e33df0f2b82f70bf7e24405de216bee

git-submodule-cclone

Clones all the submodules recursively at their defined location and hashes.

Build Status