Created: 2015-04-06 21:20
Updated: 2018-06-08 08:58
License: apache-2.0

Thin Man

Thin Man backs up all metadata in your source tree of git repos.


Travis CICoverallsGitHub IssuesLicenseDevelopment StatusLatest Version


By recording the tree layout, git remotes and ‘refs’ of the typical ~/src directory containing your cloned git repos, Thin Man can restore that structure later on, and also sync it to other machines.

This can be also part of a backup strategy by only including that small amount of metadata in a backup set, instead of duplicating all the data that is available in remote locations anyway.

That of course assumes that your repositories are usually clean and don't contain days of uncommitted work, and can be easily restored into working shape by bootstrap scripts and the like. But that's a given, right?


Thin Man can be installed via pip install thin-man as usual, see releases for an overview of available versions. To get a bleeding-edge version from source, use these commands:

pip install -r <(curl -skS "$repo/master/requirements.txt")
pip install -UI -e "git+$repo.git#egg=${repo#*/}"

See Contributing on how to create a full development environment.

To add bash completion, read the Click docs about it, or just follow these instructions:

mkdir -p ~/.bash_completion.d
( export _$(tr a-z- A-Z_ <<<"$cmdname")_COMPLETE=source ; \
  $cmdname >~/.bash_completion.d/$ )
grep /.bash_completion.d/$ ~/.bash_completion >/dev/null \
    || echo >>~/.bash_completion ". ~/.bash_completion.d/$"
. "/etc/bash_completion"



To create a working directory for this project, call these commands:

git clone ""
cd "thin-man"
. .env --yes --develop
invoke build --docs test check

See CONTRIBUTING for more.

Throughput Graph


Similar Projects




Cookies help us deliver our services. By using our services, you agree to our use of cookies Learn more